Google Classroom API . courses . announcements

Instance Methods

create(courseId, body, x__xgafv=None)

Creates an announcement.

delete(courseId, id, x__xgafv=None)

Deletes an announcement.

get(courseId, id, x__xgafv=None)

Returns an announcement.

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

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

list_next(previous_request, previous_response)

Retrieves the next page of results.

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

Modifies assignee mode and options of an announcement.

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

Updates one or more fields of an announcement.

Method Details

create(courseId, body, x__xgafv=None)
Creates an announcement.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting user is not permitted to access the
requested course, create announcements 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:

{ # Announcement created by a teacher for students of the course
  "updateTime": "A String", # Timestamp of the most recent change to this announcement.
      # 
      # Read-only.
  "scheduledTime": "A String", # Optional timestamp when this announcement is scheduled to be published.
  "creatorUserId": "A String", # Identifier for the user that created the announcement.
      # 
      # Read-only.
  "courseId": "A String", # Identifier of the course.
      # 
      # Read-only.
  "text": "A String", # Description of this announcement.
      # The text must be a valid UTF-8 string containing no more
      # than 30,000 characters.
  "alternateLink": "A String", # Absolute link to this announcement in the Classroom web UI.
      # This is only populated if `state` is `PUBLISHED`.
      # 
      # Read-only.
  "creationTime": "A String", # Timestamp when this announcement was created.
      # 
      # Read-only.
  "assigneeMode": "A String", # Assignee mode of the announcement.
      # If unspecified, the default value is `ALL_STUDENTS`.
  "state": "A String", # Status of this announcement.
      # If unspecified, the default state is `DRAFT`.
  "materials": [ # Additional materials.
      # 
      # Announcements must have no more than 20 material items.
    { # Material attached to course work.
        #
        # When creating attachments, setting the `form` field is not supported.
      "youtubeVideo": { # YouTube video item. # YouTube video material.
        "alternateLink": "A String", # URL that can be used to view the YouTube video.
            #
            # Read-only.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
            #
            # Read-only.
        "id": "A String", # YouTube API resource ID.
        "title": "A String", # Title of the YouTube video.
            #
            # Read-only.
      },
      "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
        "driveFile": { # Representation of a Google Drive file. # Drive file details.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
              #
              # Read-only.
          "alternateLink": "A String", # URL that can be used to access the Drive item.
              #
              # Read-only.
          "id": "A String", # Drive API resource ID.
          "title": "A String", # Title of the Drive item.
              #
              # Read-only.
        },
        "shareMode": "A String", # Mechanism by which students access the Drive item.
      },
      "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
          # if possible, and this will be reflected in the response.
        "url": "A String", # URL to link to.
            # This must be a valid UTF-8 string containing between 1 and 2024 characters.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
            #
            # Read-only.
        "title": "A String", # Title of the target of the URL.
            #
            # Read-only.
      },
      "form": { # Google Forms item. # Google Forms material.
        "formUrl": "A String", # URL of the form.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
            #
            # Read-only.
        "responseUrl": "A String", # URL of the form responses document.
            # Only set if respsonses have been recorded and only when the
            # requesting user is an editor of the form.
            #
            # Read-only.
        "title": "A String", # Title of the Form.
            #
            # Read-only.
      },
    },
  ],
  "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the announcement.
      # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
      # specified in this field will be able to see the announcement.
      # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
    "studentIds": [ # Identifiers for the students that have access to the
        # coursework/announcement.
      "A String",
    ],
  },
  "id": "A String", # Classroom-assigned identifier of this announcement, unique per course.
      # 
      # Read-only.
}

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

Returns:
  An object of the form:

    { # Announcement created by a teacher for students of the course
    "updateTime": "A String", # Timestamp of the most recent change to this announcement.
        #
        # Read-only.
    "scheduledTime": "A String", # Optional timestamp when this announcement is scheduled to be published.
    "creatorUserId": "A String", # Identifier for the user that created the announcement.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "text": "A String", # Description of this announcement.
        # The text must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "alternateLink": "A String", # Absolute link to this announcement in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "creationTime": "A String", # Timestamp when this announcement was created.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the announcement.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "state": "A String", # Status of this announcement.
        # If unspecified, the default state is `DRAFT`.
    "materials": [ # Additional materials.
        #
        # Announcements must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the announcement.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be able to see the announcement.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "id": "A String", # Classroom-assigned identifier of this announcement, unique per course.
        #
        # Read-only.
  }
delete(courseId, id, x__xgafv=None)
Deletes an announcement.

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 announcement item.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting developer project did not create
the corresponding announcement, if the requesting user is not permitted
to delete the requested course or for access errors.
* `FAILED_PRECONDITION` if the requested announcement 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 announcement 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 an announcement.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting user is not permitted to access the
requested course or announcement, or for access errors.
* `INVALID_ARGUMENT` if the request is malformed.
* `NOT_FOUND` if the requested course or announcement 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 announcement. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Announcement created by a teacher for students of the course
    "updateTime": "A String", # Timestamp of the most recent change to this announcement.
        #
        # Read-only.
    "scheduledTime": "A String", # Optional timestamp when this announcement is scheduled to be published.
    "creatorUserId": "A String", # Identifier for the user that created the announcement.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "text": "A String", # Description of this announcement.
        # The text must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "alternateLink": "A String", # Absolute link to this announcement in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "creationTime": "A String", # Timestamp when this announcement was created.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the announcement.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "state": "A String", # Status of this announcement.
        # If unspecified, the default state is `DRAFT`.
    "materials": [ # Additional materials.
        #
        # Announcements must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the announcement.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be able to see the announcement.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "id": "A String", # Classroom-assigned identifier of this announcement, unique per course.
        #
        # Read-only.
  }
list(courseId, orderBy=None, pageSize=None, announcementStates=None, pageToken=None, x__xgafv=None)
Returns a list of announcements that the requester is permitted to view.

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

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 field is `updateTime`.
Supported direction keywords are `asc` and `desc`.
If not specified, `updateTime desc` is the default behavior.
Examples: `updateTime asc`, `updateTime`
  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.
  announcementStates: string, Restriction on the `state` of announcements returned.
If this argument is left unspecified, the default value is `PUBLISHED`. (repeated)
  pageToken: string, nextPageToken
value returned from a previous
list call,
indicating that the subsequent page of results should be returned.

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

Returns:
  An object of the form:

    { # Response when listing course work.
    "nextPageToken": "A String", # Token identifying the next page of results to return. If empty, no further
        # results are available.
    "announcements": [ # Announcement items that match the request.
      { # Announcement created by a teacher for students of the course
        "updateTime": "A String", # Timestamp of the most recent change to this announcement.
            #
            # Read-only.
        "scheduledTime": "A String", # Optional timestamp when this announcement is scheduled to be published.
        "creatorUserId": "A String", # Identifier for the user that created the announcement.
            #
            # Read-only.
        "courseId": "A String", # Identifier of the course.
            #
            # Read-only.
        "text": "A String", # Description of this announcement.
            # The text must be a valid UTF-8 string containing no more
            # than 30,000 characters.
        "alternateLink": "A String", # Absolute link to this announcement in the Classroom web UI.
            # This is only populated if `state` is `PUBLISHED`.
            #
            # Read-only.
        "creationTime": "A String", # Timestamp when this announcement was created.
            #
            # Read-only.
        "assigneeMode": "A String", # Assignee mode of the announcement.
            # If unspecified, the default value is `ALL_STUDENTS`.
        "state": "A String", # Status of this announcement.
            # If unspecified, the default state is `DRAFT`.
        "materials": [ # Additional materials.
            #
            # Announcements must have no more than 20 material items.
          { # Material attached to course work.
              #
              # When creating attachments, setting the `form` field is not supported.
            "youtubeVideo": { # YouTube video item. # YouTube video material.
              "alternateLink": "A String", # URL that can be used to view the YouTube video.
                  #
                  # Read-only.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                  #
                  # Read-only.
              "id": "A String", # YouTube API resource ID.
              "title": "A String", # Title of the YouTube video.
                  #
                  # Read-only.
            },
            "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
              "driveFile": { # Representation of a Google Drive file. # Drive file details.
                "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                    #
                    # Read-only.
                "alternateLink": "A String", # URL that can be used to access the Drive item.
                    #
                    # Read-only.
                "id": "A String", # Drive API resource ID.
                "title": "A String", # Title of the Drive item.
                    #
                    # Read-only.
              },
              "shareMode": "A String", # Mechanism by which students access the Drive item.
            },
            "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
                # if possible, and this will be reflected in the response.
              "url": "A String", # URL to link to.
                  # This must be a valid UTF-8 string containing between 1 and 2024 characters.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
                  #
                  # Read-only.
              "title": "A String", # Title of the target of the URL.
                  #
                  # Read-only.
            },
            "form": { # Google Forms item. # Google Forms material.
              "formUrl": "A String", # URL of the form.
              "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
                  #
                  # Read-only.
              "responseUrl": "A String", # URL of the form responses document.
                  # Only set if respsonses have been recorded and only when the
                  # requesting user is an editor of the form.
                  #
                  # Read-only.
              "title": "A String", # Title of the Form.
                  #
                  # Read-only.
            },
          },
        ],
        "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the announcement.
            # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
            # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
            # specified in this field will be able to see the announcement.
            # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
          "studentIds": [ # Identifiers for the students that have access to the
              # coursework/announcement.
            "A String",
          ],
        },
        "id": "A String", # Classroom-assigned identifier of this announcement, unique per course.
            #
            # Read-only.
      },
    ],
  }
list_next(previous_request, previous_response)
Retrieves the next page of results.

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

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

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

This method returns the following error codes:

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

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

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

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

Returns:
  An object of the form:

    { # Announcement created by a teacher for students of the course
    "updateTime": "A String", # Timestamp of the most recent change to this announcement.
        #
        # Read-only.
    "scheduledTime": "A String", # Optional timestamp when this announcement is scheduled to be published.
    "creatorUserId": "A String", # Identifier for the user that created the announcement.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "text": "A String", # Description of this announcement.
        # The text must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "alternateLink": "A String", # Absolute link to this announcement in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "creationTime": "A String", # Timestamp when this announcement was created.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the announcement.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "state": "A String", # Status of this announcement.
        # If unspecified, the default state is `DRAFT`.
    "materials": [ # Additional materials.
        #
        # Announcements must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the announcement.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be able to see the announcement.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "id": "A String", # Classroom-assigned identifier of this announcement, unique per course.
        #
        # Read-only.
  }
patch(courseId, id, body, updateMask=None, x__xgafv=None)
Updates one or more fields of an announcement.

This method returns the following error codes:

* `PERMISSION_DENIED` if the requesting developer project did not create
the corresponding announcement or for access errors.
* `INVALID_ARGUMENT` if the request is malformed.
* `FAILED_PRECONDITION` if the requested announcement has already been
deleted.
* `NOT_FOUND` if the requested course or announcement 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 announcement. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Announcement created by a teacher for students of the course
  "updateTime": "A String", # Timestamp of the most recent change to this announcement.
      # 
      # Read-only.
  "scheduledTime": "A String", # Optional timestamp when this announcement is scheduled to be published.
  "creatorUserId": "A String", # Identifier for the user that created the announcement.
      # 
      # Read-only.
  "courseId": "A String", # Identifier of the course.
      # 
      # Read-only.
  "text": "A String", # Description of this announcement.
      # The text must be a valid UTF-8 string containing no more
      # than 30,000 characters.
  "alternateLink": "A String", # Absolute link to this announcement in the Classroom web UI.
      # This is only populated if `state` is `PUBLISHED`.
      # 
      # Read-only.
  "creationTime": "A String", # Timestamp when this announcement was created.
      # 
      # Read-only.
  "assigneeMode": "A String", # Assignee mode of the announcement.
      # If unspecified, the default value is `ALL_STUDENTS`.
  "state": "A String", # Status of this announcement.
      # If unspecified, the default state is `DRAFT`.
  "materials": [ # Additional materials.
      # 
      # Announcements must have no more than 20 material items.
    { # Material attached to course work.
        #
        # When creating attachments, setting the `form` field is not supported.
      "youtubeVideo": { # YouTube video item. # YouTube video material.
        "alternateLink": "A String", # URL that can be used to view the YouTube video.
            #
            # Read-only.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
            #
            # Read-only.
        "id": "A String", # YouTube API resource ID.
        "title": "A String", # Title of the YouTube video.
            #
            # Read-only.
      },
      "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
        "driveFile": { # Representation of a Google Drive file. # Drive file details.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
              #
              # Read-only.
          "alternateLink": "A String", # URL that can be used to access the Drive item.
              #
              # Read-only.
          "id": "A String", # Drive API resource ID.
          "title": "A String", # Title of the Drive item.
              #
              # Read-only.
        },
        "shareMode": "A String", # Mechanism by which students access the Drive item.
      },
      "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
          # if possible, and this will be reflected in the response.
        "url": "A String", # URL to link to.
            # This must be a valid UTF-8 string containing between 1 and 2024 characters.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
            #
            # Read-only.
        "title": "A String", # Title of the target of the URL.
            #
            # Read-only.
      },
      "form": { # Google Forms item. # Google Forms material.
        "formUrl": "A String", # URL of the form.
        "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
            #
            # Read-only.
        "responseUrl": "A String", # URL of the form responses document.
            # Only set if respsonses have been recorded and only when the
            # requesting user is an editor of the form.
            #
            # Read-only.
        "title": "A String", # Title of the Form.
            #
            # Read-only.
      },
    },
  ],
  "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the announcement.
      # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
      # specified in this field will be able to see the announcement.
      # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
    "studentIds": [ # Identifiers for the students that have access to the
        # coursework/announcement.
      "A String",
    ],
  },
  "id": "A String", # Classroom-assigned identifier of this announcement, unique per course.
      # 
      # Read-only.
}

  updateMask: string, Mask that identifies which fields on the announcement 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 Announcement object. If
a field that does not support empty values is included in the update mask
and not set in the Announcement object, an `INVALID_ARGUMENT` error will be
returned.

The following fields may be specified by teachers:

* `text`
* `state`
* `scheduled_time`
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Announcement created by a teacher for students of the course
    "updateTime": "A String", # Timestamp of the most recent change to this announcement.
        #
        # Read-only.
    "scheduledTime": "A String", # Optional timestamp when this announcement is scheduled to be published.
    "creatorUserId": "A String", # Identifier for the user that created the announcement.
        #
        # Read-only.
    "courseId": "A String", # Identifier of the course.
        #
        # Read-only.
    "text": "A String", # Description of this announcement.
        # The text must be a valid UTF-8 string containing no more
        # than 30,000 characters.
    "alternateLink": "A String", # Absolute link to this announcement in the Classroom web UI.
        # This is only populated if `state` is `PUBLISHED`.
        #
        # Read-only.
    "creationTime": "A String", # Timestamp when this announcement was created.
        #
        # Read-only.
    "assigneeMode": "A String", # Assignee mode of the announcement.
        # If unspecified, the default value is `ALL_STUDENTS`.
    "state": "A String", # Status of this announcement.
        # If unspecified, the default state is `DRAFT`.
    "materials": [ # Additional materials.
        #
        # Announcements must have no more than 20 material items.
      { # Material attached to course work.
          #
          # When creating attachments, setting the `form` field is not supported.
        "youtubeVideo": { # YouTube video item. # YouTube video material.
          "alternateLink": "A String", # URL that can be used to view the YouTube video.
              #
              # Read-only.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
              #
              # Read-only.
          "id": "A String", # YouTube API resource ID.
          "title": "A String", # Title of the YouTube video.
              #
              # Read-only.
        },
        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
          "driveFile": { # Representation of a Google Drive file. # Drive file details.
            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                #
                # Read-only.
            "alternateLink": "A String", # URL that can be used to access the Drive item.
                #
                # Read-only.
            "id": "A String", # Drive API resource ID.
            "title": "A String", # Title of the Drive item.
                #
                # Read-only.
          },
          "shareMode": "A String", # Mechanism by which students access the Drive item.
        },
        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type
            # if possible, and this will be reflected in the response.
          "url": "A String", # URL to link to.
              # This must be a valid UTF-8 string containing between 1 and 2024 characters.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL.
              #
              # Read-only.
          "title": "A String", # Title of the target of the URL.
              #
              # Read-only.
        },
        "form": { # Google Forms item. # Google Forms material.
          "formUrl": "A String", # URL of the form.
          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form.
              #
              # Read-only.
          "responseUrl": "A String", # URL of the form responses document.
              # Only set if respsonses have been recorded and only when the
              # requesting user is an editor of the form.
              #
              # Read-only.
          "title": "A String", # Title of the Form.
              #
              # Read-only.
        },
      },
    ],
    "individualStudentsOptions": { # Assignee details about a coursework/announcement. # Identifiers of students with access to the announcement.
        # This field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
        # If the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students
        # specified in this field will be able to see the announcement.
        # This field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
      "studentIds": [ # Identifiers for the students that have access to the
          # coursework/announcement.
        "A String",
      ],
    },
    "id": "A String", # Classroom-assigned identifier of this announcement, unique per course.
        #
        # Read-only.
  }