# Google Classroom API . courses . courseWork . addOnAttachments

## Instance Methods

Returns the studentSubmissions Resource.

Close httplib2 connections.

Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

Retrieves the next page of results.

Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

### Method Details

`close()`

    Close httplib2 connections.

`create(courseId, itemId, addOnToken=None, body=None, postId=None, x__xgafv=None)`

    Creates an add-on attachment under a post. Requires the add-on to have permission to create new attachments on the post. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

    Args:
      courseId: string, Required. Identifier of the course. (required)
      itemId: string, Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which to create the attachment. This field is required, but is not marked as such while we are migrating from post_id. (required)
      body: object, The request body.
        The object takes the form of:

    { # An add-on attachment on a post.
      "copyHistory": [ # Output only. Identifiers of attachments that were previous copies of this attachment. If the attachment was previously copied by virtue of its parent post being copied, this enumerates the identifiers of attachments that were its previous copies in ascending chronological order of copy.
        { # Identifier of a previous copy of a given attachment.
          "attachmentId": "A String", # Immutable. Identifier of the attachment.
          "courseId": "A String", # Immutable. Identifier of the course.
          "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached.
          "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
        },
      ],
      "courseId": "A String", # Immutable. Identifier of the course.
      "dueDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Date, in UTC, that work on this attachment is due. This must be specified if `due_time` is specified.
        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      },
      "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Time of day, in UTC, that work on this attachment is due. This must be specified if `due_date` is specified.
        "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
        "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
        "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
        "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
      },
      "id": "A String", # Immutable. Classroom-assigned identifier for this attachment, unique per post.
      "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. Unique per course.
      "maxPoints": 3.14, # Maximum grade for this attachment. Can only be set if `studentWorkReviewUri` is set. Set to a non-zero value to indicate that the attachment supports grade passback. If set, this must be a non-negative integer value. When set to zero, the attachment will not support grade passback.
      "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
      "studentViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the student view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "studentWorkReviewUri": { # URI to be iframed after being populated with query parameters. # URI for the teacher to see student work on the attachment, if applicable. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, `attachmentId`, and `submissionId` query parameters set. This is the same `submissionId` returned in the [`AddOnContext.studentContext`](/workspace/classroom/reference/rest/v1/AddOnContext#StudentContext) field when a student views the attachment. If the URI is omitted or removed, `max_points` will also be discarded.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "teacherViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the teacher view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "title": "A String", # Required. Title of this attachment. The title must be between 1 and 1000 characters.
    }

      addOnToken: string, Optional. Token that authorizes the request. The token is passed as a query parameter when the user is redirected from Classroom to the add-on's URL. This authorization token is required for in-Classroom attachment creation but optional for partner-first attachment creation. Returns an error if not provided for partner-first attachment creation and the developer projects that created the attachment and its parent stream item do not match.
      postId: string, Optional. Deprecated, use `item_id` instead.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An add-on attachment on a post.
      "copyHistory": [ # Output only. Identifiers of attachments that were previous copies of this attachment. If the attachment was previously copied by virtue of its parent post being copied, this enumerates the identifiers of attachments that were its previous copies in ascending chronological order of copy.
        { # Identifier of a previous copy of a given attachment.
          "attachmentId": "A String", # Immutable. Identifier of the attachment.
          "courseId": "A String", # Immutable. Identifier of the course.
          "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached.
          "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
        },
      ],
      "courseId": "A String", # Immutable. Identifier of the course.
      "dueDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Date, in UTC, that work on this attachment is due. This must be specified if `due_time` is specified.
        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      },
      "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Time of day, in UTC, that work on this attachment is due. This must be specified if `due_date` is specified.
        "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
        "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
        "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
        "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
      },
      "id": "A String", # Immutable. Classroom-assigned identifier for this attachment, unique per post.
      "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. Unique per course.
      "maxPoints": 3.14, # Maximum grade for this attachment. Can only be set if `studentWorkReviewUri` is set. Set to a non-zero value to indicate that the attachment supports grade passback. If set, this must be a non-negative integer value. When set to zero, the attachment will not support grade passback.
      "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
      "studentViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the student view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "studentWorkReviewUri": { # URI to be iframed after being populated with query parameters. # URI for the teacher to see student work on the attachment, if applicable. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, `attachmentId`, and `submissionId` query parameters set. This is the same `submissionId` returned in the [`AddOnContext.studentContext`](/workspace/classroom/reference/rest/v1/AddOnContext#StudentContext) field when a student views the attachment. If the URI is omitted or removed, `max_points` will also be discarded.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "teacherViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the teacher view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "title": "A String", # Required. Title of this attachment. The title must be between 1 and 1000 characters.
    }

`delete(courseId, itemId, attachmentId, postId=None, x__xgafv=None)`

    Deletes an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

    Args:
      courseId: string, Required. Identifier of the course. (required)
      itemId: string, Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. (required)
      attachmentId: string, Required. Identifier of the attachment. (required)
      postId: string, Optional. Deprecated, use `item_id` instead.
      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); }
    }

`get(courseId, itemId, attachmentId, postId=None, x__xgafv=None)`

    Returns an add-on attachment. Requires the add-on requesting the attachment to be the original creator of the attachment. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

    Args:
      courseId: string, Required. Identifier of the course. (required)
      itemId: string, Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. This field is required, but is not marked as such while we are migrating from post_id. (required)
      attachmentId: string, Required. Identifier of the attachment. (required)
      postId: string, Optional. Deprecated, use `item_id` instead.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An add-on attachment on a post.
      "copyHistory": [ # Output only. Identifiers of attachments that were previous copies of this attachment. If the attachment was previously copied by virtue of its parent post being copied, this enumerates the identifiers of attachments that were its previous copies in ascending chronological order of copy.
        { # Identifier of a previous copy of a given attachment.
          "attachmentId": "A String", # Immutable. Identifier of the attachment.
          "courseId": "A String", # Immutable. Identifier of the course.
          "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached.
          "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
        },
      ],
      "courseId": "A String", # Immutable. Identifier of the course.
      "dueDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Date, in UTC, that work on this attachment is due. This must be specified if `due_time` is specified.
        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      },
      "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Time of day, in UTC, that work on this attachment is due. This must be specified if `due_date` is specified.
        "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
        "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
        "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
        "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
      },
      "id": "A String", # Immutable. Classroom-assigned identifier for this attachment, unique per post.
      "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. Unique per course.
      "maxPoints": 3.14, # Maximum grade for this attachment. Can only be set if `studentWorkReviewUri` is set. Set to a non-zero value to indicate that the attachment supports grade passback. If set, this must be a non-negative integer value. When set to zero, the attachment will not support grade passback.
      "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
      "studentViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the student view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "studentWorkReviewUri": { # URI to be iframed after being populated with query parameters. # URI for the teacher to see student work on the attachment, if applicable. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, `attachmentId`, and `submissionId` query parameters set. This is the same `submissionId` returned in the [`AddOnContext.studentContext`](/workspace/classroom/reference/rest/v1/AddOnContext#StudentContext) field when a student views the attachment. If the URI is omitted or removed, `max_points` will also be discarded.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "teacherViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the teacher view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "title": "A String", # Required. Title of this attachment. The title must be between 1 and 1000 characters.
    }

`list(courseId, itemId, pageSize=None, pageToken=None, postId=None, x__xgafv=None)`

    Returns all attachments created by an add-on under the post. Requires the add-on to have active attachments on the post or have permission to create new attachments on the post. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

    Args:
      courseId: string, Required. Identifier of the course. (required)
      itemId: string, Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` whose attachments should be enumerated. This field is required, but is not marked as such while we are migrating from post_id. (required)
      pageSize: integer, The maximum number of attachments to return. The service may return fewer than this value. If unspecified, at most 20 attachments will be returned. The maximum value is 20; values above 20 will be coerced to 20.
      pageToken: string, A page token, received from a previous `ListAddOnAttachments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAddOnAttachments` must match the call that provided the page token.
      postId: string, Optional. Identifier of the post under the course whose attachments to enumerate. Deprecated, use `item_id` instead.
      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 add-on attachments.
      "addOnAttachments": [ # Attachments under the given post.
        { # An add-on attachment on a post.
          "copyHistory": [ # Output only. Identifiers of attachments that were previous copies of this attachment. If the attachment was previously copied by virtue of its parent post being copied, this enumerates the identifiers of attachments that were its previous copies in ascending chronological order of copy.
            { # Identifier of a previous copy of a given attachment.
              "attachmentId": "A String", # Immutable. Identifier of the attachment.
              "courseId": "A String", # Immutable. Identifier of the course.
              "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached.
              "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
            },
          ],
          "courseId": "A String", # Immutable. Identifier of the course.
          "dueDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Date, in UTC, that work on this attachment is due. This must be specified if `due_time` is specified.
            "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
            "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
            "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
          },
          "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Time of day, in UTC, that work on this attachment is due. This must be specified if `due_date` is specified.
            "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
            "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
            "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
            "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          },
          "id": "A String", # Immutable. Classroom-assigned identifier for this attachment, unique per post.
          "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. Unique per course.
          "maxPoints": 3.14, # Maximum grade for this attachment. Can only be set if `studentWorkReviewUri` is set. Set to a non-zero value to indicate that the attachment supports grade passback. If set, this must be a non-negative integer value. When set to zero, the attachment will not support grade passback.
          "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
          "studentViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the student view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
            "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
          },
          "studentWorkReviewUri": { # URI to be iframed after being populated with query parameters. # URI for the teacher to see student work on the attachment, if applicable. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, `attachmentId`, and `submissionId` query parameters set. This is the same `submissionId` returned in the [`AddOnContext.studentContext`](/workspace/classroom/reference/rest/v1/AddOnContext#StudentContext) field when a student views the attachment. If the URI is omitted or removed, `max_points` will also be discarded.
            "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
          },
          "teacherViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the teacher view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
            "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
          },
          "title": "A String", # Required. Title of this attachment. The title must be between 1 and 1000 characters.
        },
      ],
      "nextPageToken": "A String", # A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted, there are no subsequent pages.
    }

`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, itemId, attachmentId, body=None, postId=None, updateMask=None, x__xgafv=None)`

    Updates an add-on attachment. Requires the add-on to have been the original creator of the attachment. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if one of the identified resources does not exist.

    Args:
      courseId: string, Required. Identifier of the course. (required)
      itemId: string, Identifier of the post under which the attachment is attached. (required)
      attachmentId: string, Required. Identifier of the attachment. (required)
      body: object, The request body.
        The object takes the form of:

    { # An add-on attachment on a post.
      "copyHistory": [ # Output only. Identifiers of attachments that were previous copies of this attachment. If the attachment was previously copied by virtue of its parent post being copied, this enumerates the identifiers of attachments that were its previous copies in ascending chronological order of copy.
        { # Identifier of a previous copy of a given attachment.
          "attachmentId": "A String", # Immutable. Identifier of the attachment.
          "courseId": "A String", # Immutable. Identifier of the course.
          "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached.
          "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
        },
      ],
      "courseId": "A String", # Immutable. Identifier of the course.
      "dueDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Date, in UTC, that work on this attachment is due. This must be specified if `due_time` is specified.
        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      },
      "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Time of day, in UTC, that work on this attachment is due. This must be specified if `due_date` is specified.
        "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
        "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
        "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
        "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
      },
      "id": "A String", # Immutable. Classroom-assigned identifier for this attachment, unique per post.
      "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. Unique per course.
      "maxPoints": 3.14, # Maximum grade for this attachment. Can only be set if `studentWorkReviewUri` is set. Set to a non-zero value to indicate that the attachment supports grade passback. If set, this must be a non-negative integer value. When set to zero, the attachment will not support grade passback.
      "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
      "studentViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the student view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "studentWorkReviewUri": { # URI to be iframed after being populated with query parameters. # URI for the teacher to see student work on the attachment, if applicable. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, `attachmentId`, and `submissionId` query parameters set. This is the same `submissionId` returned in the [`AddOnContext.studentContext`](/workspace/classroom/reference/rest/v1/AddOnContext#StudentContext) field when a student views the attachment. If the URI is omitted or removed, `max_points` will also be discarded.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "teacherViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the teacher view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "title": "A String", # Required. Title of this attachment. The title must be between 1 and 1000 characters.
    }

      postId: string, Required. Identifier of the post under which the attachment is attached.
      updateMask: string, Required. Mask that identifies which fields on the attachment to 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 `AddOnAttachment` object. If a field that does not support empty values is included in the update mask and not set in the `AddOnAttachment` object, an `INVALID_ARGUMENT` error is returned. The following fields may be specified by teachers: * `title` * `teacher_view_uri` * `student_view_uri` * `student_work_review_uri` * `due_date` * `due_time` * `max_points`
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An add-on attachment on a post.
      "copyHistory": [ # Output only. Identifiers of attachments that were previous copies of this attachment. If the attachment was previously copied by virtue of its parent post being copied, this enumerates the identifiers of attachments that were its previous copies in ascending chronological order of copy.
        { # Identifier of a previous copy of a given attachment.
          "attachmentId": "A String", # Immutable. Identifier of the attachment.
          "courseId": "A String", # Immutable. Identifier of the course.
          "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached.
          "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
        },
      ],
      "courseId": "A String", # Immutable. Identifier of the course.
      "dueDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Date, in UTC, that work on this attachment is due. This must be specified if `due_time` is specified.
        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      },
      "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Time of day, in UTC, that work on this attachment is due. This must be specified if `due_date` is specified.
        "hours": 42, # Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
        "minutes": 42, # Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
        "nanos": 42, # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
        "seconds": 42, # Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
      },
      "id": "A String", # Immutable. Classroom-assigned identifier for this attachment, unique per post.
      "itemId": "A String", # Immutable. Identifier of the `Announcement`, `CourseWork`, or `CourseWorkMaterial` under which the attachment is attached. Unique per course.
      "maxPoints": 3.14, # Maximum grade for this attachment. Can only be set if `studentWorkReviewUri` is set. Set to a non-zero value to indicate that the attachment supports grade passback. If set, this must be a non-negative integer value. When set to zero, the attachment will not support grade passback.
      "postId": "A String", # Immutable. Deprecated, use `item_id` instead.
      "studentViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the student view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "studentWorkReviewUri": { # URI to be iframed after being populated with query parameters. # URI for the teacher to see student work on the attachment, if applicable. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, `attachmentId`, and `submissionId` query parameters set. This is the same `submissionId` returned in the [`AddOnContext.studentContext`](/workspace/classroom/reference/rest/v1/AddOnContext#StudentContext) field when a student views the attachment. If the URI is omitted or removed, `max_points` will also be discarded.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "teacherViewUri": { # URI to be iframed after being populated with query parameters. # Required. URI to show the teacher view of the attachment. The URI will be opened in an iframe with the `courseId`, `itemId`, `itemType`, and `attachmentId` query parameters set.
        "uri": "A String", # Required. URI to be iframed after being populated with query parameters. This must be a valid UTF-8 string containing between 1 and 1800 characters.
      },
      "title": "A String", # Required. Title of this attachment. The title must be between 1 and 1000 characters.
    }