# Google Classroom API . courses . courseWork

## Instance Methods

Returns the studentSubmissions Resource.

Creates course work.

Deletes a course work.

Returns course work.

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

Retrieves the next page of results.

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.
        "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
            # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
        "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.
        "title": "A String", # Title of this course work.
            # The title must be a valid UTF-8 string containing between 1 and 3000
            # characters.
        "courseId": "A String", # Identifier of the course.
            #
            # Read-only.
        "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.
            "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.
          },
        },
        "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
            # This is only populated if `state` is `PUBLISHED`.
            #
            # Read-only.
        "creationTime": "A String", # Timestamp when this course work was created.
            #
            # Read-only.
        "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
            #
            # Read-only.
        "state": "A String", # Status of this course work.
            # If unspecified, the default state is `DRAFT`.
        "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.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                  #
                  # Read-only.
              "alternateLink": "A String", # URL that can be used to view 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.
            },
          },
        ],
        "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",
          ],
        },
        "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.
        "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.
        "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
            # This must be specified if `due_time` is specified.
            # time zone are either specified elsewhere or are not significant. The date
            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
            # represent a year and month where the day is not significant, e.g. credit card
            # expiration date. The year may be 0 to represent a month and day independent
            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
            # and `google.protobuf.Timestamp`.
          "month": 42, # Month of year. Must be from 1 to 12.
          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
              # if specifying a year/month where the day is not significant.
          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
              # a year.
        },
        "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 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.
        },
        "workType": "A String", # Type of this course work.
            #
            # The type is set when the course work is created and cannot be changed.
      }

      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.
          "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
              # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
          "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.
          "title": "A String", # Title of this course work.
              # The title must be a valid UTF-8 string containing between 1 and 3000
              # characters.
          "courseId": "A String", # Identifier of the course.
              #
              # Read-only.
          "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.
              "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.
            },
          },
          "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
              # This is only populated if `state` is `PUBLISHED`.
              #
              # Read-only.
          "creationTime": "A String", # Timestamp when this course work was created.
              #
              # Read-only.
          "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
              #
              # Read-only.
          "state": "A String", # Status of this course work.
              # If unspecified, the default state is `DRAFT`.
          "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.
                "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                    #
                    # Read-only.
                "alternateLink": "A String", # URL that can be used to view 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.
              },
            },
          ],
          "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",
            ],
          },
          "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.
          "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.
          "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
              # This must be specified if `due_time` is specified.
              # time zone are either specified elsewhere or are not significant. The date
              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
              # represent a year and month where the day is not significant, e.g. credit card
              # expiration date. The year may be 0 to represent a month and day independent
              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
              # and `google.protobuf.Timestamp`.
            "month": 42, # Month of year. Must be from 1 to 12.
            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
                # if specifying a year/month where the day is not significant.
            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
                # a year.
          },
          "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 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.
          },
          "workType": "A String", # Type of this course work.
              #
              # The type is set when the course work is created and cannot be changed.
        }

`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.
          "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
              # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
          "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.
          "title": "A String", # Title of this course work.
              # The title must be a valid UTF-8 string containing between 1 and 3000
              # characters.
          "courseId": "A String", # Identifier of the course.
              #
              # Read-only.
          "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.
              "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.
            },
          },
          "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
              # This is only populated if `state` is `PUBLISHED`.
              #
              # Read-only.
          "creationTime": "A String", # Timestamp when this course work was created.
              #
              # Read-only.
          "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
              #
              # Read-only.
          "state": "A String", # Status of this course work.
              # If unspecified, the default state is `DRAFT`.
          "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.
                "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                    #
                    # Read-only.
                "alternateLink": "A String", # URL that can be used to view 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.
              },
            },
          ],
          "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",
            ],
          },
          "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.
          "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.
          "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
              # This must be specified if `due_time` is specified.
              # time zone are either specified elsewhere or are not significant. The date
              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
              # represent a year and month where the day is not significant, e.g. credit card
              # expiration date. The year may be 0 to represent a month and day independent
              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
              # and `google.protobuf.Timestamp`.
            "month": 42, # Month of year. Must be from 1 to 12.
            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
                # if specifying a year/month where the day is not significant.
            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
                # a year.
          },
          "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 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.
          },
          "workType": "A String", # Type of this course work.
              #
              # The type is set when the course work is created and cannot be changed.
        }

`list(courseId, orderBy=None, pageSize=None, courseWorkStates=None, x__xgafv=None, pageToken=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)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      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.

    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.
              "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
                  # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
              "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.
              "title": "A String", # Title of this course work.
                  # The title must be a valid UTF-8 string containing between 1 and 3000
                  # characters.
              "courseId": "A String", # Identifier of the course.
                  #
                  # Read-only.
              "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.
                  "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.
                },
              },
              "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
                  # This is only populated if `state` is `PUBLISHED`.
                  #
                  # Read-only.
              "creationTime": "A String", # Timestamp when this course work was created.
                  #
                  # Read-only.
              "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
                  #
                  # Read-only.
              "state": "A String", # Status of this course work.
                  # If unspecified, the default state is `DRAFT`.
              "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.
                    "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                        #
                        # Read-only.
                    "alternateLink": "A String", # URL that can be used to view 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.
                  },
                },
              ],
              "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",
                ],
              },
              "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.
              "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.
              "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
                  # This must be specified if `due_time` is specified.
                  # time zone are either specified elsewhere or are not significant. The date
                  # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
                  # represent a year and month where the day is not significant, e.g. credit card
                  # expiration date. The year may be 0 to represent a month and day independent
                  # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
                  # and `google.protobuf.Timestamp`.
                "month": 42, # Month of year. Must be from 1 to 12.
                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
                    # if specifying a year/month where the day is not significant.
                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
                    # a year.
              },
              "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 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.
              },
              "workType": "A String", # Type of this course work.
                  #
                  # The type is set when the course work is created and cannot be changed.
            },
        ],
      }

`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.

`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.
        "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
            # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
        "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.
        "title": "A String", # Title of this course work.
            # The title must be a valid UTF-8 string containing between 1 and 3000
            # characters.
        "courseId": "A String", # Identifier of the course.
            #
            # Read-only.
        "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.
            "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.
          },
        },
        "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
            # This is only populated if `state` is `PUBLISHED`.
            #
            # Read-only.
        "creationTime": "A String", # Timestamp when this course work was created.
            #
            # Read-only.
        "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
            #
            # Read-only.
        "state": "A String", # Status of this course work.
            # If unspecified, the default state is `DRAFT`.
        "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.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                  #
                  # Read-only.
              "alternateLink": "A String", # URL that can be used to view 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.
            },
          },
        ],
        "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",
          ],
        },
        "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.
        "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.
        "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
            # This must be specified if `due_time` is specified.
            # time zone are either specified elsewhere or are not significant. The date
            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
            # represent a year and month where the day is not significant, e.g. credit card
            # expiration date. The year may be 0 to represent a month and day independent
            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
            # and `google.protobuf.Timestamp`.
          "month": 42, # Month of year. Must be from 1 to 12.
          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
              # if specifying a year/month where the day is not significant.
          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
              # a year.
        },
        "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 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.
        },
        "workType": "A String", # Type of this course work.
            #
            # The type is set when the course work is created and cannot be changed.
      }

      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`
    * `submission_modification_mode`
      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.
          "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions.
              # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
          "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.
          "title": "A String", # Title of this course work.
              # The title must be a valid UTF-8 string containing between 1 and 3000
              # characters.
          "courseId": "A String", # Identifier of the course.
              #
              # Read-only.
          "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.
              "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.
            },
          },
          "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI.
              # This is only populated if `state` is `PUBLISHED`.
              #
              # Read-only.
          "creationTime": "A String", # Timestamp when this course work was created.
              #
              # Read-only.
          "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
              #
              # Read-only.
          "state": "A String", # Status of this course work.
              # If unspecified, the default state is `DRAFT`.
          "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.
                "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                    #
                    # Read-only.
                "alternateLink": "A String", # URL that can be used to view 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.
              },
            },
          ],
          "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",
            ],
          },
          "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.
          "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.
          "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
              # This must be specified if `due_time` is specified.
              # time zone are either specified elsewhere or are not significant. The date
              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
              # represent a year and month where the day is not significant, e.g. credit card
              # expiration date. The year may be 0 to represent a month and day independent
              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
              # and `google.protobuf.Timestamp`.
            "month": 42, # Month of year. Must be from 1 to 12.
            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
                # if specifying a year/month where the day is not significant.
            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
                # a year.
          },
          "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 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.
          },
          "workType": "A String", # Type of this course work.
              #
              # The type is set when the course work is created and cannot be changed.
        }