{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/classroom.announcements": {
          "description": "View and manage announcements in Google Classroom"
        },
        "https://www.googleapis.com/auth/classroom.announcements.readonly": {
          "description": "View announcements in Google Classroom"
        },
        "https://www.googleapis.com/auth/classroom.courses": {
          "description": "Manage your Google Classroom classes"
        },
        "https://www.googleapis.com/auth/classroom.courses.readonly": {
          "description": "View your Google Classroom classes"
        },
        "https://www.googleapis.com/auth/classroom.coursework.me": {
          "description": "Manage your course work and view your grades in Google Classroom"
        },
        "https://www.googleapis.com/auth/classroom.coursework.me.readonly": {
          "description": "View your course work and grades in Google Classroom"
        },
        "https://www.googleapis.com/auth/classroom.coursework.students": {
          "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"
        },
        "https://www.googleapis.com/auth/classroom.coursework.students.readonly": {
          "description": "View course work and grades for students in the Google Classroom classes you teach or administer"
        },
        "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly": {
          "description": "View your Google Classroom guardians"
        },
        "https://www.googleapis.com/auth/classroom.guardianlinks.students": {
          "description": "View and manage guardians for students in your Google Classroom classes"
        },
        "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly": {
          "description": "View guardians for students in your Google Classroom classes"
        },
        "https://www.googleapis.com/auth/classroom.profile.emails": {
          "description": "View the email addresses of people in your classes"
        },
        "https://www.googleapis.com/auth/classroom.profile.photos": {
          "description": "View the profile photos of people in your classes"
        },
        "https://www.googleapis.com/auth/classroom.push-notifications": {
          "description": "Receive notifications about your Google Classroom data"
        },
        "https://www.googleapis.com/auth/classroom.rosters": {
          "description": "Manage your Google Classroom class rosters"
        },
        "https://www.googleapis.com/auth/classroom.rosters.readonly": {
          "description": "View your Google Classroom class rosters"
        },
        "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly": {
          "description": "View your course work and grades in Google Classroom"
        },
        "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly": {
          "description": "View course work and grades for students in the Google Classroom classes you teach or administer"
        },
        "https://www.googleapis.com/auth/classroom.topics": {
          "description": "See, create, and edit topics in Google Classroom"
        },
        "https://www.googleapis.com/auth/classroom.topics.readonly": {
          "description": "View topics in Google Classroom"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://classroom.googleapis.com/",
  "batchPath": "batch",
  "description": "Manages classes, rosters, and invitations in Google Classroom.",
  "discoveryVersion": "v1",
  "documentationLink": "https://developers.google.com/classroom/",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "classroom:v1",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://classroom.mtls.googleapis.com/",
  "name": "classroom",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "courses": {
      "methods": {
        "create": {
          "description": "Creates a course.\n\nThe user specified in `ownerId` is the owner of the created course\nand added as a teacher.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\ncourses or for access errors.\n* `NOT_FOUND` if the primary teacher is not a valid user.\n* `FAILED_PRECONDITION` if the course owner's account is disabled or for\nthe following request errors:\n    * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if an alias was specified in the `id` and\nalready exists.",
          "flatPath": "v1/courses",
          "httpMethod": "POST",
          "id": "classroom.courses.create",
          "parameterOrder": [],
          "parameters": {},
          "path": "v1/courses",
          "request": {
            "$ref": "Course"
          },
          "response": {
            "$ref": "Course"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.courses"
          ]
        },
        "delete": {
          "description": "Deletes a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.",
          "flatPath": "v1/courses/{id}",
          "httpMethod": "DELETE",
          "id": "classroom.courses.delete",
          "parameterOrder": [
            "id"
          ],
          "parameters": {
            "id": {
              "description": "Identifier of the course to delete.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/courses/{id}",
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.courses"
          ]
        },
        "get": {
          "description": "Returns a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.",
          "flatPath": "v1/courses/{id}",
          "httpMethod": "GET",
          "id": "classroom.courses.get",
          "parameterOrder": [
            "id"
          ],
          "parameters": {
            "id": {
              "description": "Identifier of the course to return.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/courses/{id}",
          "response": {
            "$ref": "Course"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.courses",
            "https://www.googleapis.com/auth/classroom.courses.readonly"
          ]
        },
        "list": {
          "description": "Returns a list of courses that the requesting user is permitted to view,\nrestricted to those that match the request. Returned courses are ordered by\ncreation time, with the most recently created coming first.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` for access errors.\n* `INVALID_ARGUMENT` if the query argument is malformed.\n* `NOT_FOUND` if any users specified in the query arguments do not exist.",
          "flatPath": "v1/courses",
          "httpMethod": "GET",
          "id": "classroom.courses.list",
          "parameterOrder": [],
          "parameters": {
            "courseStates": {
              "description": "Restricts returned courses to those in one of the specified states\nThe default value is ACTIVE, ARCHIVED, PROVISIONED, DECLINED.",
              "enum": [
                "COURSE_STATE_UNSPECIFIED",
                "ACTIVE",
                "ARCHIVED",
                "PROVISIONED",
                "DECLINED",
                "SUSPENDED"
              ],
              "location": "query",
              "repeated": true,
              "type": "string"
            },
            "pageSize": {
              "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.",
              "location": "query",
              "type": "string"
            },
            "studentId": {
              "description": "Restricts returned courses to those having a student with the specified\nidentifier. The identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
              "location": "query",
              "type": "string"
            },
            "teacherId": {
              "description": "Restricts returned courses to those having a teacher with the specified\nidentifier. The identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/courses",
          "response": {
            "$ref": "ListCoursesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.courses",
            "https://www.googleapis.com/auth/classroom.courses.readonly"
          ]
        },
        "patch": {
          "description": "Updates one or more fields in a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to modify the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.\n* `INVALID_ARGUMENT` if invalid fields are specified in the update mask or\nif no update mask is supplied.\n* `FAILED_PRECONDITION` for the following request errors:\n    * CourseNotModifiable",
          "flatPath": "v1/courses/{id}",
          "httpMethod": "PATCH",
          "id": "classroom.courses.patch",
          "parameterOrder": [
            "id"
          ],
          "parameters": {
            "id": {
              "description": "Identifier of the course to update.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "description": "Mask that identifies which fields on the course to update.\nThis field is required to do an update. The update will fail if invalid\nfields are specified. The following fields are valid:\n\n* `name`\n* `section`\n* `descriptionHeading`\n* `description`\n* `room`\n* `courseState`\n* `ownerId`\n\nNote: patches to ownerId are treated as being effective immediately, but in\npractice it may take some time for the ownership transfer of all affected\nresources to complete.\n\nWhen set in a query parameter, this field should be specified as\n\n`updateMask=\u003cfield1\u003e,\u003cfield2\u003e,...`",
              "format": "google-fieldmask",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/courses/{id}",
          "request": {
            "$ref": "Course"
          },
          "response": {
            "$ref": "Course"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.courses"
          ]
        },
        "update": {
          "description": "Updates a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to modify the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.\n* `FAILED_PRECONDITION` for the following request errors:\n    * CourseNotModifiable",
          "flatPath": "v1/courses/{id}",
          "httpMethod": "PUT",
          "id": "classroom.courses.update",
          "parameterOrder": [
            "id"
          ],
          "parameters": {
            "id": {
              "description": "Identifier of the course to update.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/courses/{id}",
          "request": {
            "$ref": "Course"
          },
          "response": {
            "$ref": "Course"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.courses"
          ]
        }
      },
      "resources": {
        "aliases": {
          "methods": {
            "create": {
              "description": "Creates an alias for a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create the\nalias or for access errors.\n* `NOT_FOUND` if the course does not exist.\n* `ALREADY_EXISTS` if the alias already exists.\n* `FAILED_PRECONDITION` if the alias requested does not make sense for the\n  requesting user or course (for example, if a user not in a domain\n  attempts to access a domain-scoped alias).",
              "flatPath": "v1/courses/{courseId}/aliases",
              "httpMethod": "POST",
              "id": "classroom.courses.aliases.create",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course to alias.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/aliases",
              "request": {
                "$ref": "CourseAlias"
              },
              "response": {
                "$ref": "CourseAlias"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.courses"
              ]
            },
            "delete": {
              "description": "Deletes an alias of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to remove the\nalias or for access errors.\n* `NOT_FOUND` if the alias does not exist.\n* `FAILED_PRECONDITION` if the alias requested does not make sense for the\n  requesting user or course (for example, if a user not in a domain\n  attempts to delete a domain-scoped alias).",
              "flatPath": "v1/courses/{courseId}/aliases/{alias}",
              "httpMethod": "DELETE",
              "id": "classroom.courses.aliases.delete",
              "parameterOrder": [
                "courseId",
                "alias"
              ],
              "parameters": {
                "alias": {
                  "description": "Alias to delete.\nThis may not be the Classroom-assigned identifier.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "courseId": {
                  "description": "Identifier of the course whose alias should be deleted.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/aliases/{alias}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.courses"
              ]
            },
            "list": {
              "description": "Returns a list of aliases for a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\ncourse or for access errors.\n* `NOT_FOUND` if the course does not exist.",
              "flatPath": "v1/courses/{courseId}/aliases",
              "httpMethod": "GET",
              "id": "classroom.courses.aliases.list",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "The identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/aliases",
              "response": {
                "$ref": "ListCourseAliasesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.courses",
                "https://www.googleapis.com/auth/classroom.courses.readonly"
              ]
            }
          }
        },
        "announcements": {
          "methods": {
            "create": {
              "description": "Creates an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, create announcements in the requested course, share a\nDrive attachment, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.\n* `FAILED_PRECONDITION` for the following request error:\n    * AttachmentNotVisible",
              "flatPath": "v1/courses/{courseId}/announcements",
              "httpMethod": "POST",
              "id": "classroom.courses.announcements.create",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/announcements",
              "request": {
                "$ref": "Announcement"
              },
              "response": {
                "$ref": "Announcement"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.announcements"
              ]
            },
            "delete": {
              "description": "Deletes an announcement.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding announcement item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding announcement, if the requesting user is not permitted\nto delete the requested course or for access errors.\n* `FAILED_PRECONDITION` if the requested announcement has already been\ndeleted.\n* `NOT_FOUND` if no course exists with the requested ID.",
              "flatPath": "v1/courses/{courseId}/announcements/{id}",
              "httpMethod": "DELETE",
              "id": "classroom.courses.announcements.delete",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the announcement to delete.\nThis identifier is a Classroom-assigned identifier.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/announcements/{id}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.announcements"
              ]
            },
            "get": {
              "description": "Returns an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or announcement, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or announcement does not exist.",
              "flatPath": "v1/courses/{courseId}/announcements/{id}",
              "httpMethod": "GET",
              "id": "classroom.courses.announcements.get",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the announcement.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/announcements/{id}",
              "response": {
                "$ref": "Announcement"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.announcements",
                "https://www.googleapis.com/auth/classroom.announcements.readonly"
              ]
            },
            "list": {
              "description": "Returns a list of announcements that the requester is permitted to view.\n\nCourse students may only view `PUBLISHED` announcements. Course teachers\nand domain administrators may view all announcements.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthe requested course or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.",
              "flatPath": "v1/courses/{courseId}/announcements",
              "httpMethod": "GET",
              "id": "classroom.courses.announcements.list",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "announcementStates": {
                  "description": "Restriction on the `state` of announcements returned.\nIf this argument is left unspecified, the default value is `PUBLISHED`.",
                  "enum": [
                    "ANNOUNCEMENT_STATE_UNSPECIFIED",
                    "PUBLISHED",
                    "DRAFT",
                    "DELETED"
                  ],
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                },
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "orderBy": {
                  "description": "Optional sort ordering for results. A comma-separated list of fields with\nan optional sort direction keyword. Supported field is `updateTime`.\nSupported direction keywords are `asc` and `desc`.\nIf not specified, `updateTime desc` is the default behavior.\nExamples: `updateTime asc`, `updateTime`",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/announcements",
              "response": {
                "$ref": "ListAnnouncementsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.announcements",
                "https://www.googleapis.com/auth/classroom.announcements.readonly"
              ]
            },
            "modifyAssignees": {
              "description": "Modifies assignee mode and options of an announcement.\n\nOnly a teacher of the course that contains the announcement may\ncall this method.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.",
              "flatPath": "v1/courses/{courseId}/announcements/{id}:modifyAssignees",
              "httpMethod": "POST",
              "id": "classroom.courses.announcements.modifyAssignees",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the announcement.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/announcements/{id}:modifyAssignees",
              "request": {
                "$ref": "ModifyAnnouncementAssigneesRequest"
              },
              "response": {
                "$ref": "Announcement"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.announcements"
              ]
            },
            "patch": {
              "description": "Updates one or more fields of an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding announcement or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `FAILED_PRECONDITION` if the requested announcement has already been\ndeleted.\n* `NOT_FOUND` if the requested course or announcement does not exist",
              "flatPath": "v1/courses/{courseId}/announcements/{id}",
              "httpMethod": "PATCH",
              "id": "classroom.courses.announcements.patch",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the announcement.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Mask that identifies which fields on the announcement to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. If a field supports empty values, it can be cleared\nby specifying it in the update mask and not in the Announcement object. If\na field that does not support empty values is included in the update mask\nand not set in the Announcement object, an `INVALID_ARGUMENT` error is\nreturned.\n\nThe following fields may be specified by teachers:\n\n* `text`\n* `state`\n* `scheduled_time`",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/announcements/{id}",
              "request": {
                "$ref": "Announcement"
              },
              "response": {
                "$ref": "Announcement"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.announcements"
              ]
            }
          }
        },
        "courseWork": {
          "methods": {
            "create": {
              "description": "Creates course work.\n\nThe resulting course work (and corresponding student submissions) are\nassociated with the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\nmake the request. Classroom API requests to modify course work and student\nsubmissions must be made with an OAuth client ID from the associated\nDeveloper Console project.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, create course work in the requested course, share a\nDrive attachment, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.\n* `FAILED_PRECONDITION` for the following request error:\n    * AttachmentNotVisible",
              "flatPath": "v1/courses/{courseId}/courseWork",
              "httpMethod": "POST",
              "id": "classroom.courses.courseWork.create",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/courseWork",
              "request": {
                "$ref": "CourseWork"
              },
              "response": {
                "$ref": "CourseWork"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.coursework.students"
              ]
            },
            "delete": {
              "description": "Deletes a course work.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the requesting user is not permitted\nto delete the requested course or for access errors.\n* `FAILED_PRECONDITION` if the requested course work has already been\ndeleted.\n* `NOT_FOUND` if no course exists with the requested ID.",
              "flatPath": "v1/courses/{courseId}/courseWork/{id}",
              "httpMethod": "DELETE",
              "id": "classroom.courses.courseWork.delete",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the course work to delete.\nThis identifier is a Classroom-assigned identifier.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/courseWork/{id}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.coursework.students"
              ]
            },
            "get": {
              "description": "Returns course work.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.",
              "flatPath": "v1/courses/{courseId}/courseWork/{id}",
              "httpMethod": "GET",
              "id": "classroom.courses.courseWork.get",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the course work.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/courseWork/{id}",
              "response": {
                "$ref": "CourseWork"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.coursework.me",
                "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
                "https://www.googleapis.com/auth/classroom.coursework.students",
                "https://www.googleapis.com/auth/classroom.coursework.students.readonly"
              ]
            },
            "list": {
              "description": "Returns a list of course work that the requester is permitted to view.\n\nCourse students may only view `PUBLISHED` course work. Course teachers\nand domain administrators may view all course work.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthe requested course or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.",
              "flatPath": "v1/courses/{courseId}/courseWork",
              "httpMethod": "GET",
              "id": "classroom.courses.courseWork.list",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "courseWorkStates": {
                  "description": "Restriction on the work status to return. Only courseWork that matches\nis returned. If unspecified, items with a work status of `PUBLISHED`\nis returned.",
                  "enum": [
                    "COURSE_WORK_STATE_UNSPECIFIED",
                    "PUBLISHED",
                    "DRAFT",
                    "DELETED"
                  ],
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                },
                "orderBy": {
                  "description": "Optional sort ordering for results. A comma-separated list of fields with\nan optional sort direction keyword. Supported fields are `updateTime`\nand `dueDate`. Supported direction keywords are `asc` and `desc`.\nIf not specified, `updateTime desc` is the default behavior.\nExamples: `dueDate asc,updateTime desc`, `updateTime,dueDate desc`",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/courseWork",
              "response": {
                "$ref": "ListCourseWorkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.coursework.me",
                "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
                "https://www.googleapis.com/auth/classroom.coursework.students",
                "https://www.googleapis.com/auth/classroom.coursework.students.readonly"
              ]
            },
            "modifyAssignees": {
              "description": "Modifies assignee mode and options of a coursework.\n\nOnly a teacher of the course that contains the coursework may\ncall this method.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.",
              "flatPath": "v1/courses/{courseId}/courseWork/{id}:modifyAssignees",
              "httpMethod": "POST",
              "id": "classroom.courses.courseWork.modifyAssignees",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the coursework.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/courseWork/{id}:modifyAssignees",
              "request": {
                "$ref": "ModifyCourseWorkAssigneesRequest"
              },
              "response": {
                "$ref": "CourseWork"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.coursework.students"
              ]
            },
            "patch": {
              "description": "Updates one or more fields of a course work.\n\nSee google.classroom.v1.CourseWork for details\nof which fields may be updated and who may change them.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the user is not permitted to make the\nrequested modification to the student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `FAILED_PRECONDITION` if the requested course work has already been\ndeleted.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.",
              "flatPath": "v1/courses/{courseId}/courseWork/{id}",
              "httpMethod": "PATCH",
              "id": "classroom.courses.courseWork.patch",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the course work.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Mask that identifies which fields on the course work to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. If a field supports empty values, it can be cleared\nby specifying it in the update mask and not in the CourseWork object. If a\nfield that does not support empty values is included in the update mask and\nnot set in the CourseWork object, an `INVALID_ARGUMENT` error is\nreturned.\n\nThe following fields may be specified by teachers:\n\n* `title`\n* `description`\n* `state`\n* `due_date`\n* `due_time`\n* `max_points`\n* `scheduled_time`\n* `submission_modification_mode`\n* `topic_id`",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/courseWork/{id}",
              "request": {
                "$ref": "CourseWork"
              },
              "response": {
                "$ref": "CourseWork"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.coursework.students"
              ]
            }
          },
          "resources": {
            "studentSubmissions": {
              "methods": {
                "get": {
                  "description": "Returns a student submission.\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, course work, or student submission or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.",
                  "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}",
                  "httpMethod": "GET",
                  "id": "classroom.courses.courseWork.studentSubmissions.get",
                  "parameterOrder": [
                    "courseId",
                    "courseWorkId",
                    "id"
                  ],
                  "parameters": {
                    "courseId": {
                      "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "courseWorkId": {
                      "description": "Identifier of the course work.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "id": {
                      "description": "Identifier of the student submission.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}",
                  "response": {
                    "$ref": "StudentSubmission"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/classroom.coursework.me",
                    "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
                    "https://www.googleapis.com/auth/classroom.coursework.students",
                    "https://www.googleapis.com/auth/classroom.coursework.students.readonly",
                    "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",
                    "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"
                  ]
                },
                "list": {
                  "description": "Returns a list of student submissions that the requester is permitted to\nview, factoring in the OAuth scopes of the request.\n`-` may be specified as the `course_work_id` to include student\nsubmissions for multiple course work items.\n\nCourse students may only view their own work. Course teachers\nand domain administrators may view all student submissions.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.",
                  "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions",
                  "httpMethod": "GET",
                  "id": "classroom.courses.courseWork.studentSubmissions.list",
                  "parameterOrder": [
                    "courseId",
                    "courseWorkId"
                  ],
                  "parameters": {
                    "courseId": {
                      "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "courseWorkId": {
                      "description": "Identifier of the student work to request.\nThis may be set to the string literal `\"-\"` to request student work for\nall course work in the specified course.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "late": {
                      "description": "Requested lateness value. If specified, returned student submissions are\nrestricted by the requested value.\nIf unspecified, submissions are returned regardless of `late` value.",
                      "enum": [
                        "LATE_VALUES_UNSPECIFIED",
                        "LATE_ONLY",
                        "NOT_LATE_ONLY"
                      ],
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.",
                      "location": "query",
                      "type": "string"
                    },
                    "states": {
                      "description": "Requested submission states. If specified, returned student submissions\nmatch one of the specified submission states.",
                      "enum": [
                        "SUBMISSION_STATE_UNSPECIFIED",
                        "NEW",
                        "CREATED",
                        "TURNED_IN",
                        "RETURNED",
                        "RECLAIMED_BY_STUDENT"
                      ],
                      "location": "query",
                      "repeated": true,
                      "type": "string"
                    },
                    "userId": {
                      "description": "Optional argument to restrict returned student work to those owned by the\nstudent with the specified identifier. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions",
                  "response": {
                    "$ref": "ListStudentSubmissionsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/classroom.coursework.me",
                    "https://www.googleapis.com/auth/classroom.coursework.me.readonly",
                    "https://www.googleapis.com/auth/classroom.coursework.students",
                    "https://www.googleapis.com/auth/classroom.coursework.students.readonly",
                    "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",
                    "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"
                  ]
                },
                "modifyAttachments": {
                  "description": "Modifies attachments of student submission.\n\nAttachments may only be added to student submissions belonging to course\nwork objects with a `workType` of `ASSIGNMENT`.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, if the user is not permitted to modify\nattachments on the requested student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.",
                  "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments",
                  "httpMethod": "POST",
                  "id": "classroom.courses.courseWork.studentSubmissions.modifyAttachments",
                  "parameterOrder": [
                    "courseId",
                    "courseWorkId",
                    "id"
                  ],
                  "parameters": {
                    "courseId": {
                      "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "courseWorkId": {
                      "description": "Identifier of the course work.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "id": {
                      "description": "Identifier of the student submission.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments",
                  "request": {
                    "$ref": "ModifyAttachmentsRequest"
                  },
                  "response": {
                    "$ref": "StudentSubmission"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/classroom.coursework.me",
                    "https://www.googleapis.com/auth/classroom.coursework.students"
                  ]
                },
                "patch": {
                  "description": "Updates one or more fields of a student submission.\n\nSee google.classroom.v1.StudentSubmission for details\nof which fields may be updated and who may change them.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the user is not permitted to make the\nrequested modification to the student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.",
                  "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}",
                  "httpMethod": "PATCH",
                  "id": "classroom.courses.courseWork.studentSubmissions.patch",
                  "parameterOrder": [
                    "courseId",
                    "courseWorkId",
                    "id"
                  ],
                  "parameters": {
                    "courseId": {
                      "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "courseWorkId": {
                      "description": "Identifier of the course work.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "id": {
                      "description": "Identifier of the student submission.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "description": "Mask that identifies which fields on the student submission to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified.\n\nThe following fields may be specified by teachers:\n\n* `draft_grade`\n* `assigned_grade`",
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}",
                  "request": {
                    "$ref": "StudentSubmission"
                  },
                  "response": {
                    "$ref": "StudentSubmission"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/classroom.coursework.me",
                    "https://www.googleapis.com/auth/classroom.coursework.students"
                  ]
                },
                "reclaim": {
                  "description": "Reclaims a student submission on behalf of the student that owns it.\n\nReclaiming a student submission transfers ownership of attached Drive\nfiles to the student and updates the submission state.\n\nOnly the student that owns the requested student submission may call this\nmethod, and only for a student submission that has been turned in.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, unsubmit the requested student submission,\nor for access errors.\n* `FAILED_PRECONDITION` if the student submission has not been turned in.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.",
                  "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim",
                  "httpMethod": "POST",
                  "id": "classroom.courses.courseWork.studentSubmissions.reclaim",
                  "parameterOrder": [
                    "courseId",
                    "courseWorkId",
                    "id"
                  ],
                  "parameters": {
                    "courseId": {
                      "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "courseWorkId": {
                      "description": "Identifier of the course work.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "id": {
                      "description": "Identifier of the student submission.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim",
                  "request": {
                    "$ref": "ReclaimStudentSubmissionRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/classroom.coursework.me"
                  ]
                },
                "return": {
                  "description": "Returns a student submission.\n\nReturning a student submission transfers ownership of attached Drive\nfiles to the student and may also update the submission state.\nUnlike the Classroom application, returning a student submission does not\nset assignedGrade to the draftGrade value.\n\nOnly a teacher of the course that contains the requested student submission\nmay call this method.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, return the requested student submission,\nor for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.",
                  "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return",
                  "httpMethod": "POST",
                  "id": "classroom.courses.courseWork.studentSubmissions.return",
                  "parameterOrder": [
                    "courseId",
                    "courseWorkId",
                    "id"
                  ],
                  "parameters": {
                    "courseId": {
                      "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "courseWorkId": {
                      "description": "Identifier of the course work.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "id": {
                      "description": "Identifier of the student submission.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return",
                  "request": {
                    "$ref": "ReturnStudentSubmissionRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/classroom.coursework.students"
                  ]
                },
                "turnIn": {
                  "description": "Turns in a student submission.\n\nTurning in a student submission transfers ownership of attached Drive\nfiles to the teacher and may also update the submission state.\n\nThis may only be called by the student that owns the specified student\nsubmission.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, turn in the requested student submission,\nor for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.",
                  "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn",
                  "httpMethod": "POST",
                  "id": "classroom.courses.courseWork.studentSubmissions.turnIn",
                  "parameterOrder": [
                    "courseId",
                    "courseWorkId",
                    "id"
                  ],
                  "parameters": {
                    "courseId": {
                      "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "courseWorkId": {
                      "description": "Identifier of the course work.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "id": {
                      "description": "Identifier of the student submission.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn",
                  "request": {
                    "$ref": "TurnInStudentSubmissionRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/classroom.coursework.me"
                  ]
                }
              }
            }
          }
        },
        "students": {
          "methods": {
            "create": {
              "description": "Adds a user as a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\nstudents in this course or for access errors.\n* `NOT_FOUND` if the requested course ID does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled,\nfor the following request errors:\n    * CourseMemberLimitReached\n    * CourseNotModifiable\n    * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if the user is already a student or teacher in the\ncourse.",
              "flatPath": "v1/courses/{courseId}/students",
              "httpMethod": "POST",
              "id": "classroom.courses.students.create",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course to create the student in.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "enrollmentCode": {
                  "description": "Enrollment code of the course to create the student in.\nThis code is required if userId\ncorresponds to the requesting user; it may be omitted if the requesting\nuser has administrative permissions to create students for any user.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/students",
              "request": {
                "$ref": "Student"
              },
              "response": {
                "$ref": "Student"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.profile.emails",
                "https://www.googleapis.com/auth/classroom.profile.photos",
                "https://www.googleapis.com/auth/classroom.rosters"
              ]
            },
            "delete": {
              "description": "Deletes a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete\nstudents of this course or for access errors.\n* `NOT_FOUND` if no student of this course has the requested ID or if the\ncourse does not exist.",
              "flatPath": "v1/courses/{courseId}/students/{userId}",
              "httpMethod": "DELETE",
              "id": "classroom.courses.students.delete",
              "parameterOrder": [
                "courseId",
                "userId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "userId": {
                  "description": "Identifier of the student to delete. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/students/{userId}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.rosters"
              ]
            },
            "get": {
              "description": "Returns a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\nstudents of this course or for access errors.\n* `NOT_FOUND` if no student of this course has the requested ID or if the\ncourse does not exist.",
              "flatPath": "v1/courses/{courseId}/students/{userId}",
              "httpMethod": "GET",
              "id": "classroom.courses.students.get",
              "parameterOrder": [
                "courseId",
                "userId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "userId": {
                  "description": "Identifier of the student to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/students/{userId}",
              "response": {
                "$ref": "Student"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.profile.emails",
                "https://www.googleapis.com/auth/classroom.profile.photos",
                "https://www.googleapis.com/auth/classroom.rosters",
                "https://www.googleapis.com/auth/classroom.rosters.readonly"
              ]
            },
            "list": {
              "description": "Returns a list of students of this course that the requester\nis permitted to view.\n\nThis method returns the following error codes:\n\n* `NOT_FOUND` if the course does not exist.\n* `PERMISSION_DENIED` for access errors.",
              "flatPath": "v1/courses/{courseId}/students",
              "httpMethod": "GET",
              "id": "classroom.courses.students.list",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. The default is 30 if unspecified or `0`.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating that\nthe subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/students",
              "response": {
                "$ref": "ListStudentsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.profile.emails",
                "https://www.googleapis.com/auth/classroom.profile.photos",
                "https://www.googleapis.com/auth/classroom.rosters",
                "https://www.googleapis.com/auth/classroom.rosters.readonly"
              ]
            }
          }
        },
        "teachers": {
          "methods": {
            "create": {
              "description": "Creates a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not  permitted to create\nteachers in this course or for access errors.\n* `NOT_FOUND` if the requested course ID does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled,\nfor the following request errors:\n    * CourseMemberLimitReached\n    * CourseNotModifiable\n    * CourseTeacherLimitReached\n    * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if the user is already a teacher or student in the\ncourse.",
              "flatPath": "v1/courses/{courseId}/teachers",
              "httpMethod": "POST",
              "id": "classroom.courses.teachers.create",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/teachers",
              "request": {
                "$ref": "Teacher"
              },
              "response": {
                "$ref": "Teacher"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.profile.emails",
                "https://www.googleapis.com/auth/classroom.profile.photos",
                "https://www.googleapis.com/auth/classroom.rosters"
              ]
            },
            "delete": {
              "description": "Deletes a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete\nteachers of this course or for access errors.\n* `NOT_FOUND` if no teacher of this course has the requested ID or if the\ncourse does not exist.\n* `FAILED_PRECONDITION` if the requested ID belongs to the primary teacher\nof this course.",
              "flatPath": "v1/courses/{courseId}/teachers/{userId}",
              "httpMethod": "DELETE",
              "id": "classroom.courses.teachers.delete",
              "parameterOrder": [
                "courseId",
                "userId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "userId": {
                  "description": "Identifier of the teacher to delete. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/teachers/{userId}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.rosters"
              ]
            },
            "get": {
              "description": "Returns a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\nteachers of this course or for access errors.\n* `NOT_FOUND` if no teacher of this course has the requested ID or if the\ncourse does not exist.",
              "flatPath": "v1/courses/{courseId}/teachers/{userId}",
              "httpMethod": "GET",
              "id": "classroom.courses.teachers.get",
              "parameterOrder": [
                "courseId",
                "userId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "userId": {
                  "description": "Identifier of the teacher to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/teachers/{userId}",
              "response": {
                "$ref": "Teacher"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.profile.emails",
                "https://www.googleapis.com/auth/classroom.profile.photos",
                "https://www.googleapis.com/auth/classroom.rosters",
                "https://www.googleapis.com/auth/classroom.rosters.readonly"
              ]
            },
            "list": {
              "description": "Returns a list of teachers of this course that the requester\nis permitted to view.\n\nThis method returns the following error codes:\n\n* `NOT_FOUND` if the course does not exist.\n* `PERMISSION_DENIED` for access errors.",
              "flatPath": "v1/courses/{courseId}/teachers",
              "httpMethod": "GET",
              "id": "classroom.courses.teachers.list",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. The default is 30 if unspecified or `0`.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating that\nthe subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/teachers",
              "response": {
                "$ref": "ListTeachersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.profile.emails",
                "https://www.googleapis.com/auth/classroom.profile.photos",
                "https://www.googleapis.com/auth/classroom.rosters",
                "https://www.googleapis.com/auth/classroom.rosters.readonly"
              ]
            }
          }
        },
        "topics": {
          "methods": {
            "create": {
              "description": "Creates a topic.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, create a topic in the requested course,\nor for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.",
              "flatPath": "v1/courses/{courseId}/topics",
              "httpMethod": "POST",
              "id": "classroom.courses.topics.create",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/topics",
              "request": {
                "$ref": "Topic"
              },
              "response": {
                "$ref": "Topic"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.topics"
              ]
            },
            "delete": {
              "description": "Deletes a topic.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not allowed to delete the\nrequested topic or for access errors.\n* `FAILED_PRECONDITION` if the requested topic has already been\ndeleted.\n* `NOT_FOUND` if no course or topic exists with the requested ID.",
              "flatPath": "v1/courses/{courseId}/topics/{id}",
              "httpMethod": "DELETE",
              "id": "classroom.courses.topics.delete",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the topic to delete.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/topics/{id}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.topics"
              ]
            },
            "get": {
              "description": "Returns a topic.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or topic, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or topic does not exist.",
              "flatPath": "v1/courses/{courseId}/topics/{id}",
              "httpMethod": "GET",
              "id": "classroom.courses.topics.get",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the topic.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/topics/{id}",
              "response": {
                "$ref": "Topic"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.topics",
                "https://www.googleapis.com/auth/classroom.topics.readonly"
              ]
            },
            "list": {
              "description": "Returns the list of topics that the requester is permitted to view.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthe requested course or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.",
              "flatPath": "v1/courses/{courseId}/topics",
              "httpMethod": "GET",
              "id": "classroom.courses.topics.list",
              "parameterOrder": [
                "courseId"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/topics",
              "response": {
                "$ref": "ListTopicResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.topics",
                "https://www.googleapis.com/auth/classroom.topics.readonly"
              ]
            },
            "patch": {
              "description": "Updates one or more fields of a topic.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding topic or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or topic does not exist",
              "flatPath": "v1/courses/{courseId}/topics/{id}",
              "httpMethod": "PATCH",
              "id": "classroom.courses.topics.patch",
              "parameterOrder": [
                "courseId",
                "id"
              ],
              "parameters": {
                "courseId": {
                  "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "id": {
                  "description": "Identifier of the topic.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Mask that identifies which fields on the topic to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. If a field supports empty values, it can be cleared\nby specifying it in the update mask and not in the Topic object. If a\nfield that does not support empty values is included in the update mask and\nnot set in the Topic object, an `INVALID_ARGUMENT` error is\nreturned.\n\nThe following fields may be specified:\n\n* `name`",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/courses/{courseId}/topics/{id}",
              "request": {
                "$ref": "Topic"
              },
              "response": {
                "$ref": "Topic"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.topics"
              ]
            }
          }
        }
      }
    },
    "invitations": {
      "methods": {
        "accept": {
          "description": "Accepts an invitation, removing it and adding the invited user to the\nteachers or students (as appropriate) of the specified course. Only the\ninvited user may accept an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to accept the\nrequested invitation or for access errors.\n* `FAILED_PRECONDITION` for the following request errors:\n    * CourseMemberLimitReached\n    * CourseNotModifiable\n    * CourseTeacherLimitReached\n    * UserGroupsMembershipLimitReached\n* `NOT_FOUND` if no invitation exists with the requested ID.",
          "flatPath": "v1/invitations/{id}:accept",
          "httpMethod": "POST",
          "id": "classroom.invitations.accept",
          "parameterOrder": [
            "id"
          ],
          "parameters": {
            "id": {
              "description": "Identifier of the invitation to accept.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/invitations/{id}:accept",
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.rosters"
          ]
        },
        "create": {
          "description": "Creates an invitation. Only one invitation for a user and course may exist\nat a time. Delete and re-create an invitation to make changes.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\ninvitations for this course or for access errors.\n* `NOT_FOUND` if the course or the user does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled or if\nthe user already has this role or a role with greater permissions.\n* `ALREADY_EXISTS` if an invitation for the specified user and course\nalready exists.",
          "flatPath": "v1/invitations",
          "httpMethod": "POST",
          "id": "classroom.invitations.create",
          "parameterOrder": [],
          "parameters": {},
          "path": "v1/invitations",
          "request": {
            "$ref": "Invitation"
          },
          "response": {
            "$ref": "Invitation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.rosters"
          ]
        },
        "delete": {
          "description": "Deletes an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete the\nrequested invitation or for access errors.\n* `NOT_FOUND` if no invitation exists with the requested ID.",
          "flatPath": "v1/invitations/{id}",
          "httpMethod": "DELETE",
          "id": "classroom.invitations.delete",
          "parameterOrder": [
            "id"
          ],
          "parameters": {
            "id": {
              "description": "Identifier of the invitation to delete.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/invitations/{id}",
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.rosters"
          ]
        },
        "get": {
          "description": "Returns an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view the\nrequested invitation or for access errors.\n* `NOT_FOUND` if no invitation exists with the requested ID.",
          "flatPath": "v1/invitations/{id}",
          "httpMethod": "GET",
          "id": "classroom.invitations.get",
          "parameterOrder": [
            "id"
          ],
          "parameters": {
            "id": {
              "description": "Identifier of the invitation to return.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/invitations/{id}",
          "response": {
            "$ref": "Invitation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.rosters",
            "https://www.googleapis.com/auth/classroom.rosters.readonly"
          ]
        },
        "list": {
          "description": "Returns a list of invitations that the requesting user is permitted to\nview, restricted to those that match the list request.\n\n*Note:* At least one of `user_id` or `course_id` must be supplied. Both\nfields can be supplied.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` for access errors.",
          "flatPath": "v1/invitations",
          "httpMethod": "GET",
          "id": "classroom.invitations.list",
          "parameterOrder": [],
          "parameters": {
            "courseId": {
              "description": "Restricts returned invitations to those for a course with the specified\nidentifier.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "Maximum number of items to return. The default is 500 if unspecified or\n`0`.\n\nThe server may return fewer than the specified number of results.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating\nthat the subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.",
              "location": "query",
              "type": "string"
            },
            "userId": {
              "description": "Restricts returned invitations to those for a specific user. The identifier\ncan be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/invitations",
          "response": {
            "$ref": "ListInvitationsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.rosters",
            "https://www.googleapis.com/auth/classroom.rosters.readonly"
          ]
        }
      }
    },
    "registrations": {
      "methods": {
        "create": {
          "description": "Creates a `Registration`, causing Classroom to start sending notifications\nfrom the provided `feed` to the destination provided in `cloudPubSubTopic`.\n\nReturns the created `Registration`. Currently, this will be the same as\nthe argument, but with server-assigned fields such as `expiry_time` and\n`id` filled in.\n\nNote that any value specified for the `expiry_time` or `id` fields will be\nignored.\n\nWhile Classroom may validate the `cloudPubSubTopic` and return errors on a\nbest effort basis, it is the caller's responsibility to ensure that it\nexists and that Classroom has permission to publish to it.\n\nThis method may return the following error codes:\n\n* `PERMISSION_DENIED` if:\n    * the authenticated user does not have permission to receive\n      notifications from the requested field; or\n    * the credential provided does not include the appropriate scope for\n      the requested feed.\n    * another access error is encountered.\n* `INVALID_ARGUMENT` if:\n    * no `cloudPubsubTopic` is specified, or the specified\n      `cloudPubsubTopic` is not valid; or\n    * no `feed` is specified, or the specified `feed` is not valid.\n* `NOT_FOUND` if:\n    * the specified `feed` cannot be located, or the requesting user does\n      not have permission to determine whether or not it exists; or\n    * the specified `cloudPubsubTopic` cannot be located, or Classroom has\n      not been granted permission to publish to it.",
          "flatPath": "v1/registrations",
          "httpMethod": "POST",
          "id": "classroom.registrations.create",
          "parameterOrder": [],
          "parameters": {},
          "path": "v1/registrations",
          "request": {
            "$ref": "Registration"
          },
          "response": {
            "$ref": "Registration"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.push-notifications"
          ]
        },
        "delete": {
          "description": "Deletes a `Registration`, causing Classroom to stop sending notifications\nfor that `Registration`.",
          "flatPath": "v1/registrations/{registrationId}",
          "httpMethod": "DELETE",
          "id": "classroom.registrations.delete",
          "parameterOrder": [
            "registrationId"
          ],
          "parameters": {
            "registrationId": {
              "description": "The `registration_id` of the `Registration` to be deleted.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/registrations/{registrationId}",
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.push-notifications"
          ]
        }
      }
    },
    "userProfiles": {
      "methods": {
        "get": {
          "description": "Returns a user profile.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthis user profile, if no profile exists with the requested ID, or for\naccess errors.",
          "flatPath": "v1/userProfiles/{userId}",
          "httpMethod": "GET",
          "id": "classroom.userProfiles.get",
          "parameterOrder": [
            "userId"
          ],
          "parameters": {
            "userId": {
              "description": "Identifier of the profile to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/userProfiles/{userId}",
          "response": {
            "$ref": "UserProfile"
          },
          "scopes": [
            "https://www.googleapis.com/auth/classroom.profile.emails",
            "https://www.googleapis.com/auth/classroom.profile.photos",
            "https://www.googleapis.com/auth/classroom.rosters",
            "https://www.googleapis.com/auth/classroom.rosters.readonly"
          ]
        }
      },
      "resources": {
        "guardianInvitations": {
          "methods": {
            "create": {
              "description": "Creates a guardian invitation, and sends an email to the guardian asking\nthem to confirm that they are the student's guardian.\n\nOnce the guardian accepts the invitation, their `state` will change to\n`COMPLETED` and they will start receiving guardian notifications. A\n`Guardian` resource will also be created to represent the active guardian.\n\nThe request object must have the `student_id` and\n`invited_email_address` fields set. Failing to set these fields, or\nsetting any other fields in the request, will result in an error.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the current user does not have permission to\n  manage guardians, if the guardian in question has already rejected\n  too many requests for that student, if guardians are not enabled for the\n  domain in question, or for other access errors.\n* `RESOURCE_EXHAUSTED` if the student or guardian has exceeded the guardian\n  link limit.\n* `INVALID_ARGUMENT` if the guardian email address is not valid (for\n  example, if it is too long), or if the format of the student ID provided\n  cannot be recognized (it is not an email address, nor a `user_id` from\n  this API). This error will also be returned if read-only fields are set,\n  or if the `state` field is set to to a value other than `PENDING`.\n* `NOT_FOUND` if the student ID provided is a valid student ID, but\n  Classroom has no record of that student.\n* `ALREADY_EXISTS` if there is already a pending guardian invitation for\n  the student and `invited_email_address` provided, or if the provided\n  `invited_email_address` matches the Google account of an existing\n  `Guardian` for this user.",
              "flatPath": "v1/userProfiles/{studentId}/guardianInvitations",
              "httpMethod": "POST",
              "id": "classroom.userProfiles.guardianInvitations.create",
              "parameterOrder": [
                "studentId"
              ],
              "parameters": {
                "studentId": {
                  "description": "ID of the student (in standard format)",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/userProfiles/{studentId}/guardianInvitations",
              "request": {
                "$ref": "GuardianInvitation"
              },
              "response": {
                "$ref": "GuardianInvitation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.guardianlinks.students"
              ]
            },
            "get": {
              "description": "Returns a specific guardian invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\n  guardian invitations for the student identified by the `student_id`, if\n  guardians are not enabled for the domain in question, or for other\n  access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n  be recognized (it is not an email address, nor a `student_id` from the\n  API, nor the literal string `me`).\n* `NOT_FOUND` if Classroom cannot find any record of the given student or\n  `invitation_id`. May also be returned if the student exists, but the\n  requesting user does not have access to see that student.",
              "flatPath": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}",
              "httpMethod": "GET",
              "id": "classroom.userProfiles.guardianInvitations.get",
              "parameterOrder": [
                "studentId",
                "invitationId"
              ],
              "parameters": {
                "invitationId": {
                  "description": "The `id` field of the `GuardianInvitation` being requested.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "studentId": {
                  "description": "The ID of the student whose guardian invitation is being requested.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}",
              "response": {
                "$ref": "GuardianInvitation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.guardianlinks.students",
                "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"
              ]
            },
            "list": {
              "description": "Returns a list of guardian invitations that the requesting user is\npermitted to view, filtered by the parameters provided.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if a `student_id` is specified, and the requesting\n  user is not permitted to view guardian invitations for that student, if\n  `\"-\"` is specified as the `student_id` and the user is not a domain\n  administrator, if guardians are not enabled for the domain in question,\n  or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n  be recognized (it is not an email address, nor a `student_id` from the\n  API, nor the literal string `me`). May also be returned if an invalid\n  `page_token` or `state` is provided.\n* `NOT_FOUND` if a `student_id` is specified, and its format can be\n  recognized, but Classroom has no record of that student.",
              "flatPath": "v1/userProfiles/{studentId}/guardianInvitations",
              "httpMethod": "GET",
              "id": "classroom.userProfiles.guardianInvitations.list",
              "parameterOrder": [
                "studentId"
              ],
              "parameters": {
                "invitedEmailAddress": {
                  "description": "If specified, only results with the specified `invited_email_address`\nare returned.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist\ncall, indicating that the subsequent page of results should be returned.\n\nThe list\nrequest must be otherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                },
                "states": {
                  "description": "If specified, only results with the specified `state` values are\nreturned. Otherwise, results with a `state` of `PENDING` are returned.",
                  "enum": [
                    "GUARDIAN_INVITATION_STATE_UNSPECIFIED",
                    "PENDING",
                    "COMPLETE"
                  ],
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                },
                "studentId": {
                  "description": "The ID of the student whose guardian invitations are to be returned.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n* the string literal `\"-\"`, indicating that results should be returned for\n  all students that the requesting user is permitted to view guardian\n  invitations.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/userProfiles/{studentId}/guardianInvitations",
              "response": {
                "$ref": "ListGuardianInvitationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.guardianlinks.students",
                "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"
              ]
            },
            "patch": {
              "description": "Modifies a guardian invitation.\n\nCurrently, the only valid modification is to change the `state` from\n`PENDING` to `COMPLETE`. This has the effect of withdrawing the invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the current user does not have permission to\n  manage guardians, if guardians are not enabled for the domain in question\n  or for other access errors.\n* `FAILED_PRECONDITION` if the guardian link is not in the `PENDING` state.\n* `INVALID_ARGUMENT` if the format of the student ID provided\n  cannot be recognized (it is not an email address, nor a `user_id` from\n  this API), or if the passed `GuardianInvitation` has a `state` other than\n  `COMPLETE`, or if it modifies fields other than `state`.\n* `NOT_FOUND` if the student ID provided is a valid student ID, but\n  Classroom has no record of that student, or if the `id` field does not\n  refer to a guardian invitation known to Classroom.",
              "flatPath": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}",
              "httpMethod": "PATCH",
              "id": "classroom.userProfiles.guardianInvitations.patch",
              "parameterOrder": [
                "studentId",
                "invitationId"
              ],
              "parameters": {
                "invitationId": {
                  "description": "The `id` field of the `GuardianInvitation` to be modified.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "studentId": {
                  "description": "The ID of the student whose guardian invitation is to be modified.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Mask that identifies which fields on the course to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. The following fields are valid:\n\n* `state`\n\nWhen set in a query parameter, this field should be specified as\n\n`updateMask=\u003cfield1\u003e,\u003cfield2\u003e,...`",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}",
              "request": {
                "$ref": "GuardianInvitation"
              },
              "response": {
                "$ref": "GuardianInvitation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.guardianlinks.students"
              ]
            }
          }
        },
        "guardians": {
          "methods": {
            "delete": {
              "description": "Deletes a guardian.\n\nThe guardian will no longer receive guardian notifications and the guardian\nwill no longer be accessible via the API.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if no user that matches the provided `student_id`\n  is visible to the requesting user, if the requesting user is not\n  permitted to manage guardians for the student identified by the\n  `student_id`, if guardians are not enabled for the domain in question,\n  or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n  be recognized (it is not an email address, nor a `student_id` from the\n  API).\n* `NOT_FOUND` if the requesting user is permitted to modify guardians for\n  the requested `student_id`, but no `Guardian` record exists for that\n  student with the provided `guardian_id`.",
              "flatPath": "v1/userProfiles/{studentId}/guardians/{guardianId}",
              "httpMethod": "DELETE",
              "id": "classroom.userProfiles.guardians.delete",
              "parameterOrder": [
                "studentId",
                "guardianId"
              ],
              "parameters": {
                "guardianId": {
                  "description": "The `id` field from a `Guardian`.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "studentId": {
                  "description": "The student whose guardian is to be deleted. One of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/userProfiles/{studentId}/guardians/{guardianId}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.guardianlinks.students"
              ]
            },
            "get": {
              "description": "Returns a specific guardian.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if no user that matches the provided `student_id`\n  is visible to the requesting user, if the requesting user is not\n  permitted to view guardian information for the student identified by the\n  `student_id`, if guardians are not enabled for the domain in question,\n  or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n  be recognized (it is not an email address, nor a `student_id` from the\n  API, nor the literal string `me`).\n* `NOT_FOUND` if the requesting user is permitted to view guardians for\n  the requested `student_id`, but no `Guardian` record exists for that\n  student that matches the provided `guardian_id`.",
              "flatPath": "v1/userProfiles/{studentId}/guardians/{guardianId}",
              "httpMethod": "GET",
              "id": "classroom.userProfiles.guardians.get",
              "parameterOrder": [
                "studentId",
                "guardianId"
              ],
              "parameters": {
                "guardianId": {
                  "description": "The `id` field from a `Guardian`.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "studentId": {
                  "description": "The student whose guardian is being requested. One of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/userProfiles/{studentId}/guardians/{guardianId}",
              "response": {
                "$ref": "Guardian"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly",
                "https://www.googleapis.com/auth/classroom.guardianlinks.students",
                "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"
              ]
            },
            "list": {
              "description": "Returns a list of guardians that the requesting user is permitted to\nview, restricted to those that match the request.\n\nTo list guardians for any student that the requesting user may view\nguardians for, use the literal character `-` for the student ID.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if a `student_id` is specified, and the requesting\n  user is not permitted to view guardian information for that student, if\n  `\"-\"` is specified as the `student_id` and the user is not a domain\n  administrator, if guardians are not enabled for the domain in question,\n  if the `invited_email_address` filter is set by a user who is not a\n  domain administrator, or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n  be recognized (it is not an email address, nor a `student_id` from the\n  API, nor the literal string `me`). May also be returned if an invalid\n  `page_token` is provided.\n* `NOT_FOUND` if a `student_id` is specified, and its format can be\n  recognized, but Classroom has no record of that student.",
              "flatPath": "v1/userProfiles/{studentId}/guardians",
              "httpMethod": "GET",
              "id": "classroom.userProfiles.guardians.list",
              "parameterOrder": [
                "studentId"
              ],
              "parameters": {
                "invitedEmailAddress": {
                  "description": "Filter results by the email address that the original invitation was sent\nto, resulting in this guardian link.\nThis filter can only be used by domain administrators.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.",
                  "location": "query",
                  "type": "string"
                },
                "studentId": {
                  "description": "Filter results by the student who the guardian is linked to.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n* the string literal `\"-\"`, indicating that results should be returned for\n  all students that the requesting user has access to view.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/userProfiles/{studentId}/guardians",
              "response": {
                "$ref": "ListGuardiansResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly",
                "https://www.googleapis.com/auth/classroom.guardianlinks.students",
                "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly"
              ]
            }
          }
        }
      }
    }
  },
  "revision": "20200707",
  "rootUrl": "https://classroom.googleapis.com/",
  "schemas": {
    "Announcement": {
      "description": "Announcement created by a teacher for students of the course",
      "id": "Announcement",
      "properties": {
        "alternateLink": {
          "description": "Absolute link to this announcement in the Classroom web UI.\nThis is only populated if `state` is `PUBLISHED`.\n\nRead-only.",
          "type": "string"
        },
        "assigneeMode": {
          "description": "Assignee mode of the announcement.\nIf unspecified, the default value is `ALL_STUDENTS`.",
          "enum": [
            "ASSIGNEE_MODE_UNSPECIFIED",
            "ALL_STUDENTS",
            "INDIVIDUAL_STUDENTS"
          ],
          "enumDescriptions": [
            "No mode specified. This is never returned.",
            "All students can see the item.\nThis is the default state.",
            "A subset of the students can see the item."
          ],
          "type": "string"
        },
        "courseId": {
          "description": "Identifier of the course.\n\nRead-only.",
          "type": "string"
        },
        "creationTime": {
          "description": "Timestamp when this announcement was created.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        },
        "creatorUserId": {
          "description": "Identifier for the user that created the announcement.\n\nRead-only.",
          "type": "string"
        },
        "id": {
          "description": "Classroom-assigned identifier of this announcement, unique per course.\n\nRead-only.",
          "type": "string"
        },
        "individualStudentsOptions": {
          "$ref": "IndividualStudentsOptions",
          "description": "Identifiers of students with access to the announcement.\nThis field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.\nIf the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students\nspecified in this field can see the announcement."
        },
        "materials": {
          "description": "Additional materials.\n\nAnnouncements must have no more than 20 material items.",
          "items": {
            "$ref": "Material"
          },
          "type": "array"
        },
        "scheduledTime": {
          "description": "Optional timestamp when this announcement is scheduled to be published.",
          "format": "google-datetime",
          "type": "string"
        },
        "state": {
          "description": "Status of this announcement.\nIf unspecified, the default state is `DRAFT`.",
          "enum": [
            "ANNOUNCEMENT_STATE_UNSPECIFIED",
            "PUBLISHED",
            "DRAFT",
            "DELETED"
          ],
          "enumDescriptions": [
            "No state specified. This is never returned.",
            "Status for announcement that has been published.\nThis is the default state.",
            "Status for an announcement that is not yet published.\nAnnouncement in this state is visible only to course teachers and domain\nadministrators.",
            "Status for announcement that was published but is now deleted.\nAnnouncement in this state is visible only to course teachers and domain\nadministrators.\nAnnouncement in this state is deleted after some time."
          ],
          "type": "string"
        },
        "text": {
          "description": "Description of this announcement.\nThe text must be a valid UTF-8 string containing no more\nthan 30,000 characters.",
          "type": "string"
        },
        "updateTime": {
          "description": "Timestamp of the most recent change to this announcement.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Assignment": {
      "description": "Additional details for assignments.",
      "id": "Assignment",
      "properties": {
        "studentWorkFolder": {
          "$ref": "DriveFolder",
          "description": "Drive folder where attachments from student submissions are placed.\nThis is only populated for course teachers and administrators."
        }
      },
      "type": "object"
    },
    "AssignmentSubmission": {
      "description": "Student work for an assignment.",
      "id": "AssignmentSubmission",
      "properties": {
        "attachments": {
          "description": "Attachments added by the student.\nDrive files that correspond to materials with a share mode of\nSTUDENT_COPY may not exist yet if the student has not accessed the\nassignment in Classroom.\n\nSome attachment metadata is only populated if the requesting user has\npermission to access it. Identifier and alternate_link fields are always\navailable, but others (for example, title) may not be.",
          "items": {
            "$ref": "Attachment"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Attachment": {
      "description": "Attachment added to student assignment work.\n\nWhen creating attachments, setting the `form` field is not supported.",
      "id": "Attachment",
      "properties": {
        "driveFile": {
          "$ref": "DriveFile",
          "description": "Google Drive file attachment."
        },
        "form": {
          "$ref": "Form",
          "description": "Google Forms attachment."
        },
        "link": {
          "$ref": "Link",
          "description": "Link attachment."
        },
        "youTubeVideo": {
          "$ref": "YouTubeVideo",
          "description": "Youtube video attachment."
        }
      },
      "type": "object"
    },
    "CloudPubsubTopic": {
      "description": "A reference to a Cloud Pub/Sub topic.\n\nTo register for notifications, the owner of the topic must grant\n`classroom-notifications@system.gserviceaccount.com` the\n `projects.topics.publish` permission.",
      "id": "CloudPubsubTopic",
      "properties": {
        "topicName": {
          "description": "The `name` field of a Cloud Pub/Sub\n[Topic](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#Topic).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Course": {
      "description": "A Course in Classroom.",
      "id": "Course",
      "properties": {
        "alternateLink": {
          "description": "Absolute link to this course in the Classroom web UI.\n\nRead-only.",
          "type": "string"
        },
        "calendarId": {
          "description": "The Calendar ID for a calendar that all course members can see, to which\nClassroom adds events for course work and announcements in the course.\n\nRead-only.",
          "type": "string"
        },
        "courseGroupEmail": {
          "description": "The email address of a Google group containing all members of the course.\nThis group does not accept email and can only be used for permissions.\n\nRead-only.",
          "type": "string"
        },
        "courseMaterialSets": {
          "description": "Sets of materials that appear on the \"about\" page of this course.\n\nRead-only.",
          "items": {
            "$ref": "CourseMaterialSet"
          },
          "type": "array"
        },
        "courseState": {
          "description": "State of the course.\nIf unspecified, the default state is `PROVISIONED`.",
          "enum": [
            "COURSE_STATE_UNSPECIFIED",
            "ACTIVE",
            "ARCHIVED",
            "PROVISIONED",
            "DECLINED",
            "SUSPENDED"
          ],
          "enumDescriptions": [
            "No course state. No returned Course message will use this value.",
            "The course is active.",
            "The course has been archived. You cannot modify it except to change it\nto a different state.",
            "The course has been created, but not yet activated. It is accessible by\nthe primary teacher and domain administrators, who may modify it or\nchange it to the `ACTIVE` or `DECLINED` states.\nA course may only be changed to `PROVISIONED` if it is in the `DECLINED`\nstate.",
            "The course has been created, but declined. It is accessible by the\ncourse owner and domain administrators, though it will not be\ndisplayed in the web UI. You cannot modify the course except to change it\nto the `PROVISIONED` state.\nA course may only be changed to `DECLINED` if it is in the `PROVISIONED`\nstate.",
            "The course has been suspended. You cannot modify the course, and only the\nuser identified by the `owner_id` can view the course.\nA course may be placed in this state if it potentially violates the\nTerms of Service."
          ],
          "type": "string"
        },
        "creationTime": {
          "description": "Creation time of the course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        },
        "description": {
          "description": "Optional description.\nFor example, \"We'll be learning about the structure of living\ncreatures from a combination of textbooks, guest lectures, and lab work.\nExpect to be excited!\"\nIf set, this field must be a valid UTF-8 string and no longer than 30,000\ncharacters.",
          "type": "string"
        },
        "descriptionHeading": {
          "description": "Optional heading for the description.\nFor example, \"Welcome to 10th Grade Biology.\"\nIf set, this field must be a valid UTF-8 string and no longer than 3600\ncharacters.",
          "type": "string"
        },
        "enrollmentCode": {
          "description": "Enrollment code to use when joining this course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only.",
          "type": "string"
        },
        "guardiansEnabled": {
          "description": "Whether or not guardian notifications are enabled for this course.\n\nRead-only.",
          "type": "boolean"
        },
        "id": {
          "description": "Identifier for this course assigned by Classroom.\n\nWhen\ncreating a course,\nyou may optionally set this identifier to an\nalias string in the\nrequest to create a corresponding alias. The `id` is still assigned by\nClassroom and cannot be updated after the course is created.\n\nSpecifying this field in a course update mask results in an error.",
          "type": "string"
        },
        "name": {
          "description": "Name of the course.\nFor example, \"10th Grade Biology\".\nThe name is required. It must be between 1 and 750 characters and a valid\nUTF-8 string.",
          "type": "string"
        },
        "ownerId": {
          "description": "The identifier of the owner of a course.\n\nWhen specified as a parameter of a\ncreate course request, this\nfield is required.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n\nThis must be set in a create request. Admins can also specify this field\nin a patch course request to\ntransfer ownership. In other contexts, it is read-only.",
          "type": "string"
        },
        "room": {
          "description": "Optional room location.\nFor example, \"301\".\nIf set, this field must be a valid UTF-8 string and no longer than 650\ncharacters.",
          "type": "string"
        },
        "section": {
          "description": "Section of the course.\nFor example, \"Period 2\".\nIf set, this field must be a valid UTF-8 string and no longer than 2800\ncharacters.",
          "type": "string"
        },
        "teacherFolder": {
          "$ref": "DriveFolder",
          "description": "Information about a Drive Folder that is shared with all teachers of the\ncourse.\n\nThis field will only be set for teachers of the course and domain\nadministrators.\n\nRead-only."
        },
        "teacherGroupEmail": {
          "description": "The email address of a Google group containing all teachers of the course.\nThis group does not accept email and can only be used for permissions.\n\nRead-only.",
          "type": "string"
        },
        "updateTime": {
          "description": "Time of the most recent update to this course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CourseAlias": {
      "description": "Alternative identifier for a course.\n\nAn alias uniquely identifies a course. It must be unique within one of the\nfollowing scopes:\n\n* domain: A domain-scoped alias is visible to all users within the alias\ncreator's domain and can be created only by a domain admin. A domain-scoped\nalias is often used when a course has an identifier external to Classroom.\n\n* project: A project-scoped alias is visible to any request from an\napplication using the Developer Console project ID that created the alias\nand can be created by any project. A project-scoped alias is often used when\nan application has alternative identifiers. A random value can also be used\nto avoid duplicate courses in the event of transmission failures, as retrying\na request will return `ALREADY_EXISTS` if a previous one has succeeded.",
      "id": "CourseAlias",
      "properties": {
        "alias": {
          "description": "Alias string. The format of the string indicates the desired alias scoping.\n\n* `d:\u003cname\u003e` indicates a domain-scoped alias.\n  Example: `d:math_101`\n* `p:\u003cname\u003e` indicates a project-scoped alias.\n  Example: `p:abc123`\n\nThis field has a maximum length of 256 characters.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CourseMaterial": {
      "description": "A material attached to a course as part of a material set.",
      "id": "CourseMaterial",
      "properties": {
        "driveFile": {
          "$ref": "DriveFile",
          "description": "Google Drive file attachment."
        },
        "form": {
          "$ref": "Form",
          "description": "Google Forms attachment."
        },
        "link": {
          "$ref": "Link",
          "description": "Link atatchment."
        },
        "youTubeVideo": {
          "$ref": "YouTubeVideo",
          "description": "Youtube video attachment."
        }
      },
      "type": "object"
    },
    "CourseMaterialSet": {
      "description": "A set of materials that appears on the \"About\" page of the course.\nThese materials might include a syllabus, schedule, or other background\ninformation relating to the course as a whole.",
      "id": "CourseMaterialSet",
      "properties": {
        "materials": {
          "description": "Materials attached to this set.",
          "items": {
            "$ref": "CourseMaterial"
          },
          "type": "array"
        },
        "title": {
          "description": "Title for this set.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CourseRosterChangesInfo": {
      "description": "Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.",
      "id": "CourseRosterChangesInfo",
      "properties": {
        "courseId": {
          "description": "The `course_id` of the course to subscribe to roster changes for.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CourseWork": {
      "description": "Course work created by a teacher for students of the course.",
      "id": "CourseWork",
      "properties": {
        "alternateLink": {
          "description": "Absolute link to this course work in the Classroom web UI.\nThis is only populated if `state` is `PUBLISHED`.\n\nRead-only.",
          "type": "string"
        },
        "assigneeMode": {
          "description": "Assignee mode of the coursework.\nIf unspecified, the default value is `ALL_STUDENTS`.",
          "enum": [
            "ASSIGNEE_MODE_UNSPECIFIED",
            "ALL_STUDENTS",
            "INDIVIDUAL_STUDENTS"
          ],
          "enumDescriptions": [
            "No mode specified. This is never returned.",
            "All students can see the item.\nThis is the default state.",
            "A subset of the students can see the item."
          ],
          "type": "string"
        },
        "assignment": {
          "$ref": "Assignment",
          "description": "Assignment details.\nThis is populated only when `work_type` is `ASSIGNMENT`.\n\nRead-only."
        },
        "associatedWithDeveloper": {
          "description": "Whether this course work item is associated with the Developer Console\nproject making the request.\n\nSee CreateCourseWork for more\ndetails.\n\nRead-only.",
          "type": "boolean"
        },
        "courseId": {
          "description": "Identifier of the course.\n\nRead-only.",
          "type": "string"
        },
        "creationTime": {
          "description": "Timestamp when this course work was created.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        },
        "creatorUserId": {
          "description": "Identifier for the user that created the coursework.\n\nRead-only.",
          "type": "string"
        },
        "description": {
          "description": "Optional description of this course work.\nIf set, the description must be a valid UTF-8 string containing no more\nthan 30,000 characters.",
          "type": "string"
        },
        "dueDate": {
          "$ref": "Date",
          "description": "Optional date, in UTC, that submissions for this course work are due.\nThis must be specified if `due_time` is specified."
        },
        "dueTime": {
          "$ref": "TimeOfDay",
          "description": "Optional time of day, in UTC, that submissions for this course work\nare due.\nThis must be specified if `due_date` is specified."
        },
        "id": {
          "description": "Classroom-assigned identifier of this course work, unique per course.\n\nRead-only.",
          "type": "string"
        },
        "individualStudentsOptions": {
          "$ref": "IndividualStudentsOptions",
          "description": "Identifiers of students with access to the coursework.\nThis field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.\nIf the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students\nspecified in this field are assigned the coursework."
        },
        "materials": {
          "description": "Additional materials.\n\nCourseWork must have no more than 20 material items.",
          "items": {
            "$ref": "Material"
          },
          "type": "array"
        },
        "maxPoints": {
          "description": "Maximum grade for this course work.\nIf zero or unspecified, this assignment is considered ungraded.\nThis must be a non-negative integer value.",
          "format": "double",
          "type": "number"
        },
        "multipleChoiceQuestion": {
          "$ref": "MultipleChoiceQuestion",
          "description": "Multiple choice question details.\nFor read operations, this field is populated only when `work_type` is\n`MULTIPLE_CHOICE_QUESTION`.\nFor write operations, this field must be specified when creating course\nwork with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be\nset otherwise."
        },
        "scheduledTime": {
          "description": "Optional timestamp when this course work is scheduled to be published.",
          "format": "google-datetime",
          "type": "string"
        },
        "state": {
          "description": "Status of this course work.\nIf unspecified, the default state is `DRAFT`.",
          "enum": [
            "COURSE_WORK_STATE_UNSPECIFIED",
            "PUBLISHED",
            "DRAFT",
            "DELETED"
          ],
          "enumDescriptions": [
            "No state specified. This is never returned.",
            "Status for work that has been published.\nThis is the default state.",
            "Status for work that is not yet published.\nWork in this state is visible only to course teachers and domain\nadministrators.",
            "Status for work that was published but is now deleted.\nWork in this state is visible only to course teachers and domain\nadministrators.\nWork in this state is deleted after some time."
          ],
          "type": "string"
        },
        "submissionModificationMode": {
          "description": "Setting to determine when students are allowed to modify submissions.\nIf unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.",
          "enum": [
            "SUBMISSION_MODIFICATION_MODE_UNSPECIFIED",
            "MODIFIABLE_UNTIL_TURNED_IN",
            "MODIFIABLE"
          ],
          "enumDescriptions": [
            "No modification mode specified. This is never returned.",
            "Submissions can be modified before being turned in.",
            "Submissions can be modified at any time."
          ],
          "type": "string"
        },
        "title": {
          "description": "Title of this course work.\nThe title must be a valid UTF-8 string containing between 1 and 3000\ncharacters.",
          "type": "string"
        },
        "topicId": {
          "description": "Identifier for the topic that this coursework is associated with.\nMust match an existing topic in the course.",
          "type": "string"
        },
        "updateTime": {
          "description": "Timestamp of the most recent change to this course work.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        },
        "workType": {
          "description": "Type of this course work.\n\nThe type is set when the course work is created and cannot be changed.",
          "enum": [
            "COURSE_WORK_TYPE_UNSPECIFIED",
            "ASSIGNMENT",
            "SHORT_ANSWER_QUESTION",
            "MULTIPLE_CHOICE_QUESTION"
          ],
          "enumDescriptions": [
            "No work type specified. This is never returned.",
            "An assignment.",
            "A short answer question.",
            "A multiple-choice question."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "CourseWorkChangesInfo": {
      "description": "Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`.",
      "id": "CourseWorkChangesInfo",
      "properties": {
        "courseId": {
          "description": "The `course_id` of the course to subscribe to work changes for.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Date": {
      "description": "Represents a whole or partial calendar date, e.g. a birthday. The time of day\nand time zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. This can represent:\n\n* A full date, with non-zero year, month and day values\n* A month and day value, with a zero year, e.g. an anniversary\n* A year on its own, with zero month and day values\n* A year and month value, with a zero day, e.g. a credit card expiration date\n\nRelated types are google.type.TimeOfDay and `google.protobuf.Timestamp`.",
      "id": "Date",
      "properties": {
        "day": {
          "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year by itself or a year and month where the day is not\nsignificant.",
          "format": "int32",
          "type": "integer"
        },
        "month": {
          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a year without a\nmonth and day.",
          "format": "int32",
          "type": "integer"
        },
        "year": {
          "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DriveFile": {
      "description": "Representation of a Google Drive file.",
      "id": "DriveFile",
      "properties": {
        "alternateLink": {
          "description": "URL that can be used to access the Drive item.\n\nRead-only.",
          "type": "string"
        },
        "id": {
          "description": "Drive API resource ID.",
          "type": "string"
        },
        "thumbnailUrl": {
          "description": "URL of a thumbnail image of the Drive item.\n\nRead-only.",
          "type": "string"
        },
        "title": {
          "description": "Title of the Drive item.\n\nRead-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DriveFolder": {
      "description": "Representation of a Google Drive folder.",
      "id": "DriveFolder",
      "properties": {
        "alternateLink": {
          "description": "URL that can be used to access the Drive folder.\n\nRead-only.",
          "type": "string"
        },
        "id": {
          "description": "Drive API resource ID.",
          "type": "string"
        },
        "title": {
          "description": "Title of the Drive folder.\n\nRead-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Empty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
      "id": "Empty",
      "properties": {},
      "type": "object"
    },
    "Feed": {
      "description": "A class of notifications that an application can register to receive.\nFor example: \"all roster changes for a domain\".",
      "id": "Feed",
      "properties": {
        "courseRosterChangesInfo": {
          "$ref": "CourseRosterChangesInfo",
          "description": "Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.\nThis field must be specified if `feed_type` is `COURSE_ROSTER_CHANGES`."
        },
        "courseWorkChangesInfo": {
          "$ref": "CourseWorkChangesInfo",
          "description": "Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`.\nThis field must be specified if `feed_type` is `COURSE_WORK_CHANGES`."
        },
        "feedType": {
          "description": "The type of feed.",
          "enum": [
            "FEED_TYPE_UNSPECIFIED",
            "DOMAIN_ROSTER_CHANGES",
            "COURSE_ROSTER_CHANGES",
            "COURSE_WORK_CHANGES"
          ],
          "enumDescriptions": [
            "Should never be returned or provided.",
            "All roster changes for a particular domain.\n\nNotifications will be generated whenever a user joins or leaves a course.\n\nNo notifications will be generated when an invitation is created or\ndeleted, but notifications will be generated when a user joins a course\nby accepting an invitation.",
            "All roster changes for a particular course.\n\nNotifications will be generated whenever a user joins or leaves a course.\n\nNo notifications will be generated when an invitation is created or\ndeleted, but notifications will be generated when a user joins a course\nby accepting an invitation.",
            "All course work activity for a particular course.\n\nNotifications will be generated when a CourseWork or\nStudentSubmission object is created or modified. No notification will be\ngenerated when a StudentSubmission object is created in connection with\nthe creation or modification of its parent CourseWork object (but a\nnotification will be generated for that CourseWork object's creation or\nmodification)."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "Form": {
      "description": "Google Forms item.",
      "id": "Form",
      "properties": {
        "formUrl": {
          "description": "URL of the form.",
          "type": "string"
        },
        "responseUrl": {
          "description": "URL of the form responses document.\nOnly set if respsonses have been recorded and only when the\nrequesting user is an editor of the form.\n\nRead-only.",
          "type": "string"
        },
        "thumbnailUrl": {
          "description": "URL of a thumbnail image of the Form.\n\nRead-only.",
          "type": "string"
        },
        "title": {
          "description": "Title of the Form.\n\nRead-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GlobalPermission": {
      "description": "Global user permission description.",
      "id": "GlobalPermission",
      "properties": {
        "permission": {
          "description": "Permission value.",
          "enum": [
            "PERMISSION_UNSPECIFIED",
            "CREATE_COURSE"
          ],
          "enumDescriptions": [
            "No permission is specified. This is not returned and is not a\nvalid value.",
            "User is permitted to create a course."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "GradeHistory": {
      "description": "The history of each grade on this submission.",
      "id": "GradeHistory",
      "properties": {
        "actorUserId": {
          "description": "The teacher who made the grade change.",
          "type": "string"
        },
        "gradeChangeType": {
          "description": "The type of grade change at this time in the submission grade history.",
          "enum": [
            "UNKNOWN_GRADE_CHANGE_TYPE",
            "DRAFT_GRADE_POINTS_EARNED_CHANGE",
            "ASSIGNED_GRADE_POINTS_EARNED_CHANGE",
            "MAX_POINTS_CHANGE"
          ],
          "enumDescriptions": [
            "No grade change type specified. This should never be returned.",
            "A change in the numerator of the draft grade.",
            "A change in the numerator of the assigned grade.",
            "A change in the denominator of the grade."
          ],
          "type": "string"
        },
        "gradeTimestamp": {
          "description": "When the grade of the submission was changed.",
          "format": "google-datetime",
          "type": "string"
        },
        "maxPoints": {
          "description": "The denominator of the grade at this time in the submission grade\nhistory.",
          "format": "double",
          "type": "number"
        },
        "pointsEarned": {
          "description": "The numerator of the grade at this time in the submission grade history.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "Guardian": {
      "description": "Association between a student and a guardian of that student. The guardian\nmay receive information about the student's course work.",
      "id": "Guardian",
      "properties": {
        "guardianId": {
          "description": "Identifier for the guardian.",
          "type": "string"
        },
        "guardianProfile": {
          "$ref": "UserProfile",
          "description": "User profile for the guardian."
        },
        "invitedEmailAddress": {
          "description": "The email address to which the initial guardian invitation was sent.\nThis field is only visible to domain administrators.",
          "type": "string"
        },
        "studentId": {
          "description": "Identifier for the student to whom the guardian relationship applies.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GuardianInvitation": {
      "description": "An invitation to become the guardian of a specified user, sent to a specified\nemail address.",
      "id": "GuardianInvitation",
      "properties": {
        "creationTime": {
          "description": "The time that this invitation was created.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        },
        "invitationId": {
          "description": "Unique identifier for this invitation.\n\nRead-only.",
          "type": "string"
        },
        "invitedEmailAddress": {
          "description": "Email address that the invitation was sent to.\nThis field is only visible to domain administrators.",
          "type": "string"
        },
        "state": {
          "description": "The state that this invitation is in.",
          "enum": [
            "GUARDIAN_INVITATION_STATE_UNSPECIFIED",
            "PENDING",
            "COMPLETE"
          ],
          "enumDescriptions": [
            "Should never be returned.",
            "The invitation is active and awaiting a response.",
            "The invitation is no longer active. It may have been accepted, declined,\nwithdrawn or it may have expired."
          ],
          "type": "string"
        },
        "studentId": {
          "description": "ID of the student (in standard format)",
          "type": "string"
        }
      },
      "type": "object"
    },
    "IndividualStudentsOptions": {
      "description": "Assignee details about a coursework/announcement.\nThis field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.",
      "id": "IndividualStudentsOptions",
      "properties": {
        "studentIds": {
          "description": "Identifiers for the students that have access to the\ncoursework/announcement.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Invitation": {
      "description": "An invitation to join a course.",
      "id": "Invitation",
      "properties": {
        "courseId": {
          "description": "Identifier of the course to invite the user to.",
          "type": "string"
        },
        "id": {
          "description": "Identifier assigned by Classroom.\n\nRead-only.",
          "type": "string"
        },
        "role": {
          "description": "Role to invite the user to have.\nMust not be `COURSE_ROLE_UNSPECIFIED`.",
          "enum": [
            "COURSE_ROLE_UNSPECIFIED",
            "STUDENT",
            "TEACHER",
            "OWNER"
          ],
          "enumDescriptions": [
            "No course role.",
            "Student in the course.",
            "Teacher of the course.",
            "Owner of the course."
          ],
          "type": "string"
        },
        "userId": {
          "description": "Identifier of the invited user.\n\nWhen specified as a parameter of a request, this identifier can be set to\none of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Link": {
      "description": "URL item.",
      "id": "Link",
      "properties": {
        "thumbnailUrl": {
          "description": "URL of a thumbnail image of the target URL.\n\nRead-only.",
          "type": "string"
        },
        "title": {
          "description": "Title of the target of the URL.\n\nRead-only.",
          "type": "string"
        },
        "url": {
          "description": "URL to link to.\nThis must be a valid UTF-8 string containing between 1 and 2024 characters.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListAnnouncementsResponse": {
      "description": "Response when listing course work.",
      "id": "ListAnnouncementsResponse",
      "properties": {
        "announcements": {
          "description": "Announcement items that match the request.",
          "items": {
            "$ref": "Announcement"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListCourseAliasesResponse": {
      "description": "Response when listing course aliases.",
      "id": "ListCourseAliasesResponse",
      "properties": {
        "aliases": {
          "description": "The course aliases.",
          "items": {
            "$ref": "CourseAlias"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListCourseWorkResponse": {
      "description": "Response when listing course work.",
      "id": "ListCourseWorkResponse",
      "properties": {
        "courseWork": {
          "description": "Course work items that match the request.",
          "items": {
            "$ref": "CourseWork"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListCoursesResponse": {
      "description": "Response when listing courses.",
      "id": "ListCoursesResponse",
      "properties": {
        "courses": {
          "description": "Courses that match the list request.",
          "items": {
            "$ref": "Course"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListGuardianInvitationsResponse": {
      "description": "Response when listing guardian invitations.",
      "id": "ListGuardianInvitationsResponse",
      "properties": {
        "guardianInvitations": {
          "description": "Guardian invitations that matched the list request.",
          "items": {
            "$ref": "GuardianInvitation"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListGuardiansResponse": {
      "description": "Response when listing guardians.",
      "id": "ListGuardiansResponse",
      "properties": {
        "guardians": {
          "description": "Guardians on this page of results that met the criteria specified in\nthe request.",
          "items": {
            "$ref": "Guardian"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListInvitationsResponse": {
      "description": "Response when listing invitations.",
      "id": "ListInvitationsResponse",
      "properties": {
        "invitations": {
          "description": "Invitations that match the list request.",
          "items": {
            "$ref": "Invitation"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListStudentSubmissionsResponse": {
      "description": "Response when listing student submissions.",
      "id": "ListStudentSubmissionsResponse",
      "properties": {
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        },
        "studentSubmissions": {
          "description": "Student work that matches the request.",
          "items": {
            "$ref": "StudentSubmission"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListStudentsResponse": {
      "description": "Response when listing students.",
      "id": "ListStudentsResponse",
      "properties": {
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        },
        "students": {
          "description": "Students who match the list request.",
          "items": {
            "$ref": "Student"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListTeachersResponse": {
      "description": "Response when listing teachers.",
      "id": "ListTeachersResponse",
      "properties": {
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        },
        "teachers": {
          "description": "Teachers who match the list request.",
          "items": {
            "$ref": "Teacher"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListTopicResponse": {
      "description": "Response when listing topics.",
      "id": "ListTopicResponse",
      "properties": {
        "nextPageToken": {
          "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.",
          "type": "string"
        },
        "topic": {
          "description": "Topic items that match the request.",
          "items": {
            "$ref": "Topic"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Material": {
      "description": "Material attached to course work.\n\nWhen creating attachments, setting the `form` field is not supported.",
      "id": "Material",
      "properties": {
        "driveFile": {
          "$ref": "SharedDriveFile",
          "description": "Google Drive file material."
        },
        "form": {
          "$ref": "Form",
          "description": "Google Forms material."
        },
        "link": {
          "$ref": "Link",
          "description": "Link material. On creation, this is upgraded to a more appropriate type\nif possible, and this is reflected in the response."
        },
        "youtubeVideo": {
          "$ref": "YouTubeVideo",
          "description": "YouTube video material."
        }
      },
      "type": "object"
    },
    "ModifyAnnouncementAssigneesRequest": {
      "description": "Request to modify assignee mode and options of an announcement.",
      "id": "ModifyAnnouncementAssigneesRequest",
      "properties": {
        "assigneeMode": {
          "description": "Mode of the announcement describing whether it is accessible by all\nstudents or specified individual students.",
          "enum": [
            "ASSIGNEE_MODE_UNSPECIFIED",
            "ALL_STUDENTS",
            "INDIVIDUAL_STUDENTS"
          ],
          "enumDescriptions": [
            "No mode specified. This is never returned.",
            "All students can see the item.\nThis is the default state.",
            "A subset of the students can see the item."
          ],
          "type": "string"
        },
        "modifyIndividualStudentsOptions": {
          "$ref": "ModifyIndividualStudentsOptions",
          "description": "Set which students can view or cannot view the announcement.\nMust be specified only when `assigneeMode` is `INDIVIDUAL_STUDENTS`."
        }
      },
      "type": "object"
    },
    "ModifyAttachmentsRequest": {
      "description": "Request to modify the attachments of a student submission.",
      "id": "ModifyAttachmentsRequest",
      "properties": {
        "addAttachments": {
          "description": "Attachments to add.\nA student submission may not have more than 20 attachments.\n\nForm attachments are not supported.",
          "items": {
            "$ref": "Attachment"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ModifyCourseWorkAssigneesRequest": {
      "description": "Request to modify assignee mode and options of a coursework.",
      "id": "ModifyCourseWorkAssigneesRequest",
      "properties": {
        "assigneeMode": {
          "description": "Mode of the coursework describing whether it will be assigned to all\nstudents or specified individual students.",
          "enum": [
            "ASSIGNEE_MODE_UNSPECIFIED",
            "ALL_STUDENTS",
            "INDIVIDUAL_STUDENTS"
          ],
          "enumDescriptions": [
            "No mode specified. This is never returned.",
            "All students can see the item.\nThis is the default state.",
            "A subset of the students can see the item."
          ],
          "type": "string"
        },
        "modifyIndividualStudentsOptions": {
          "$ref": "ModifyIndividualStudentsOptions",
          "description": "Set which students are assigned or not assigned to the coursework.\nMust be specified only when `assigneeMode` is `INDIVIDUAL_STUDENTS`."
        }
      },
      "type": "object"
    },
    "ModifyIndividualStudentsOptions": {
      "description": "Contains fields to add or remove students from a course work or announcement\nwhere the `assigneeMode` is set to `INDIVIDUAL_STUDENTS`.",
      "id": "ModifyIndividualStudentsOptions",
      "properties": {
        "addStudentIds": {
          "description": "IDs of students to be added as having access to this\ncoursework/announcement.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "removeStudentIds": {
          "description": "IDs of students to be removed from having access to this\ncoursework/announcement.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MultipleChoiceQuestion": {
      "description": "Additional details for multiple-choice questions.",
      "id": "MultipleChoiceQuestion",
      "properties": {
        "choices": {
          "description": "Possible choices.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MultipleChoiceSubmission": {
      "description": "Student work for a multiple-choice question.",
      "id": "MultipleChoiceSubmission",
      "properties": {
        "answer": {
          "description": "Student's select choice.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Name": {
      "description": "Details of the user's name.",
      "id": "Name",
      "properties": {
        "familyName": {
          "description": "The user's last name.\n\nRead-only.",
          "type": "string"
        },
        "fullName": {
          "description": "The user's full name formed by concatenating the first and last name\nvalues.\n\nRead-only.",
          "type": "string"
        },
        "givenName": {
          "description": "The user's first name.\n\nRead-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ReclaimStudentSubmissionRequest": {
      "description": "Request to reclaim a student submission.",
      "id": "ReclaimStudentSubmissionRequest",
      "properties": {},
      "type": "object"
    },
    "Registration": {
      "description": "An instruction to Classroom to send notifications from the `feed` to the\nprovided destination.",
      "id": "Registration",
      "properties": {
        "cloudPubsubTopic": {
          "$ref": "CloudPubsubTopic",
          "description": "The Cloud Pub/Sub topic that notifications are to be sent to."
        },
        "expiryTime": {
          "description": "The time until which the `Registration` is effective.\n\nThis is a read-only field assigned by the server.",
          "format": "google-datetime",
          "type": "string"
        },
        "feed": {
          "$ref": "Feed",
          "description": "Specification for the class of notifications that Classroom should deliver\nto the destination."
        },
        "registrationId": {
          "description": "A server-generated unique identifier for this `Registration`.\n\nRead-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ReturnStudentSubmissionRequest": {
      "description": "Request to return a student submission.",
      "id": "ReturnStudentSubmissionRequest",
      "properties": {},
      "type": "object"
    },
    "SharedDriveFile": {
      "description": "Drive file that is used as material for course work.",
      "id": "SharedDriveFile",
      "properties": {
        "driveFile": {
          "$ref": "DriveFile",
          "description": "Drive file details."
        },
        "shareMode": {
          "description": "Mechanism by which students access the Drive item.",
          "enum": [
            "UNKNOWN_SHARE_MODE",
            "VIEW",
            "EDIT",
            "STUDENT_COPY"
          ],
          "enumDescriptions": [
            "No sharing mode specified. This should never be returned.",
            "Students can view the shared file.",
            "Students can edit the shared file.",
            "Students have a personal copy of the shared file."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ShortAnswerSubmission": {
      "description": "Student work for a short answer question.",
      "id": "ShortAnswerSubmission",
      "properties": {
        "answer": {
          "description": "Student response to a short-answer question.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StateHistory": {
      "description": "The history of each state this submission has been in.",
      "id": "StateHistory",
      "properties": {
        "actorUserId": {
          "description": "The teacher or student who made the change.",
          "type": "string"
        },
        "state": {
          "description": "The workflow pipeline stage.",
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATED",
            "TURNED_IN",
            "RETURNED",
            "RECLAIMED_BY_STUDENT",
            "STUDENT_EDITED_AFTER_TURN_IN"
          ],
          "enumDescriptions": [
            "No state specified. This should never be returned.",
            "The Submission has been created.",
            "The student has turned in an assigned document, which may or may not be\na template.",
            "The teacher has returned the assigned document to the student.",
            "The student turned in the assigned document, and then chose to\n\"unsubmit\" the assignment, giving the student control again as the\nowner.",
            "The student edited their submission after turning it in. Currently,\nonly used by Questions, when the student edits their answer."
          ],
          "type": "string"
        },
        "stateTimestamp": {
          "description": "When the submission entered this state.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Student": {
      "description": "Student in a course.",
      "id": "Student",
      "properties": {
        "courseId": {
          "description": "Identifier of the course.\n\nRead-only.",
          "type": "string"
        },
        "profile": {
          "$ref": "UserProfile",
          "description": "Global user information for the student.\n\nRead-only."
        },
        "studentWorkFolder": {
          "$ref": "DriveFolder",
          "description": "Information about a Drive Folder for this student's work in this course.\nOnly visible to the student and domain administrators.\n\nRead-only."
        },
        "userId": {
          "description": "Identifier of the user.\n\nWhen specified as a parameter of a request, this identifier can be one of\nthe following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StudentSubmission": {
      "description": "Student submission for course work.\n\nStudentSubmission items are generated when a CourseWork item is created.\n\nStudentSubmissions that have never been accessed (i.e. with `state` = NEW)\nmay not have a creation time or update time.",
      "id": "StudentSubmission",
      "properties": {
        "alternateLink": {
          "description": "Absolute link to the submission in the Classroom web UI.\n\nRead-only.",
          "type": "string"
        },
        "assignedGrade": {
          "description": "Optional grade. If unset, no grade was set.\nThis value must be non-negative. Decimal (that is, non-integer) values are\nallowed, but are rounded to two decimal places.\n\nThis may be modified only by course teachers.",
          "format": "double",
          "type": "number"
        },
        "assignmentSubmission": {
          "$ref": "AssignmentSubmission",
          "description": "Submission content when course_work_type is ASSIGNMENT.\n\nStudents can modify this content using\nModifyAttachments."
        },
        "associatedWithDeveloper": {
          "description": "Whether this student submission is associated with the Developer Console\nproject making the request.\n\nSee CreateCourseWork for more\ndetails.\n\nRead-only.",
          "type": "boolean"
        },
        "courseId": {
          "description": "Identifier of the course.\n\nRead-only.",
          "type": "string"
        },
        "courseWorkId": {
          "description": "Identifier for the course work this corresponds to.\n\nRead-only.",
          "type": "string"
        },
        "courseWorkType": {
          "description": "Type of course work this submission is for.\n\nRead-only.",
          "enum": [
            "COURSE_WORK_TYPE_UNSPECIFIED",
            "ASSIGNMENT",
            "SHORT_ANSWER_QUESTION",
            "MULTIPLE_CHOICE_QUESTION"
          ],
          "enumDescriptions": [
            "No work type specified. This is never returned.",
            "An assignment.",
            "A short answer question.",
            "A multiple-choice question."
          ],
          "type": "string"
        },
        "creationTime": {
          "description": "Creation time of this submission.\nThis may be unset if the student has not accessed this item.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        },
        "draftGrade": {
          "description": "Optional pending grade. If unset, no grade was set.\nThis value must be non-negative. Decimal (that is, non-integer) values are\nallowed, but are rounded to two decimal places.\n\nThis is only visible to and modifiable by course teachers.",
          "format": "double",
          "type": "number"
        },
        "id": {
          "description": "Classroom-assigned Identifier for the student submission.\nThis is unique among submissions for the relevant course work.\n\nRead-only.",
          "type": "string"
        },
        "late": {
          "description": "Whether this submission is late.\n\nRead-only.",
          "type": "boolean"
        },
        "multipleChoiceSubmission": {
          "$ref": "MultipleChoiceSubmission",
          "description": "Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION."
        },
        "shortAnswerSubmission": {
          "$ref": "ShortAnswerSubmission",
          "description": "Submission content when course_work_type is SHORT_ANSWER_QUESTION."
        },
        "state": {
          "description": "State of this submission.\n\nRead-only.",
          "enum": [
            "SUBMISSION_STATE_UNSPECIFIED",
            "NEW",
            "CREATED",
            "TURNED_IN",
            "RETURNED",
            "RECLAIMED_BY_STUDENT"
          ],
          "enumDescriptions": [
            "No state specified. This should never be returned.",
            "The student has never accessed this submission. Attachments are not\nreturned and timestamps is not set.",
            "Has been created.",
            "Has been turned in to the teacher.",
            "Has been returned to the student.",
            "Student chose to \"unsubmit\" the assignment."
          ],
          "type": "string"
        },
        "submissionHistory": {
          "description": "The history of the submission (includes state and grade histories).\n\nRead-only.",
          "items": {
            "$ref": "SubmissionHistory"
          },
          "type": "array"
        },
        "updateTime": {
          "description": "Last update time of this submission.\nThis may be unset if the student has not accessed this item.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        },
        "userId": {
          "description": "Identifier for the student that owns this submission.\n\nRead-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SubmissionHistory": {
      "description": "The history of the submission. This currently includes state and grade\nhistories.",
      "id": "SubmissionHistory",
      "properties": {
        "gradeHistory": {
          "$ref": "GradeHistory",
          "description": "The grade history information of the submission, if present."
        },
        "stateHistory": {
          "$ref": "StateHistory",
          "description": "The state history information of the submission, if present."
        }
      },
      "type": "object"
    },
    "Teacher": {
      "description": "Teacher of a course.",
      "id": "Teacher",
      "properties": {
        "courseId": {
          "description": "Identifier of the course.\n\nRead-only.",
          "type": "string"
        },
        "profile": {
          "$ref": "UserProfile",
          "description": "Global user information for the teacher.\n\nRead-only."
        },
        "userId": {
          "description": "Identifier of the user.\n\nWhen specified as a parameter of a request, this identifier can be one of\nthe following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TimeOfDay": {
      "description": "Represents a time of day. The date and time zone are either not significant\nor are specified elsewhere. An API may choose to allow leap seconds. Related\ntypes are google.type.Date and `google.protobuf.Timestamp`.",
      "id": "TimeOfDay",
      "properties": {
        "hours": {
          "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose\nto allow the value \"24:00:00\" for scenarios like business closing time.",
          "format": "int32",
          "type": "integer"
        },
        "minutes": {
          "description": "Minutes of hour of day. Must be from 0 to 59.",
          "format": "int32",
          "type": "integer"
        },
        "nanos": {
          "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.",
          "format": "int32",
          "type": "integer"
        },
        "seconds": {
          "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Topic": {
      "description": "Topic created by a teacher for the course",
      "id": "Topic",
      "properties": {
        "courseId": {
          "description": "Identifier of the course.\n\nRead-only.",
          "type": "string"
        },
        "name": {
          "description": "The name of the topic, generated by the user.\nLeading and trailing whitespaces, if any, are trimmed. Also, multiple\nconsecutive whitespaces are collapsed into one inside the name. The\nresult must be a non-empty string. Topic names are case sensitive, and must\nbe no longer than 100 characters.",
          "type": "string"
        },
        "topicId": {
          "description": "Unique identifier for the topic.\n\nRead-only.",
          "type": "string"
        },
        "updateTime": {
          "description": "The time the topic was last updated by the system.\n\nRead-only.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TurnInStudentSubmissionRequest": {
      "description": "Request to turn in a student submission.",
      "id": "TurnInStudentSubmissionRequest",
      "properties": {},
      "type": "object"
    },
    "UserProfile": {
      "description": "Global information for a user.",
      "id": "UserProfile",
      "properties": {
        "emailAddress": {
          "description": "Email address of the user.\n\nRead-only.",
          "type": "string"
        },
        "id": {
          "description": "Identifier of the user.\n\nRead-only.",
          "type": "string"
        },
        "name": {
          "$ref": "Name",
          "description": "Name of the user.\n\nRead-only."
        },
        "permissions": {
          "description": "Global permissions of the user.\n\nRead-only.",
          "items": {
            "$ref": "GlobalPermission"
          },
          "type": "array"
        },
        "photoUrl": {
          "description": "URL of user's profile photo.\n\nRead-only.",
          "type": "string"
        },
        "verifiedTeacher": {
          "description": "Represents whether a G Suite for Education user's domain administrator has\nexplicitly verified them as being a teacher. If the user is not a member of\na G Suite for Education domain, than this field is always false.\n\nRead-only",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "YouTubeVideo": {
      "description": "YouTube video item.",
      "id": "YouTubeVideo",
      "properties": {
        "alternateLink": {
          "description": "URL that can be used to view the YouTube video.\n\nRead-only.",
          "type": "string"
        },
        "id": {
          "description": "YouTube API resource ID.",
          "type": "string"
        },
        "thumbnailUrl": {
          "description": "URL of a thumbnail image of the YouTube video.\n\nRead-only.",
          "type": "string"
        },
        "title": {
          "description": "Title of the YouTube video.\n\nRead-only.",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Google Classroom API",
  "version": "v1"
}