Google Classroom API . courses . courseWork

Instance Methods

studentSubmissions()

Returns the studentSubmissions Resource.

create(courseId, body, x__xgafv=None)

Creates course work.

delete(courseId, id, x__xgafv=None)

Deletes a course work.

get(courseId, id, x__xgafv=None)

Returns course work.

list(courseId, orderBy=None, pageSize=None, courseWorkStates=None, pageToken=None, x__xgafv=None)

Returns a list of course work that the requester is permitted to view.

list_next(previous_request, previous_response)

Retrieves the next page of results.

modifyAssignees(courseId, id, body, x__xgafv=None)

Modifies assignee mode and options of a coursework.

patch(courseId, id, body, updateMask=None, x__xgafv=None)

Updates one or more fields of a course work.

Method Details

create(courseId, body, x__xgafv=None)
Creates course work.

The resulting course work (and corresponding student submissions) are
associated with the Developer Console project of the
[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to
make the request. Classroom API requests to modify course work and student
submissions must be made with an OAuth client ID from the associated
Developer Console project.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting user is not permitted to access the
requested course, create course work in the requested course, share a
Drive attachment, or for access errors.
* `INVALID_ARGUMENT` if the request is malformed.
* `NOT_FOUND` if the requested course does not exist.
* `FAILED_PRECONDITION` for the following request error:
    * AttachmentNotVisible

Args:
  courseId: string, Identifier of the course.
This identifier can be either the Classroom-assigned identifier or an
alias. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Course work created by a teacher for students of the course.
  "updateTime": "A String", # Timestamp of the most recent change to this course work.
      # 
      # Read-only.
  "courseId": "A String", # Identifier of the course.
      # 
      # Read-only.
  "assigneeMode": "A String", # Assignee mode of the coursework.
      # If unspecified, the default value is `ALL_STUDENTS`.
  "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
      # 
      # Read-only.
  "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
      # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
  "creatorUserId": "A String", # Identifier for the user that created the coursework.
      # 
      # Read-only.
  "dueDate": { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # Optional date, in UTC, that submissions for this course work are due.
      # This must be specified if `due_time` is specified.
      # and time zone are either specified elsewhere or are not significant. The date
      # is relative to the Proleptic Gregorian Calendar. This can represent:
      #
      # * A full date, with non-zero year, month and day values
      # * A month and day value, with a zero year, e.g. an anniversary
      # * A year on its own, with zero month and day values
      # * A year and month value, with a zero day, e.g. a credit card expiration date
      #
      # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
    "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
        # month and day.
    "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
        # if specifying a year by itself or a year and month where the day is not
        # significant.
    "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
        # a year.
  },
  "state": "A String", # Status of this course work.
      # If unspecified, the default state is `DRAFT`.
  "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this course work
      # are due.
      # This must be specified if `due_date` is specified.
      # or are specified elsewhere. An API may choose to allow leap seconds. Related
      # types are google.type.Date and `google.protobuf.Timestamp`.
    "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
        # to allow the value "24:00:00" for scenarios like business closing time.
    "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
    "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
    "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
        # allow the value 60 if it allows leap-seconds.
  },
  "topicId": "A String", # Identifier for the topic that this coursework is associated with.
      # Must match an existing topic in the course.
  "description": "A String", # Optional description of this course work.
      # If set, the description must be a valid UTF-8 string containing no more
      # than 30,000 characters.
  "assignment": { # Additional details for assignments. # Assignment details.
      # This is populated only when `work_type` is `ASSIGNMENT`.
      # 
      # Read-only.
    "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed.
        # This is only populated for course teachers and administrators.
      "alternateLink": "A String", # URL that can be used to access the Drive folder.
          #
          # Read-only.
      "id": "A String", # Drive API resource ID.
      "title": "A String", # Title of the Drive folder.
          #
          # Read-only.
    },
  },
  "scheduledTime": "A String", # Optional timestamp when this course work is scheduled to be published.
  "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
      # project making the request.
      # 
      # See google.classroom.Work.CreateCourseWork for more
      # details.
      # 
      # Read-only.
  "maxPoints": 3.14, # Maximum grade for this course work.
      # If zero or unspecified, this assignment is considered ungraded.
      # This must be a non-negative integer value.
  "workType": "A String", # Type of this course work.
      # 
      # The type is set when the course work is created and cannot be changed.
  "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
      # This is only populated if `state` is `PUBLISHED`.
      # 
      # Read-only.
  "title": "A String", # Title of this course work.
      # The title must be a valid UTF-8 string containing between 1 and 3000
      # characters.
  "creationTime": "A String", # Timestamp when this course work was created.
      # 
      # Read-only.
  "materials": [ # Additional materials.
      # 
      # CourseWork must have no more than 20 material items.
    { # Material attached to course work.
        #
        # When creating attachments, setting the `form` field is not supported.
      "youtubeVideo": { # YouTube video item. # YouTube video material.
        "alternateLink": "A String", # URL that can be used to view the YouTube video.
            #
            # Read-only.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
            #
            # Read-only.
        "id": "A String", # YouTube API resource ID.
        "title": "A String", # Title of the YouTube video.
            #
            # Read-only.
      },
      "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
        "driveFile": { # Representation of a Google Drive file. # Drive file details.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
              #
              # Read-only.
          "alternateLink": "A String", # URL that can be used to access the Drive item.
              #
              # Read-only.
          "id": "A String", # Drive API resource ID.
          "title": "A String", # Title of the Drive item.
              #
              # Read-only.
        },
        "shareMode": "A String", # Mechanism by which students access the Drive item.
      },
      "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
          # if possible, and this will be reflected in the response.
        "url": "A String", # URL to link to.
            # This must be a valid UTF-8 string containing between 1 and 2024 characters.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
            #
            # Read-only.
        "title": "A String", # Title of the target of the URL.
            #
            # Read-only.
      },
      "form": { # Google Forms item. # Google Forms material.
        "formUrl": "A String", # URL of the form.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
            #
            # Read-only.
        "responseUrl": "A String", # URL of the form responses document.
            # Only set if respsonses have been recorded and only when the
            # requesting user is an editor of the form.
            #
            # Read-only.
        "title": "A String", # Title of the Form.
            #
            # Read-only.
      },
    },
  ],
  "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the coursework.
      # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
      # specified in this field will be assigned the coursework.
      # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
    "studentIds": [ # Identifiers for the students that have access to the
        # coursework/announcement.
      "A String",
    ],
  },
  "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
      # For read operations, this field is populated only when `work_type` is
      # `MULTIPLE_CHOICE_QUESTION`.
      # For write operations, this field must be specified when creating course
      # work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be
      # set otherwise.
    "choices": [ # Possible choices.
      "A String",
    ],
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Course work created by a teacher for students of the course.
    "updateTime": "A String", # Timestamp of the most recent change to this course work.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the coursework.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
        #
        # Read-only.
    "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
        # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
    "creatorUserId": "A String", # Identifier for the user that created the coursework.
        #
        # Read-only.
    "dueDate": { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # Optional date, in UTC, that submissions for this course work are due.
        # This must be specified if `due_time` is specified.
        # and time zone are either specified elsewhere or are not significant. The date
        # is relative to the Proleptic Gregorian Calendar. This can represent:
        #
        # * A full date, with non-zero year, month and day values
        # * A month and day value, with a zero year, e.g. an anniversary
        # * A year on its own, with zero month and day values
        # * A year and month value, with a zero day, e.g. a credit card expiration date
        #
        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
      "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
          # month and day.
      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
          # if specifying a year by itself or a year and month where the day is not
          # significant.
      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
          # a year.
    },
    "state": "A String", # Status of this course work.
        # If unspecified, the default state is `DRAFT`.
    "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this course work
        # are due.
        # This must be specified if `due_date` is specified.
        # or are specified elsewhere. An API may choose to allow leap seconds. Related
        # types are google.type.Date and `google.protobuf.Timestamp`.
      "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
          # to allow the value "24:00:00" for scenarios like business closing time.
      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
      "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
      "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
          # allow the value 60 if it allows leap-seconds.
    },
    "topicId": "A String", # Identifier for the topic that this coursework is associated with.
        # Must match an existing topic in the course.
    "description": "A String", # Optional description of this course work.
        # If set, the description must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "assignment": { # Additional details for assignments. # Assignment details.
        # This is populated only when `work_type` is `ASSIGNMENT`.
        #
        # Read-only.
      "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed.
          # This is only populated for course teachers and administrators.
        "alternateLink": "A String", # URL that can be used to access the Drive folder.
            #
            # Read-only.
        "id": "A String", # Drive API resource ID.
        "title": "A String", # Title of the Drive folder.
            #
            # Read-only.
      },
    },
    "scheduledTime": "A String", # Optional timestamp when this course work is scheduled to be published.
    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
        # project making the request.
        #
        # See google.classroom.Work.CreateCourseWork for more
        # details.
        #
        # Read-only.
    "maxPoints": 3.14, # Maximum grade for this course work.
        # If zero or unspecified, this assignment is considered ungraded.
        # This must be a non-negative integer value.
    "workType": "A String", # Type of this course work.
        #
        # The type is set when the course work is created and cannot be changed.
    "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "title": "A String", # Title of this course work.
        # The title must be a valid UTF-8 string containing between 1 and 3000
        # characters.
    "creationTime": "A String", # Timestamp when this course work was created.
        #
        # Read-only.
    "materials": [ # Additional materials.
        #
        # CourseWork must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the coursework.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be assigned the coursework.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
        # For read operations, this field is populated only when `work_type` is
        # `MULTIPLE_CHOICE_QUESTION`.
        # For write operations, this field must be specified when creating course
        # work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be
        # set otherwise.
      "choices": [ # Possible choices.
        "A String",
      ],
    },
  }
delete(courseId, id, x__xgafv=None)
Deletes a course work.

This request must be made by the Developer Console project of the
[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to
create the corresponding course work item.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting developer project did not create
the corresponding course work, if the requesting user is not permitted
to delete the requested course or for access errors.
* `FAILED_PRECONDITION` if the requested course work has already been
deleted.
* `NOT_FOUND` if no course exists with the requested ID.

Args:
  courseId: string, Identifier of the course.
This identifier can be either the Classroom-assigned identifier or an
alias. (required)
  id: string, Identifier of the course work to delete.
This identifier is a Classroom-assigned identifier. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated
      # empty messages in your APIs. A typical example is to use it as the request
      # or the response type of an API method. For instance:
      #
      #     service Foo {
      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
      #     }
      #
      # The JSON representation for `Empty` is empty JSON object `{}`.
  }
get(courseId, id, x__xgafv=None)
Returns course work.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting user is not permitted to access the
requested course or course work, or for access errors.
* `INVALID_ARGUMENT` if the request is malformed.
* `NOT_FOUND` if the requested course or course work does not exist.

Args:
  courseId: string, Identifier of the course.
This identifier can be either the Classroom-assigned identifier or an
alias. (required)
  id: string, Identifier of the course work. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Course work created by a teacher for students of the course.
    "updateTime": "A String", # Timestamp of the most recent change to this course work.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the coursework.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
        #
        # Read-only.
    "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
        # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
    "creatorUserId": "A String", # Identifier for the user that created the coursework.
        #
        # Read-only.
    "dueDate": { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # Optional date, in UTC, that submissions for this course work are due.
        # This must be specified if `due_time` is specified.
        # and time zone are either specified elsewhere or are not significant. The date
        # is relative to the Proleptic Gregorian Calendar. This can represent:
        #
        # * A full date, with non-zero year, month and day values
        # * A month and day value, with a zero year, e.g. an anniversary
        # * A year on its own, with zero month and day values
        # * A year and month value, with a zero day, e.g. a credit card expiration date
        #
        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
      "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
          # month and day.
      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
          # if specifying a year by itself or a year and month where the day is not
          # significant.
      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
          # a year.
    },
    "state": "A String", # Status of this course work.
        # If unspecified, the default state is `DRAFT`.
    "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this course work
        # are due.
        # This must be specified if `due_date` is specified.
        # or are specified elsewhere. An API may choose to allow leap seconds. Related
        # types are google.type.Date and `google.protobuf.Timestamp`.
      "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
          # to allow the value "24:00:00" for scenarios like business closing time.
      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
      "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
      "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
          # allow the value 60 if it allows leap-seconds.
    },
    "topicId": "A String", # Identifier for the topic that this coursework is associated with.
        # Must match an existing topic in the course.
    "description": "A String", # Optional description of this course work.
        # If set, the description must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "assignment": { # Additional details for assignments. # Assignment details.
        # This is populated only when `work_type` is `ASSIGNMENT`.
        #
        # Read-only.
      "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed.
          # This is only populated for course teachers and administrators.
        "alternateLink": "A String", # URL that can be used to access the Drive folder.
            #
            # Read-only.
        "id": "A String", # Drive API resource ID.
        "title": "A String", # Title of the Drive folder.
            #
            # Read-only.
      },
    },
    "scheduledTime": "A String", # Optional timestamp when this course work is scheduled to be published.
    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
        # project making the request.
        #
        # See google.classroom.Work.CreateCourseWork for more
        # details.
        #
        # Read-only.
    "maxPoints": 3.14, # Maximum grade for this course work.
        # If zero or unspecified, this assignment is considered ungraded.
        # This must be a non-negative integer value.
    "workType": "A String", # Type of this course work.
        #
        # The type is set when the course work is created and cannot be changed.
    "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "title": "A String", # Title of this course work.
        # The title must be a valid UTF-8 string containing between 1 and 3000
        # characters.
    "creationTime": "A String", # Timestamp when this course work was created.
        #
        # Read-only.
    "materials": [ # Additional materials.
        #
        # CourseWork must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the coursework.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be assigned the coursework.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
        # For read operations, this field is populated only when `work_type` is
        # `MULTIPLE_CHOICE_QUESTION`.
        # For write operations, this field must be specified when creating course
        # work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be
        # set otherwise.
      "choices": [ # Possible choices.
        "A String",
      ],
    },
  }
list(courseId, orderBy=None, pageSize=None, courseWorkStates=None, pageToken=None, x__xgafv=None)
Returns a list of course work that the requester is permitted to view.

Course students may only view `PUBLISHED` course work. Course teachers
and domain administrators may view all course work.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting user is not permitted to access
the requested course or for access errors.
* `INVALID_ARGUMENT` if the request is malformed.
* `NOT_FOUND` if the requested course does not exist.

Args:
  courseId: string, Identifier of the course.
This identifier can be either the Classroom-assigned identifier or an
alias. (required)
  orderBy: string, Optional sort ordering for results. A comma-separated list of fields with
an optional sort direction keyword. Supported fields are `updateTime`
and `dueDate`. Supported direction keywords are `asc` and `desc`.
If not specified, `updateTime desc` is the default behavior.
Examples: `dueDate asc,updateTime desc`, `updateTime,dueDate desc`
  pageSize: integer, Maximum number of items to return. Zero or unspecified indicates that the
server may assign a maximum.

The server may return fewer than the specified number of results.
  courseWorkStates: string, Restriction on the work status to return. Only courseWork that matches
is returned. If unspecified, items with a work status of `PUBLISHED`
is returned. (repeated)
  pageToken: string, nextPageToken
value returned from a previous
list call,
indicating that the subsequent page of results should be returned.

The list request
must be otherwise identical to the one that resulted in this token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response when listing course work.
    "nextPageToken": "A String", # Token identifying the next page of results to return. If empty, no further
        # results are available.
    "courseWork": [ # Course work items that match the request.
      { # Course work created by a teacher for students of the course.
        "updateTime": "A String", # Timestamp of the most recent change to this course work.
            #
            # Read-only.
        "courseId": "A String", # Identifier of the course.
            #
            # Read-only.
        "assigneeMode": "A String", # Assignee mode of the coursework.
            # If unspecified, the default value is `ALL_STUDENTS`.
        "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
            #
            # Read-only.
        "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
            # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
        "creatorUserId": "A String", # Identifier for the user that created the coursework.
            #
            # Read-only.
        "dueDate": { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # Optional date, in UTC, that submissions for this course work are due.
            # This must be specified if `due_time` is specified.
            # and time zone are either specified elsewhere or are not significant. The date
            # is relative to the Proleptic Gregorian Calendar. This can represent:
            #
            # * A full date, with non-zero year, month and day values
            # * A month and day value, with a zero year, e.g. an anniversary
            # * A year on its own, with zero month and day values
            # * A year and month value, with a zero day, e.g. a credit card expiration date
            #
            # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
          "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
              # month and day.
          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
              # if specifying a year by itself or a year and month where the day is not
              # significant.
          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
              # a year.
        },
        "state": "A String", # Status of this course work.
            # If unspecified, the default state is `DRAFT`.
        "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this course work
            # are due.
            # This must be specified if `due_date` is specified.
            # or are specified elsewhere. An API may choose to allow leap seconds. Related
            # types are google.type.Date and `google.protobuf.Timestamp`.
          "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
              # to allow the value "24:00:00" for scenarios like business closing time.
          "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
          "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
          "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
              # allow the value 60 if it allows leap-seconds.
        },
        "topicId": "A String", # Identifier for the topic that this coursework is associated with.
            # Must match an existing topic in the course.
        "description": "A String", # Optional description of this course work.
            # If set, the description must be a valid UTF-8 string containing no more
            # than 30,000 characters.
        "assignment": { # Additional details for assignments. # Assignment details.
            # This is populated only when `work_type` is `ASSIGNMENT`.
            #
            # Read-only.
          "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed.
              # This is only populated for course teachers and administrators.
            "alternateLink": "A String", # URL that can be used to access the Drive folder.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive folder.
                #
                # Read-only.
          },
        },
        "scheduledTime": "A String", # Optional timestamp when this course work is scheduled to be published.
        "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
            # project making the request.
            #
            # See google.classroom.Work.CreateCourseWork for more
            # details.
            #
            # Read-only.
        "maxPoints": 3.14, # Maximum grade for this course work.
            # If zero or unspecified, this assignment is considered ungraded.
            # This must be a non-negative integer value.
        "workType": "A String", # Type of this course work.
            #
            # The type is set when the course work is created and cannot be changed.
        "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
            # This is only populated if `state` is `PUBLISHED`.
            #
            # Read-only.
        "title": "A String", # Title of this course work.
            # The title must be a valid UTF-8 string containing between 1 and 3000
            # characters.
        "creationTime": "A String", # Timestamp when this course work was created.
            #
            # Read-only.
        "materials": [ # Additional materials.
            #
            # CourseWork must have no more than 20 material items.
          { # Material attached to course work.
              #
              # When creating attachments, setting the `form` field is not supported.
            "youtubeVideo": { # YouTube video item. # YouTube video material.
              "alternateLink": "A String", # URL that can be used to view the YouTube video.
                  #
                  # Read-only.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                  #
                  # Read-only.
              "id": "A String", # YouTube API resource ID.
              "title": "A String", # Title of the YouTube video.
                  #
                  # Read-only.
            },
            "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
              "driveFile": { # Representation of a Google Drive file. # Drive file details.
                "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                    #
                    # Read-only.
                "alternateLink": "A String", # URL that can be used to access the Drive item.
                    #
                    # Read-only.
                "id": "A String", # Drive API resource ID.
                "title": "A String", # Title of the Drive item.
                    #
                    # Read-only.
              },
              "shareMode": "A String", # Mechanism by which students access the Drive item.
            },
            "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
                # if possible, and this will be reflected in the response.
              "url": "A String", # URL to link to.
                  # This must be a valid UTF-8 string containing between 1 and 2024 characters.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
                  #
                  # Read-only.
              "title": "A String", # Title of the target of the URL.
                  #
                  # Read-only.
            },
            "form": { # Google Forms item. # Google Forms material.
              "formUrl": "A String", # URL of the form.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
                  #
                  # Read-only.
              "responseUrl": "A String", # URL of the form responses document.
                  # Only set if respsonses have been recorded and only when the
                  # requesting user is an editor of the form.
                  #
                  # Read-only.
              "title": "A String", # Title of the Form.
                  #
                  # Read-only.
            },
          },
        ],
        "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the coursework.
            # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
            # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
            # specified in this field will be assigned the coursework.
            # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
          "studentIds": [ # Identifiers for the students that have access to the
              # coursework/announcement.
            "A String",
          ],
        },
        "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
            # For read operations, this field is populated only when `work_type` is
            # `MULTIPLE_CHOICE_QUESTION`.
            # For write operations, this field must be specified when creating course
            # work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be
            # set otherwise.
          "choices": [ # Possible choices.
            "A String",
          ],
        },
      },
    ],
  }
list_next(previous_request, previous_response)
Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    
modifyAssignees(courseId, id, body, x__xgafv=None)
Modifies assignee mode and options of a coursework.

Only a teacher of the course that contains the coursework may
call this method.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting user is not permitted to access the
requested course or course work or for access errors.
* `INVALID_ARGUMENT` if the request is malformed.
* `NOT_FOUND` if the requested course or course work does not exist.

Args:
  courseId: string, Identifier of the course.
This identifier can be either the Classroom-assigned identifier or an
alias. (required)
  id: string, Identifier of the coursework. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Request to modify assignee mode and options of a coursework.
    "assigneeMode": "A String", # Mode of the coursework describing whether it will be assigned to all
        # students or specified individual students.
    "modifyIndividualStudentsOptions": { # Contains fields to add or remove students from a course work or announcement # Set which students are assigned or not assigned to the coursework.
        # Must be specified only when `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # where the `assigneeMode` is set to `INDIVIDUAL_STUDENTS`.
      "addStudentIds": [ # Ids of students to be added as having access to this
          # coursework/announcement.
        "A String",
      ],
      "removeStudentIds": [ # Ids of students to be removed from having access to this
          # coursework/announcement.
        "A String",
      ],
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Course work created by a teacher for students of the course.
    "updateTime": "A String", # Timestamp of the most recent change to this course work.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the coursework.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
        #
        # Read-only.
    "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
        # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
    "creatorUserId": "A String", # Identifier for the user that created the coursework.
        #
        # Read-only.
    "dueDate": { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # Optional date, in UTC, that submissions for this course work are due.
        # This must be specified if `due_time` is specified.
        # and time zone are either specified elsewhere or are not significant. The date
        # is relative to the Proleptic Gregorian Calendar. This can represent:
        #
        # * A full date, with non-zero year, month and day values
        # * A month and day value, with a zero year, e.g. an anniversary
        # * A year on its own, with zero month and day values
        # * A year and month value, with a zero day, e.g. a credit card expiration date
        #
        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
      "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
          # month and day.
      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
          # if specifying a year by itself or a year and month where the day is not
          # significant.
      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
          # a year.
    },
    "state": "A String", # Status of this course work.
        # If unspecified, the default state is `DRAFT`.
    "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this course work
        # are due.
        # This must be specified if `due_date` is specified.
        # or are specified elsewhere. An API may choose to allow leap seconds. Related
        # types are google.type.Date and `google.protobuf.Timestamp`.
      "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
          # to allow the value "24:00:00" for scenarios like business closing time.
      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
      "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
      "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
          # allow the value 60 if it allows leap-seconds.
    },
    "topicId": "A String", # Identifier for the topic that this coursework is associated with.
        # Must match an existing topic in the course.
    "description": "A String", # Optional description of this course work.
        # If set, the description must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "assignment": { # Additional details for assignments. # Assignment details.
        # This is populated only when `work_type` is `ASSIGNMENT`.
        #
        # Read-only.
      "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed.
          # This is only populated for course teachers and administrators.
        "alternateLink": "A String", # URL that can be used to access the Drive folder.
            #
            # Read-only.
        "id": "A String", # Drive API resource ID.
        "title": "A String", # Title of the Drive folder.
            #
            # Read-only.
      },
    },
    "scheduledTime": "A String", # Optional timestamp when this course work is scheduled to be published.
    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
        # project making the request.
        #
        # See google.classroom.Work.CreateCourseWork for more
        # details.
        #
        # Read-only.
    "maxPoints": 3.14, # Maximum grade for this course work.
        # If zero or unspecified, this assignment is considered ungraded.
        # This must be a non-negative integer value.
    "workType": "A String", # Type of this course work.
        #
        # The type is set when the course work is created and cannot be changed.
    "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "title": "A String", # Title of this course work.
        # The title must be a valid UTF-8 string containing between 1 and 3000
        # characters.
    "creationTime": "A String", # Timestamp when this course work was created.
        #
        # Read-only.
    "materials": [ # Additional materials.
        #
        # CourseWork must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the coursework.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be assigned the coursework.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
        # For read operations, this field is populated only when `work_type` is
        # `MULTIPLE_CHOICE_QUESTION`.
        # For write operations, this field must be specified when creating course
        # work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be
        # set otherwise.
      "choices": [ # Possible choices.
        "A String",
      ],
    },
  }
patch(courseId, id, body, updateMask=None, x__xgafv=None)
Updates one or more fields of a course work.

See google.classroom.v1.CourseWork for details
of which fields may be updated and who may change them.

This request must be made by the Developer Console project of the
[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to
create the corresponding course work item.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting developer project did not create
the corresponding course work, if the user is not permitted to make the
requested modification to the student submission, or for
access errors.
* `INVALID_ARGUMENT` if the request is malformed.
* `FAILED_PRECONDITION` if the requested course work has already been
deleted.
* `NOT_FOUND` if the requested course, course work, or student submission
does not exist.

Args:
  courseId: string, Identifier of the course.
This identifier can be either the Classroom-assigned identifier or an
alias. (required)
  id: string, Identifier of the course work. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Course work created by a teacher for students of the course.
  "updateTime": "A String", # Timestamp of the most recent change to this course work.
      # 
      # Read-only.
  "courseId": "A String", # Identifier of the course.
      # 
      # Read-only.
  "assigneeMode": "A String", # Assignee mode of the coursework.
      # If unspecified, the default value is `ALL_STUDENTS`.
  "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
      # 
      # Read-only.
  "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
      # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
  "creatorUserId": "A String", # Identifier for the user that created the coursework.
      # 
      # Read-only.
  "dueDate": { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # Optional date, in UTC, that submissions for this course work are due.
      # This must be specified if `due_time` is specified.
      # and time zone are either specified elsewhere or are not significant. The date
      # is relative to the Proleptic Gregorian Calendar. This can represent:
      #
      # * A full date, with non-zero year, month and day values
      # * A month and day value, with a zero year, e.g. an anniversary
      # * A year on its own, with zero month and day values
      # * A year and month value, with a zero day, e.g. a credit card expiration date
      #
      # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
    "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
        # month and day.
    "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
        # if specifying a year by itself or a year and month where the day is not
        # significant.
    "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
        # a year.
  },
  "state": "A String", # Status of this course work.
      # If unspecified, the default state is `DRAFT`.
  "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this course work
      # are due.
      # This must be specified if `due_date` is specified.
      # or are specified elsewhere. An API may choose to allow leap seconds. Related
      # types are google.type.Date and `google.protobuf.Timestamp`.
    "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
        # to allow the value "24:00:00" for scenarios like business closing time.
    "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
    "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
    "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
        # allow the value 60 if it allows leap-seconds.
  },
  "topicId": "A String", # Identifier for the topic that this coursework is associated with.
      # Must match an existing topic in the course.
  "description": "A String", # Optional description of this course work.
      # If set, the description must be a valid UTF-8 string containing no more
      # than 30,000 characters.
  "assignment": { # Additional details for assignments. # Assignment details.
      # This is populated only when `work_type` is `ASSIGNMENT`.
      # 
      # Read-only.
    "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed.
        # This is only populated for course teachers and administrators.
      "alternateLink": "A String", # URL that can be used to access the Drive folder.
          #
          # Read-only.
      "id": "A String", # Drive API resource ID.
      "title": "A String", # Title of the Drive folder.
          #
          # Read-only.
    },
  },
  "scheduledTime": "A String", # Optional timestamp when this course work is scheduled to be published.
  "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
      # project making the request.
      # 
      # See google.classroom.Work.CreateCourseWork for more
      # details.
      # 
      # Read-only.
  "maxPoints": 3.14, # Maximum grade for this course work.
      # If zero or unspecified, this assignment is considered ungraded.
      # This must be a non-negative integer value.
  "workType": "A String", # Type of this course work.
      # 
      # The type is set when the course work is created and cannot be changed.
  "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
      # This is only populated if `state` is `PUBLISHED`.
      # 
      # Read-only.
  "title": "A String", # Title of this course work.
      # The title must be a valid UTF-8 string containing between 1 and 3000
      # characters.
  "creationTime": "A String", # Timestamp when this course work was created.
      # 
      # Read-only.
  "materials": [ # Additional materials.
      # 
      # CourseWork must have no more than 20 material items.
    { # Material attached to course work.
        #
        # When creating attachments, setting the `form` field is not supported.
      "youtubeVideo": { # YouTube video item. # YouTube video material.
        "alternateLink": "A String", # URL that can be used to view the YouTube video.
            #
            # Read-only.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
            #
            # Read-only.
        "id": "A String", # YouTube API resource ID.
        "title": "A String", # Title of the YouTube video.
            #
            # Read-only.
      },
      "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
        "driveFile": { # Representation of a Google Drive file. # Drive file details.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
              #
              # Read-only.
          "alternateLink": "A String", # URL that can be used to access the Drive item.
              #
              # Read-only.
          "id": "A String", # Drive API resource ID.
          "title": "A String", # Title of the Drive item.
              #
              # Read-only.
        },
        "shareMode": "A String", # Mechanism by which students access the Drive item.
      },
      "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
          # if possible, and this will be reflected in the response.
        "url": "A String", # URL to link to.
            # This must be a valid UTF-8 string containing between 1 and 2024 characters.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
            #
            # Read-only.
        "title": "A String", # Title of the target of the URL.
            #
            # Read-only.
      },
      "form": { # Google Forms item. # Google Forms material.
        "formUrl": "A String", # URL of the form.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
            #
            # Read-only.
        "responseUrl": "A String", # URL of the form responses document.
            # Only set if respsonses have been recorded and only when the
            # requesting user is an editor of the form.
            #
            # Read-only.
        "title": "A String", # Title of the Form.
            #
            # Read-only.
      },
    },
  ],
  "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the coursework.
      # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
      # specified in this field will be assigned the coursework.
      # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
    "studentIds": [ # Identifiers for the students that have access to the
        # coursework/announcement.
      "A String",
    ],
  },
  "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
      # For read operations, this field is populated only when `work_type` is
      # `MULTIPLE_CHOICE_QUESTION`.
      # For write operations, this field must be specified when creating course
      # work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be
      # set otherwise.
    "choices": [ # Possible choices.
      "A String",
    ],
  },
}

  updateMask: string, Mask that identifies which fields on the course work to update.
This field is required to do an update. The update fails if invalid
fields are specified. If a field supports empty values, it can be cleared
by specifying it in the update mask and not in the CourseWork object. If a
field that does not support empty values is included in the update mask and
not set in the CourseWork object, an `INVALID_ARGUMENT` error will be
returned.

The following fields may be specified by teachers:

* `title`
* `description`
* `state`
* `due_date`
* `due_time`
* `max_points`
* `scheduled_time`
* `submission_modification_mode`
* `topic_id`
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Course work created by a teacher for students of the course.
    "updateTime": "A String", # Timestamp of the most recent change to this course work.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the coursework.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
        #
        # Read-only.
    "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
        # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
    "creatorUserId": "A String", # Identifier for the user that created the coursework.
        #
        # Read-only.
    "dueDate": { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # Optional date, in UTC, that submissions for this course work are due.
        # This must be specified if `due_time` is specified.
        # and time zone are either specified elsewhere or are not significant. The date
        # is relative to the Proleptic Gregorian Calendar. This can represent:
        #
        # * A full date, with non-zero year, month and day values
        # * A month and day value, with a zero year, e.g. an anniversary
        # * A year on its own, with zero month and day values
        # * A year and month value, with a zero day, e.g. a credit card expiration date
        #
        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
      "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
          # month and day.
      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
          # if specifying a year by itself or a year and month where the day is not
          # significant.
      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
          # a year.
    },
    "state": "A String", # Status of this course work.
        # If unspecified, the default state is `DRAFT`.
    "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this course work
        # are due.
        # This must be specified if `due_date` is specified.
        # or are specified elsewhere. An API may choose to allow leap seconds. Related
        # types are google.type.Date and `google.protobuf.Timestamp`.
      "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
          # to allow the value "24:00:00" for scenarios like business closing time.
      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
      "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
      "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
          # allow the value 60 if it allows leap-seconds.
    },
    "topicId": "A String", # Identifier for the topic that this coursework is associated with.
        # Must match an existing topic in the course.
    "description": "A String", # Optional description of this course work.
        # If set, the description must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "assignment": { # Additional details for assignments. # Assignment details.
        # This is populated only when `work_type` is `ASSIGNMENT`.
        #
        # Read-only.
      "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed.
          # This is only populated for course teachers and administrators.
        "alternateLink": "A String", # URL that can be used to access the Drive folder.
            #
            # Read-only.
        "id": "A String", # Drive API resource ID.
        "title": "A String", # Title of the Drive folder.
            #
            # Read-only.
      },
    },
    "scheduledTime": "A String", # Optional timestamp when this course work is scheduled to be published.
    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
        # project making the request.
        #
        # See google.classroom.Work.CreateCourseWork for more
        # details.
        #
        # Read-only.
    "maxPoints": 3.14, # Maximum grade for this course work.
        # If zero or unspecified, this assignment is considered ungraded.
        # This must be a non-negative integer value.
    "workType": "A String", # Type of this course work.
        #
        # The type is set when the course work is created and cannot be changed.
    "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "title": "A String", # Title of this course work.
        # The title must be a valid UTF-8 string containing between 1 and 3000
        # characters.
    "creationTime": "A String", # Timestamp when this course work was created.
        #
        # Read-only.
    "materials": [ # Additional materials.
        #
        # CourseWork must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the coursework.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be assigned the coursework.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
        # For read operations, this field is populated only when `work_type` is
        # `MULTIPLE_CHOICE_QUESTION`.
        # For write operations, this field must be specified when creating course
        # work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be
        # set otherwise.
      "choices": [ # Possible choices.
        "A String",
      ],
    },
  }