@@ -1,11 +1,11 @@
11{
22 "kind": "discovery#restDescription",
3− "etag": "\"jQLIOHBVnDZie4rQHGH1WJF-INE/ZUeUn8sbRE1vWnjmCAcSnCYuXbI\"",
3+ "etag": "\"C5oy1hgQsABtYOYIOXWcR3BgYqU/CqYvNpV2Som-B9o1jdwhrzhRs18\"",
44 "discoveryVersion": "v1",
55 "id": "classroom:v1",
66 "name": "classroom",
77 "version": "v1",
8− "revision": "20160428",
8+ "revision": "20160517",
99 "title": "Google Classroom API",
1010 "description": "Manages classes, rosters, and invitations in Google Classroom.",
1111 "ownerDomain": "google.com",
@@ -103,12 +103,27 @@
103103 "auth": {
104104 "oauth2": {
105105 "scopes": {
106+ "https://www.googleapis.com/auth/classroom.course-work.readonly": {
107+ "description": "View instructions for teacher-assigned work in your Google Classroom classes"
108+ },
106109 "https://www.googleapis.com/auth/classroom.courses": {
107110 "description": "Manage your Google Classroom classes"
108111 },
109112 "https://www.googleapis.com/auth/classroom.courses.readonly": {
110113 "description": "View your Google Classroom classes"
111114 },
115+ "https://www.googleapis.com/auth/classroom.coursework.me": {
116+ "description": "Manage your course work and view your grades in Google Classroom"
117+ },
118+ "https://www.googleapis.com/auth/classroom.coursework.me.readonly": {
119+ "description": "View your course work and grades in Google Classroom"
120+ },
121+ "https://www.googleapis.com/auth/classroom.coursework.students": {
122+ "description": "Manage course work and grades for students in the Google Classroom classes you teach and view the course work and grades for classes you administer"
123+ },
124+ "https://www.googleapis.com/auth/classroom.coursework.students.readonly": {
125+ "description": "View course work and grades for students in the Google Classroom classes you teach or administer"
126+ },
112127 "https://www.googleapis.com/auth/classroom.profile.emails": {
113128 "description": "View the email addresses of people in your classes"
114129 },
@@ -120,6 +135,12 @@
120135 },
121136 "https://www.googleapis.com/auth/classroom.rosters.readonly": {
122137 "description": "View your Google Classroom class rosters"
138+ },
139+ "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly": {
140+ "description": "View your course work and grades in Google Classroom"
141+ },
142+ "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly": {
143+ "description": "View course work and grades for students in the Google Classroom classes you teach or administer"
123144 }
124145 }
125146 }
@@ -132,7 +153,7 @@
132153 "properties": {
133154 "id": {
134155 "type": "string",
135− "description": "Identifier for this course assigned by Classroom. When creating a course, you may optionally set this identifier to an alias string in the request to create a corresponding alias. The `id` is still assigned by Classroom and cannot be updated after the course is created. Specifying this field in a course update mask will result in an error."
156+ "description": "Identifier for this course assigned by Classroom. When creating a course, you may optionally set this identifier to an alias string in the request to create a corresponding alias. The `id` is still assigned by Classroom and cannot be updated after the course is created. Specifying this field in a course update mask results in an error."
136157 },
137158 "name": {
138159 "type": "string",
@@ -156,19 +177,19 @@
156177 },
157178 "ownerId": {
158179 "type": "string",
159− "description": "The identifier of the owner of a course. When specified as a parameter of a create course request, this field is required. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal `\"me\"`, indicating the requesting user This must be set in a create request. Specifying this field in a course update mask will result in an `INVALID_ARGUMENT` error."
180+ "description": "The identifier of the owner of a course. When specified as a parameter of a create course request, this field is required. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal `\"me\"`, indicating the requesting user This must be set in a create request. Specifying this field in a course update mask results in an `INVALID_ARGUMENT` error."
160181 },
161182 "creationTime": {
162183 "type": "string",
163− "description": "Creation time of the course. Specifying this field in a course update mask will result in an error. Read-only."
184+ "description": "Creation time of the course. Specifying this field in a course update mask results in an error. Read-only."
164185 },
165186 "updateTime": {
166187 "type": "string",
167− "description": "Time of the most recent update to this course. Specifying this field in a course update mask will result in an error. Read-only."
188+ "description": "Time of the most recent update to this course. Specifying this field in a course update mask results in an error. Read-only."
168189 },
169190 "enrollmentCode": {
170191 "type": "string",
171− "description": "Enrollment code to use when joining this course. Specifying this field in a course update mask will result in an error. Read-only."
192+ "description": "Enrollment code to use when joining this course. Specifying this field in a course update mask results in an error. Read-only."
172193 },
173194 "courseState": {
174195 "type": "string",
@@ -184,6 +205,173 @@
184205 "alternateLink": {
185206 "type": "string",
186207 "description": "Absolute link to this course in the Classroom web UI. Read-only."
208+ },
209+ "teacherGroupEmail": {
210+ "type": "string",
211+ "description": "The email address of a Google group containing all teachers of the course. This group does not accept email and can only be used for permissions. Read-only."
212+ },
213+ "courseGroupEmail": {
214+ "type": "string",
215+ "description": "The email address of a Google group containing all members of the course. This group does not accept email and can only be used for permissions. Read-only."
216+ },
217+ "teacherFolder": {
218+ "$ref": "DriveFolder",
219+ "description": "Information about a Drive Folder that is shared with all teachers of the course. This field will only be set for teachers of the course and domain administrators. Read-only."
220+ },
221+ "courseMaterialSets": {
222+ "type": "array",
223+ "description": "Sets of materials that appear on the \"about\" page of this course. Read-only.",
224+ "items": {
225+ "$ref": "CourseMaterialSet"
226+ }
227+ }
228+ }
229+ },
230+ "DriveFolder": {
231+ "id": "DriveFolder",
232+ "type": "object",
233+ "description": "Representation of a Google Drive folder.",
234+ "properties": {
235+ "id": {
236+ "type": "string",
237+ "description": "Drive API resource ID."
238+ },
239+ "title": {
240+ "type": "string",
241+ "description": "Title of the Drive folder. Read-only."
242+ },
243+ "alternateLink": {
244+ "type": "string",
245+ "description": "URL that can be used to access the Drive folder. Read-only."
246+ }
247+ }
248+ },
249+ "CourseMaterialSet": {
250+ "id": "CourseMaterialSet",
251+ "type": "object",
252+ "description": "A set of materials that appears on the \"About\" page of the course. These materials might include a syllabus, schedule, or other background information relating to the course as a whole.",
253+ "properties": {
254+ "title": {
255+ "type": "string",
256+ "description": "Title for this set."
257+ },
258+ "materials": {
259+ "type": "array",
260+ "description": "Materials attached to this set.",
261+ "items": {
262+ "$ref": "CourseMaterial"
263+ }
264+ }
265+ }
266+ },
267+ "CourseMaterial": {
268+ "id": "CourseMaterial",
269+ "type": "object",
270+ "description": "A material attached to a course as part of a material set.",
271+ "properties": {
272+ "driveFile": {
273+ "$ref": "DriveFile",
274+ "description": "Google Drive file attachment."
275+ },
276+ "youTubeVideo": {
277+ "$ref": "YouTubeVideo",
278+ "description": "Youtube video attachment."
279+ },
280+ "link": {
281+ "$ref": "Link",
282+ "description": "Link atatchment."
283+ },
284+ "form": {
285+ "$ref": "Form",
286+ "description": "Google Forms attachment."
287+ }
288+ }
289+ },
290+ "DriveFile": {
291+ "id": "DriveFile",
292+ "type": "object",
293+ "description": "Representation of a Google Drive file.",
294+ "properties": {
295+ "id": {
296+ "type": "string",
297+ "description": "Drive API resource ID."
298+ },
299+ "title": {
300+ "type": "string",
301+ "description": "Title of the Drive item. Read-only."
302+ },
303+ "alternateLink": {
304+ "type": "string",
305+ "description": "URL that can be used to access the Drive item. Read-only."
306+ },
307+ "thumbnailUrl": {
308+ "type": "string",
309+ "description": "URL of a thumbnail image of the Drive item. Read-only."
310+ }
311+ }
312+ },
313+ "YouTubeVideo": {
314+ "id": "YouTubeVideo",
315+ "type": "object",
316+ "description": "YouTube video item.",
317+ "properties": {
318+ "id": {
319+ "type": "string",
320+ "description": "YouTube API resource ID."
321+ },
322+ "title": {
323+ "type": "string",
324+ "description": "Title of the YouTube video. Read-only."
325+ },
326+ "alternateLink": {
327+ "type": "string",
328+ "description": "URL that can be used to view the YouTube video. Read-only."
329+ },
330+ "thumbnailUrl": {
331+ "type": "string",
332+ "description": "URL of a thumbnail image of the YouTube video. Read-only."
333+ }
334+ }
335+ },
336+ "Link": {
337+ "id": "Link",
338+ "type": "object",
339+ "description": "URL item.",
340+ "properties": {
341+ "url": {
342+ "type": "string",
343+ "description": "URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters."
344+ },
345+ "title": {
346+ "type": "string",
347+ "description": "Title of the target of the URL. Read-only."
348+ },
349+ "thumbnailUrl": {
350+ "type": "string",
351+ "description": "URL of a thumbnail image of the target URL. Read-only."
352+ }
353+ }
354+ },
355+ "Form": {
356+ "id": "Form",
357+ "type": "object",
358+ "description": "Google Forms item.",
359+ "properties": {
360+ "formUrl": {
361+ "type": "string",
362+ "description": "URL of the form."
363+ },
364+ "responseUrl": {
365+ "type": "string",
366+ "description": "URL of the form responses document. Only set if respsonses have been recorded and only when the requesting user is an editor of the form. Read-only."
367+ },
368+ "title": {
369+ "type": "string",
370+ "description": "Title of the Form. Read-only."
371+ },
372+ "thumbnailUrl": {
373+ "type": "string",
374+ "description": "URL of a thumbnail image of the Form. Read-only."
187375 }
188376 }
189377 },
@@ -402,6 +590,10 @@
402590 "profile": {
403591 "$ref": "UserProfile",
404592 "description": "Global user information for the student. Read-only."
593+ },
594+ "studentWorkFolder": {
595+ "$ref": "DriveFolder",
596+ "description": "Information about a Drive Folder for this student's work in this course. Only visible to the student and domain administrators. Read-only."
405597 }
406598 }
407599 },
@@ -422,6 +614,431 @@
422614 "description": "Token identifying the next page of results to return. If empty, no further results are available."
423615 }
424616 }
617+ },
618+ "CourseWork": {
619+ "id": "CourseWork",
620+ "type": "object",
621+ "description": "Course work created by a teacher for students of the course.",
622+ "properties": {
623+ "courseId": {
624+ "type": "string",
625+ "description": "Identifier of the course. Read-only."
626+ },
627+ "id": {
628+ "type": "string",
629+ "description": "Classroom-assigned identifier of this course work, unique per course. Read-only."
630+ },
631+ "title": {
632+ "type": "string",
633+ "description": "Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters."
634+ },
635+ "description": {
636+ "type": "string",
637+ "description": "Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters."
638+ },
639+ "materials": {
640+ "type": "array",
641+ "description": "Additional materials.",
642+ "items": {
643+ "$ref": "Material"
644+ }
645+ },
646+ "state": {
647+ "type": "string",
648+ "description": "Status of this course work.. If unspecified, the default state is `DRAFT`.",
649+ "enum": [
650+ "COURSE_WORK_STATE_UNSPECIFIED",
651+ "PUBLISHED",
652+ "DRAFT",
653+ "DELETED"
654+ ]
655+ },
656+ "alternateLink": {
657+ "type": "string",
658+ "description": "Absolute link to this course work in the Classroom web UI. This is only populated if `state` is `PUBLISHED`. Read-only."
659+ },
660+ "creationTime": {
661+ "type": "string",
662+ "description": "Timestamp when this course work was created. Read-only."
663+ },
664+ "updateTime": {
665+ "type": "string",
666+ "description": "Timestamp of the most recent change to this course work. Read-only."
667+ },
668+ "dueDate": {
669+ "$ref": "Date",
670+ "description": "Optional date, in UTC, that submissions for this this course work are due. This must be specified if `due_time` is specified."
671+ },
672+ "dueTime": {
673+ "$ref": "TimeOfDay",
674+ "description": "Optional time of day, in UTC, that submissions for this this course work are due. This must be specified if `due_date` is specified."
675+ },
676+ "maxPoints": {
677+ "type": "number",
678+ "description": "Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be an integer value.",
679+ "format": "double"
680+ },
681+ "workType": {
682+ "type": "string",
683+ "description": "Type of this course work. The type is set when the course work is created and cannot be changed. When creating course work, this must be `ASSIGNMENT`.",
684+ "enum": [
685+ "COURSE_WORK_TYPE_UNSPECIFIED",
686+ "ASSIGNMENT",
687+ "SHORT_ANSWER_QUESTION",
688+ "MULTIPLE_CHOICE_QUESTION"
689+ ]
690+ },
691+ "associatedWithDeveloper": {
692+ "type": "boolean",
693+ "description": "Whether this course work item is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only."
694+ },
695+ "submissionModificationMode": {
696+ "type": "string",
697+ "description": "Setting to determine when students are allowed to modify submissions. If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.",
698+ "enum": [
699+ "SUBMISSION_MODIFICATION_MODE_UNSPECIFIED",
700+ "MODIFIABLE_UNTIL_TURNED_IN",
701+ "MODIFIABLE"
702+ ]
703+ },
704+ "assignment": {
705+ "$ref": "Assignment",
706+ "description": "Assignment details. This is populated only when `work_type` is `ASSIGNMENT`."
707+ },
708+ "multipleChoiceQuestion": {
709+ "$ref": "MultipleChoiceQuestion",
710+ "description": "Multiple choice question details. This is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`."
711+ }
712+ }
713+ },
714+ "Material": {
715+ "id": "Material",
716+ "type": "object",
717+ "description": "Material attached to course work. When creating attachments, only the Link field may be specified.",
718+ "properties": {
719+ "driveFile": {
720+ "$ref": "SharedDriveFile",
721+ "description": "Google Drive file material."
722+ },
723+ "youtubeVideo": {
724+ "$ref": "YouTubeVideo",
725+ "description": "YouTube video material."
726+ },
727+ "link": {
728+ "$ref": "Link",
729+ "description": "Link material."
730+ },
731+ "form": {
732+ "$ref": "Form",
733+ "description": "Google Forms material."
734+ }
735+ }
736+ },
737+ "SharedDriveFile": {
738+ "id": "SharedDriveFile",
739+ "type": "object",
740+ "description": "Drive file that is used as material for course work.",
741+ "properties": {
742+ "driveFile": {
743+ "$ref": "DriveFile",
744+ "description": "Drive file details."
745+ },
746+ "shareMode": {
747+ "type": "string",
748+ "description": "Mechanism by which students access the Drive item.",
749+ "enum": [
750+ "UNKNOWN_SHARE_MODE",
751+ "VIEW",
752+ "EDIT",
753+ "STUDENT_COPY"
754+ ]
755+ }
756+ }
757+ },
758+ "Date": {
759+ "id": "Date",
760+ "type": "object",
761+ "description": "Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.",
762+ "properties": {
763+ "year": {
764+ "type": "integer",
765+ "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.",
766+ "format": "int32"
767+ },
768+ "month": {
769+ "type": "integer",
770+ "description": "Month of year. Must be from 1 to 12.",
771+ "format": "int32"
772+ },
773+ "day": {
774+ "type": "integer",
775+ "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.",
776+ "format": "int32"
777+ }
778+ }
779+ },
780+ "TimeOfDay": {
781+ "id": "TimeOfDay",
782+ "type": "object",
783+ "description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.",
784+ "properties": {
785+ "hours": {
786+ "type": "integer",
787+ "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.",
788+ "format": "int32"
789+ },
790+ "minutes": {
791+ "type": "integer",
792+ "description": "Minutes of hour of day. Must be from 0 to 59.",
793+ "format": "int32"
794+ },
795+ "seconds": {
796+ "type": "integer",
797+ "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.",
798+ "format": "int32"
799+ },
800+ "nanos": {
801+ "type": "integer",
802+ "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.",
803+ "format": "int32"
804+ }
805+ }
806+ },
807+ "Assignment": {
808+ "id": "Assignment",
809+ "type": "object",
810+ "description": "Additional details for assignments.",
811+ "properties": {
812+ "studentWorkFolder": {
813+ "$ref": "DriveFolder",
814+ "description": "Drive folder where attachments from student submissions are placed. This is only populated for course teachers."
815+ }
816+ }
817+ },
818+ "MultipleChoiceQuestion": {
819+ "id": "MultipleChoiceQuestion",
820+ "type": "object",
821+ "description": "Additional details for multiple-choice questions.",
822+ "properties": {
823+ "choices": {
824+ "type": "array",
825+ "description": "Possible choices.",
826+ "items": {
827+ "type": "string"
828+ }
829+ }
830+ }
831+ },
832+ "ListCourseWorkResponse": {
833+ "id": "ListCourseWorkResponse",
834+ "type": "object",
835+ "description": "Response when listing course work.",
836+ "properties": {
837+ "courseWork": {
838+ "type": "array",
839+ "description": "Course work items that match the request.",
840+ "items": {
841+ "$ref": "CourseWork"
842+ }
843+ },
844+ "nextPageToken": {
845+ "type": "string",
846+ "description": "Token identifying the next page of results to return. If empty, no further results are available."
847+ }
848+ }
849+ },
850+ "StudentSubmission": {
851+ "id": "StudentSubmission",
852+ "type": "object",
853+ "description": "Student submission for course work. StudentSubmission items are generated when a CourseWork item is created. StudentSubmissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.",
854+ "properties": {
855+ "courseId": {
856+ "type": "string",
857+ "description": "Identifier of the course. Read-only."
858+ },
859+ "courseWorkId": {
860+ "type": "string",
861+ "description": "Identifier for the course work this corresponds to. Read-only."
862+ },
863+ "id": {
864+ "type": "string",
865+ "description": "Classroom-assigned Identifier for the student submission. This is unique among submissions for the relevant course work. Read-only."
866+ },
867+ "userId": {
868+ "type": "string",
869+ "description": "Identifier for the student that owns this submission. Read-only."
870+ },
871+ "creationTime": {
872+ "type": "string",
873+ "description": "Creation time of this submission.. This may be unset if the student has not accessed this item. Read-only."
874+ },
875+ "updateTime": {
876+ "type": "string",
877+ "description": "Last update time of this submission. This may be unset if the student has not accessed this item. Read-only."
878+ },
879+ "state": {
880+ "type": "string",
881+ "description": "State of this submission. Read-only.",
882+ "enum": [
883+ "SUBMISSION_STATE_UNSPECIFIED",
884+ "NEW",
885+ "CREATED",
886+ "TURNED_IN",
887+ "RETURNED",
888+ "RECLAIMED_BY_STUDENT"
889+ ]
890+ },
891+ "late": {
892+ "type": "boolean",
893+ "description": "Whether this submission is late. Read-only."
894+ },
895+ "draftGrade": {
896+ "type": "number",
897+ "description": "Optional pending grade. If unset, no grade was set. This must be an integer value. This is only visible to and modifiable by course teachers.",
898+ "format": "double"
899+ },
900+ "assignedGrade": {
901+ "type": "number",
902+ "description": "Optional grade. If unset, no grade was set. This must be an integer value. This may be modified only by course teachers.",
903+ "format": "double"
904+ },
905+ "alternateLink": {
906+ "type": "string",
907+ "description": "Absolute link to the submission in the Classroom web UI. Read-only."
908+ },
909+ "courseWorkType": {
910+ "type": "string",
911+ "description": "Type of course work this submission is for. Read-only.",
912+ "enum": [
913+ "COURSE_WORK_TYPE_UNSPECIFIED",
914+ "ASSIGNMENT",
915+ "SHORT_ANSWER_QUESTION",
916+ "MULTIPLE_CHOICE_QUESTION"
917+ ]
918+ },
919+ "associatedWithDeveloper": {
920+ "type": "boolean",
921+ "description": "Whether this student submission is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only."
922+ },
923+ "assignmentSubmission": {
924+ "$ref": "AssignmentSubmission",
925+ "description": "Submission content when course_work_type is ASSIGNMENT ."
926+ },
927+ "shortAnswerSubmission": {
928+ "$ref": "ShortAnswerSubmission",
929+ "description": "Submission content when course_work_type is SHORT_ANSWER_QUESTION."
930+ },
931+ "multipleChoiceSubmission": {
932+ "$ref": "MultipleChoiceSubmission",
933+ "description": "Submission content when course_work_type is MUTIPLE_CHOICE_QUESTION."
934+ }
935+ }
936+ },
937+ "AssignmentSubmission": {
938+ "id": "AssignmentSubmission",
939+ "type": "object",
940+ "description": "Student work for an assignment.",
941+ "properties": {
942+ "attachments": {
943+ "type": "array",
944+ "description": "Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.",
945+ "items": {
946+ "$ref": "Attachment"
947+ }
948+ }
949+ }
950+ },
951+ "Attachment": {
952+ "id": "Attachment",
953+ "type": "object",
954+ "description": "Attachment added to student assignment work. When creating attachments, only the Link field may be specified.",
955+ "properties": {
956+ "driveFile": {
957+ "$ref": "DriveFile",
958+ "description": "Google Drive file attachment."
959+ },
960+ "youTubeVideo": {
961+ "$ref": "YouTubeVideo",
962+ "description": "Youtube video attachment."
963+ },
964+ "link": {
965+ "$ref": "Link",
966+ "description": "Link attachment."
967+ },
968+ "form": {
969+ "$ref": "Form",
970+ "description": "Google Forms attachment."
971+ }
972+ }
973+ },
974+ "ShortAnswerSubmission": {
975+ "id": "ShortAnswerSubmission",
976+ "type": "object",
977+ "description": "Student work for a short answer question.",
978+ "properties": {
979+ "answer": {
980+ "type": "string",
981+ "description": "Student response to a short-answer question."
982+ }
983+ }
984+ },
985+ "MultipleChoiceSubmission": {
986+ "id": "MultipleChoiceSubmission",
987+ "type": "object",
988+ "description": "Student work for a multiple-choice question.",
989+ "properties": {
990+ "answer": {
991+ "type": "string",
992+ "description": "Student's select choice."
993+ }
994+ }
995+ },
996+ "ListStudentSubmissionsResponse": {
997+ "id": "ListStudentSubmissionsResponse",
998+ "type": "object",
999+ "description": "Response when listing student submissions.",
1000+ "properties": {
1001+ "studentSubmissions": {
1002+ "type": "array",
1003+ "description": "Student work that matches the request.",
1004+ "items": {
1005+ "$ref": "StudentSubmission"
1006+ }
1007+ },
1008+ "nextPageToken": {
1009+ "type": "string",
1010+ "description": "Token identifying the next page of results to return. If empty, no further results are available."
1011+ }
1012+ }
1013+ },
1014+ "TurnInStudentSubmissionRequest": {
1015+ "id": "TurnInStudentSubmissionRequest",
1016+ "type": "object",
1017+ "description": "Request to turn in a student submission."
1018+ },
1019+ "ReclaimStudentSubmissionRequest": {
1020+ "id": "ReclaimStudentSubmissionRequest",
1021+ "type": "object",
1022+ "description": "Request to reclaim a student submission."
1023+ },
1024+ "ReturnStudentSubmissionRequest": {
1025+ "id": "ReturnStudentSubmissionRequest",
1026+ "type": "object",
1027+ "description": "Request to return a student submission."
1028+ },
1029+ "ModifyAttachmentsRequest": {
1030+ "id": "ModifyAttachmentsRequest",
1031+ "type": "object",
1032+ "description": "Request to modify the attachments of a student submission.",
1033+ "properties": {
1034+ "addAttachments": {
1035+ "type": "array",
1036+ "description": "Attachments to add. This may only contain link attachments.",
1037+ "items": {
1038+ "$ref": "Attachment"
1039+ }
1040+ }
1041+ }
4251042 }
4261043 },
4271044 "resources": {
@@ -947,6 +1564,455 @@
9471564 ]
9481565 }
9491566 }
1567+ },
1568+ "courseWork": {
1569+ "methods": {
1570+ "create": {
1571+ "id": "classroom.courses.courseWork.create",
1572+ "path": "v1/courses/{courseId}/courseWork",
1573+ "httpMethod": "POST",
1574+ "description": "Creates course work. The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, create course work in the requested course, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course does not exist.",
1575+ "parameters": {
1576+ "courseId": {
1577+ "type": "string",
1578+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1579+ "required": true,
1580+ "location": "path"
1581+ }
1582+ },
1583+ "parameterOrder": [
1584+ "courseId"
1585+ ],
1586+ "request": {
1587+ "$ref": "CourseWork"
1588+ },
1589+ "response": {
1590+ "$ref": "CourseWork"
1591+ },
1592+ "scopes": [
1593+ "https://www.googleapis.com/auth/classroom.coursework.students"
1594+ ]
1595+ },
1596+ "get": {
1597+ "id": "classroom.courses.courseWork.get",
1598+ "path": "v1/courses/{courseId}/courseWork/{id}",
1599+ "httpMethod": "GET",
1600+ "description": "Returns course work. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course or course work does not exist.",
1601+ "parameters": {
1602+ "courseId": {
1603+ "type": "string",
1604+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1605+ "required": true,
1606+ "location": "path"
1607+ },
1608+ "id": {
1609+ "type": "string",
1610+ "description": "Identifier of the course work.",
1611+ "required": true,
1612+ "location": "path"
1613+ }
1614+ },
1615+ "parameterOrder": [
1616+ "courseId",
1617+ "id"
1618+ ],
1619+ "response": {
1620+ "$ref": "CourseWork"
1621+ },
1622+ "scopes": [
1623+ "https://www.googleapis.com/auth/classroom.course-work.readonly",
1624+ "https://www.googleapis.com/auth/classroom.coursework.me",
1625+ "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
1626+ "https://www.googleapis.com/auth/classroom.coursework.students",
1627+ "https://www.googleapis.com/auth/classroom.coursework.students.readonly"
1628+ ]
1629+ },
1630+ "list": {
1631+ "id": "classroom.courses.courseWork.list",
1632+ "path": "v1/courses/{courseId}/courseWork",
1633+ "httpMethod": "GET",
1634+ "description": "Returns a list of course work that the requester is permitted to view. Course students may only view `PUBLISHED` course work. Course teachers and domain administrators may view all course work. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course does not exist.",
1635+ "parameters": {
1636+ "courseId": {
1637+ "type": "string",
1638+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1639+ "required": true,
1640+ "location": "path"
1641+ },
1642+ "courseWorkStates": {
1643+ "type": "string",
1644+ "description": "Restriction on the work status to return. Only courseWork that matches is returned. If unspecified, items with a work status of `PUBLISHED` is returned.",
1645+ "enum": [
1646+ "COURSE_WORK_STATE_UNSPECIFIED",
1647+ "PUBLISHED",
1648+ "DRAFT",
1649+ "DELETED"
1650+ ],
1651+ "repeated": true,
1652+ "location": "query"
1653+ },
1654+ "orderBy": {
1655+ "type": "string",
1656+ "description": "Optional sort ordering for results. A comma-separated list of fields with an optional sort direction keyword. Supported fields are `updateTime` and `dueDate`. Supported direction keywords are `asc` and `desc`. If not specified, `updateTime desc` is the default behavior. Examples: `dueDate asc,updateTime desc`, `updateTime,dueDate desc`",
1657+ "location": "query"
1658+ },
1659+ "pageSize": {
1660+ "type": "integer",
1661+ "description": "Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.",
1662+ "format": "int32",
1663+ "location": "query"
1664+ },
1665+ "pageToken": {
1666+ "type": "string",
1667+ "description": "nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.",
1668+ "location": "query"
1669+ }
1670+ },
1671+ "parameterOrder": [
1672+ "courseId"
1673+ ],
1674+ "response": {
1675+ "$ref": "ListCourseWorkResponse"
1676+ },
1677+ "scopes": [
1678+ "https://www.googleapis.com/auth/classroom.course-work.readonly",
1679+ "https://www.googleapis.com/auth/classroom.coursework.me",
1680+ "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
1681+ "https://www.googleapis.com/auth/classroom.coursework.students",
1682+ "https://www.googleapis.com/auth/classroom.coursework.students.readonly"
1683+ ]
1684+ }
1685+ },
1686+ "resources": {
1687+ "studentSubmissions": {
1688+ "methods": {
1689+ "get": {
1690+ "id": "classroom.courses.courseWork.studentSubmissions.get",
1691+ "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}",
1692+ "httpMethod": "GET",
1693+ "description": "Returns a student submission. * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, course work, or student submission or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.",
1694+ "parameters": {
1695+ "courseId": {
1696+ "type": "string",
1697+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1698+ "required": true,
1699+ "location": "path"
1700+ },
1701+ "courseWorkId": {
1702+ "type": "string",
1703+ "description": "Identifier of the course work.",
1704+ "required": true,
1705+ "location": "path"
1706+ },
1707+ "id": {
1708+ "type": "string",
1709+ "description": "Identifier of the student submission.",
1710+ "required": true,
1711+ "location": "path"
1712+ }
1713+ },
1714+ "parameterOrder": [
1715+ "courseId",
1716+ "courseWorkId",
1717+ "id"
1718+ ],
1719+ "response": {
1720+ "$ref": "StudentSubmission"
1721+ },
1722+ "scopes": [
1723+ "https://www.googleapis.com/auth/classroom.coursework.me",
1724+ "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
1725+ "https://www.googleapis.com/auth/classroom.coursework.students",
1726+ "https://www.googleapis.com/auth/classroom.coursework.students.readonly",
1727+ "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",
1728+ "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"
1729+ ]
1730+ },
1731+ "patch": {
1732+ "id": "classroom.courses.courseWork.studentSubmissions.patch",
1733+ "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}",
1734+ "httpMethod": "PATCH",
1735+ "description": "Updates one or more fields of a student submission. See google.classroom.v1.StudentSubmission for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.",
1736+ "parameters": {
1737+ "courseId": {
1738+ "type": "string",
1739+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1740+ "required": true,
1741+ "location": "path"
1742+ },
1743+ "courseWorkId": {
1744+ "type": "string",
1745+ "description": "Identifier of the course work.",
1746+ "required": true,
1747+ "location": "path"
1748+ },
1749+ "id": {
1750+ "type": "string",
1751+ "description": "Identifier of the student submission.",
1752+ "required": true,
1753+ "location": "path"
1754+ },
1755+ "updateMask": {
1756+ "type": "string",
1757+ "description": "Mask that identifies which fields on the student submission to update. This field is required to do an update. The update fails if invalid fields are specified. The following fields may be specified by teachers: * `draft_grade` * `assigned_grade`",
1758+ "location": "query"
1759+ }
1760+ },
1761+ "parameterOrder": [
1762+ "courseId",
1763+ "courseWorkId",
1764+ "id"
1765+ ],
1766+ "request": {
1767+ "$ref": "StudentSubmission"
1768+ },
1769+ "response": {
1770+ "$ref": "StudentSubmission"
1771+ },
1772+ "scopes": [
1773+ "https://www.googleapis.com/auth/classroom.coursework.me",
1774+ "https://www.googleapis.com/auth/classroom.coursework.students"
1775+ ]
1776+ },
1777+ "list": {
1778+ "id": "classroom.courses.courseWork.studentSubmissions.list",
1779+ "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions",
1780+ "httpMethod": "GET",
1781+ "description": "Returns a list of student submissions that the requester is permitted to view, factoring in the OAuth scopes of the request. `-` may be specified as the `course_work_id` to include student submissions for multiple course work items. Course students may only view their own work. Course teachers and domain administrators may view all student submissions. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course does not exist.",
1782+ "parameters": {
1783+ "courseId": {
1784+ "type": "string",
1785+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1786+ "required": true,
1787+ "location": "path"
1788+ },
1789+ "courseWorkId": {
1790+ "type": "string",
1791+ "description": "Identifer of the student work to request. If `user_id` is specified, this may be set to the string literal `\"-\"` to request student work for all course work in the specified course.",
1792+ "required": true,
1793+ "location": "path"
1794+ },
1795+ "userId": {
1796+ "type": "string",
1797+ "description": "Optional argument to restrict returned student work to those owned by the student with the specified identifier. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal `\"me\"`, indicating the requesting user",
1798+ "location": "query"
1799+ },
1800+ "states": {
1801+ "type": "string",
1802+ "description": "Requested submission states. If specified, returned student submissions match one of the specified submission states.",
1803+ "enum": [
1804+ "SUBMISSION_STATE_UNSPECIFIED",
1805+ "NEW",
1806+ "CREATED",
1807+ "TURNED_IN",
1808+ "RETURNED",
1809+ "RECLAIMED_BY_STUDENT"
1810+ ],
1811+ "repeated": true,
1812+ "location": "query"
1813+ },
1814+ "late": {
1815+ "type": "string",
1816+ "description": "Requested lateness value. If specified, returned student submissions are restricted by the requested value. If unspecified, submissions are returned regardless of `late` value.",
1817+ "enum": [
1818+ "LATE_VALUES_UNSPECIFIED",
1819+ "LATE_ONLY",
1820+ "NOT_LATE_ONLY"
1821+ ],
1822+ "location": "query"
1823+ },
1824+ "pageSize": {
1825+ "type": "integer",
1826+ "description": "Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.",
1827+ "format": "int32",
1828+ "location": "query"
1829+ },
1830+ "pageToken": {
1831+ "type": "string",
1832+ "description": "nextPageToken value returned from a previous list call, indicating that the subsequent page of results should be returned. The list request must be otherwise identical to the one that resulted in this token.",
1833+ "location": "query"
1834+ }
1835+ },
1836+ "parameterOrder": [
1837+ "courseId",
1838+ "courseWorkId"
1839+ ],
1840+ "response": {
1841+ "$ref": "ListStudentSubmissionsResponse"
1842+ },
1843+ "scopes": [
1844+ "https://www.googleapis.com/auth/classroom.coursework.me",
1845+ "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
1846+ "https://www.googleapis.com/auth/classroom.coursework.students",
1847+ "https://www.googleapis.com/auth/classroom.coursework.students.readonly",
1848+ "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",
1849+ "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"
1850+ ]
1851+ },
1852+ "turnIn": {
1853+ "id": "classroom.courses.courseWork.studentSubmissions.turnIn",
1854+ "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn",
1855+ "httpMethod": "POST",
1856+ "description": "Turns in a student submission. Turning in a student submission transfers ownership of attached Drive files to the teacher and may also update the submission state. This may only be called by the student that owns the specified student submission. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, turn in the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.",
1857+ "parameters": {
1858+ "courseId": {
1859+ "type": "string",
1860+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1861+ "required": true,
1862+ "location": "path"
1863+ },
1864+ "courseWorkId": {
1865+ "type": "string",
1866+ "description": "Identifier of the course work.",
1867+ "required": true,
1868+ "location": "path"
1869+ },
1870+ "id": {
1871+ "type": "string",
1872+ "description": "Identifier of the student submission.",
1873+ "required": true,
1874+ "location": "path"
1875+ }
1876+ },
1877+ "parameterOrder": [
1878+ "courseId",
1879+ "courseWorkId",
1880+ "id"
1881+ ],
1882+ "request": {
1883+ "$ref": "TurnInStudentSubmissionRequest"
1884+ },
1885+ "response": {
1886+ "$ref": "Empty"
1887+ },
1888+ "scopes": [
1889+ "https://www.googleapis.com/auth/classroom.coursework.me"
1890+ ]
1891+ },
1892+ "reclaim": {
1893+ "id": "classroom.courses.courseWork.studentSubmissions.reclaim",
1894+ "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim",
1895+ "httpMethod": "POST",
1896+ "description": "Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student and update the submission state. Only the student that ownes the requested student submission may call this method, and only for a student submission that has been turned in. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, unsubmit the requested student submission, or for access errors. * `FAILED_PRECONDITION` if the student submission has not been turned in. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.",
1897+ "parameters": {
1898+ "courseId": {
1899+ "type": "string",
1900+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1901+ "required": true,
1902+ "location": "path"
1903+ },
1904+ "courseWorkId": {
1905+ "type": "string",
1906+ "description": "Identifier of the course work.",
1907+ "required": true,
1908+ "location": "path"
1909+ },
1910+ "id": {
1911+ "type": "string",
1912+ "description": "Identifier of the student submission.",
1913+ "required": true,
1914+ "location": "path"
1915+ }
1916+ },
1917+ "parameterOrder": [
1918+ "courseId",
1919+ "courseWorkId",
1920+ "id"
1921+ ],
1922+ "request": {
1923+ "$ref": "ReclaimStudentSubmissionRequest"
1924+ },
1925+ "response": {
1926+ "$ref": "Empty"
1927+ },
1928+ "scopes": [
1929+ "https://www.googleapis.com/auth/classroom.coursework.me"
1930+ ]
1931+ },
1932+ "return": {
1933+ "id": "classroom.courses.courseWork.studentSubmissions.return",
1934+ "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return",
1935+ "httpMethod": "POST",
1936+ "description": "Returns a student submission. Returning a student submission transfers ownership of attached Drive files to the student and may also update the submission state. Unlike the Classroom application, returning a student submission does not set assignedGrade to the draftGrade value. Only a teacher of the course that contains the requested student submission may call this method. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, return the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.",
1937+ "parameters": {
1938+ "courseId": {
1939+ "type": "string",
1940+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1941+ "required": true,
1942+ "location": "path"
1943+ },
1944+ "courseWorkId": {
1945+ "type": "string",
1946+ "description": "Identifier of the course work.",
1947+ "required": true,
1948+ "location": "path"
1949+ },
1950+ "id": {
1951+ "type": "string",
1952+ "description": "Identifier of the student submission.",
1953+ "required": true,
1954+ "location": "path"
1955+ }
1956+ },
1957+ "parameterOrder": [
1958+ "courseId",
1959+ "courseWorkId",
1960+ "id"
1961+ ],
1962+ "request": {
1963+ "$ref": "ReturnStudentSubmissionRequest"
1964+ },
1965+ "response": {
1966+ "$ref": "Empty"
1967+ },
1968+ "scopes": [
1969+ "https://www.googleapis.com/auth/classroom.coursework.students"
1970+ ]
1971+ },
1972+ "modifyAttachments": {
1973+ "id": "classroom.courses.courseWork.studentSubmissions.modifyAttachments",
1974+ "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments",
1975+ "httpMethod": "POST",
1976+ "description": "Modifies attachments of student submission. Attachments may only be added to student submissions whose type is `ASSIGNMENT`. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, if the user is not permitted to modify attachments on the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.",
1977+ "parameters": {
1978+ "courseId": {
1979+ "type": "string",
1980+ "description": "Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias.",
1981+ "required": true,
1982+ "location": "path"
1983+ },
1984+ "courseWorkId": {
1985+ "type": "string",
1986+ "description": "Identifier of the course work.",
1987+ "required": true,
1988+ "location": "path"
1989+ },
1990+ "id": {
1991+ "type": "string",
1992+ "description": "Identifier of the student submission.",
1993+ "required": true,
1994+ "location": "path"
1995+ }
1996+ },
1997+ "parameterOrder": [
1998+ "courseId",
1999+ "courseWorkId",
2000+ "id"
2001+ ],
2002+ "request": {
2003+ "$ref": "ModifyAttachmentsRequest"
2004+ },
2005+ "response": {
2006+ "$ref": "StudentSubmission"
2007+ },
2008+ "scopes": [
2009+ "https://www.googleapis.com/auth/classroom.coursework.me",
2010+ "https://www.googleapis.com/auth/classroom.coursework.students"
2011+ ]
2012+ }
2013+ }
2014+ }
2015+ }
9502016 }
9512017 }
9522018 },