<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="drive_v3.html">Google Drive API</a> . <a href="drive_v3.changes.html">changes</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#getStartPageToken">getStartPageToken(driveId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the starting pageToken for listing future changes.</p>
<p class="toc_element">
  <code><a href="#list">list(pageToken, driveId=None, includeCorpusRemovals=None, includeItemsFromAllDrives=None, includeLabels=None, includePermissionsForView=None, includeRemoved=None, includeTeamDriveItems=None, pageSize=None, restrictToMyDrive=None, spaces=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the changes for a user or shared drive.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#watch">watch(pageToken, body=None, driveId=None, includeCorpusRemovals=None, includeItemsFromAllDrives=None, includeLabels=None, includePermissionsForView=None, includeRemoved=None, includeTeamDriveItems=None, pageSize=None, restrictToMyDrive=None, spaces=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Subscribes to changes for a user.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="getStartPageToken">getStartPageToken(driveId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None, x__xgafv=None)</code>
  <pre>Gets the starting pageToken for listing future changes.

Args:
  driveId: string, The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated: Use `supportsAllDrives` instead.
  teamDriveId: string, Deprecated: Use `driveId` instead.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;kind&quot;: &quot;drive#startPageToken&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;drive#startPageToken&quot;`.
  &quot;startPageToken&quot;: &quot;A String&quot;, # The starting page token for listing future changes. The page token doesn&#x27;t expire.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(pageToken, driveId=None, includeCorpusRemovals=None, includeItemsFromAllDrives=None, includeLabels=None, includePermissionsForView=None, includeRemoved=None, includeTeamDriveItems=None, pageSize=None, restrictToMyDrive=None, spaces=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None, x__xgafv=None)</code>
  <pre>Lists the changes for a user or shared drive.

Args:
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of &#x27;nextPageToken&#x27; from the previous response or to the response from the getStartPageToken method. (required)
  driveId: string, The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.
  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
  includeItemsFromAllDrives: boolean, Whether both My Drive and shared drive items should be included in results.
  includeLabels: string, A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.
  includePermissionsForView: string, Specifies which additional view&#x27;s permissions to include in the response. Only &#x27;published&#x27; is supported.
  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
  includeTeamDriveItems: boolean, Deprecated: Use `includeItemsFromAllDrives` instead.
  pageSize: integer, The maximum number of changes to return per page.
  restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
  spaces: string, A comma-separated list of spaces to query within the corpora. Supported values are &#x27;drive&#x27; and &#x27;appDataFolder&#x27;.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated: Use `supportsAllDrives` instead.
  teamDriveId: string, Deprecated: Use `driveId` instead.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A list of changes for a user.
  &quot;changes&quot;: [ # The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
    { # A change to a file or shared drive.
      &quot;changeType&quot;: &quot;A String&quot;, # The type of the change. Possible values are `file` and `drive`.
      &quot;drive&quot;: { # Representation of a shared drive. Some resource methods (such as `drives.update`) require a `driveId`. Use the `drives.list` method to retrieve the ID for a shared drive. # The updated state of the shared drive. Present if the changeType is drive, the user is still a member of the shared drive, and the shared drive has not been deleted.
        &quot;backgroundImageFile&quot;: { # An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on `drive.drives.update` requests that don&#x27;t set `themeId`. When specified, all fields of the `backgroundImageFile` must be set.
          &quot;id&quot;: &quot;A String&quot;, # The ID of an image file in Google Drive to use for the background image.
          &quot;width&quot;: 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
          &quot;xCoordinate&quot;: 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
          &quot;yCoordinate&quot;: 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
        },
        &quot;backgroundImageLink&quot;: &quot;A String&quot;, # Output only. A short-lived link to this shared drive&#x27;s background image.
        &quot;capabilities&quot;: { # Output only. Capabilities the current user has on this shared drive.
          &quot;canAddChildren&quot;: True or False, # Output only. Whether the current user can add children to folders in this shared drive.
          &quot;canChangeCopyRequiresWriterPermissionRestriction&quot;: True or False, # Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this shared drive.
          &quot;canChangeDomainUsersOnlyRestriction&quot;: True or False, # Output only. Whether the current user can change the `domainUsersOnly` restriction of this shared drive.
          &quot;canChangeDriveBackground&quot;: True or False, # Output only. Whether the current user can change the background of this shared drive.
          &quot;canChangeDriveMembersOnlyRestriction&quot;: True or False, # Output only. Whether the current user can change the `driveMembersOnly` restriction of this shared drive.
          &quot;canChangeSharingFoldersRequiresOrganizerPermissionRestriction&quot;: True or False, # Output only. Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this shared drive.
          &quot;canComment&quot;: True or False, # Output only. Whether the current user can comment on files in this shared drive.
          &quot;canCopy&quot;: True or False, # Output only. Whether the current user can copy files in this shared drive.
          &quot;canDeleteChildren&quot;: True or False, # Output only. Whether the current user can delete children from folders in this shared drive.
          &quot;canDeleteDrive&quot;: True or False, # Output only. Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.
          &quot;canDownload&quot;: True or False, # Output only. Whether the current user can download files in this shared drive.
          &quot;canEdit&quot;: True or False, # Output only. Whether the current user can edit files in this shared drive
          &quot;canListChildren&quot;: True or False, # Output only. Whether the current user can list the children of folders in this shared drive.
          &quot;canManageMembers&quot;: True or False, # Output only. Whether the current user can add members to this shared drive or remove them or change their role.
          &quot;canReadRevisions&quot;: True or False, # Output only. Whether the current user can read the revisions resource of files in this shared drive.
          &quot;canRename&quot;: True or False, # Output only. Whether the current user can rename files or folders in this shared drive.
          &quot;canRenameDrive&quot;: True or False, # Output only. Whether the current user can rename this shared drive.
          &quot;canResetDriveRestrictions&quot;: True or False, # Output only. Whether the current user can reset the shared drive restrictions to defaults.
          &quot;canShare&quot;: True or False, # Output only. Whether the current user can share files or folders in this shared drive.
          &quot;canTrashChildren&quot;: True or False, # Output only. Whether the current user can trash children from folders in this shared drive.
        },
        &quot;colorRgb&quot;: &quot;A String&quot;, # The color of this shared drive as an RGB hex string. It can only be set on a `drive.drives.update` request that does not set `themeId`.
        &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the shared drive was created (RFC 3339 date-time).
        &quot;hidden&quot;: True or False, # Whether the shared drive is hidden from default view.
        &quot;id&quot;: &quot;A String&quot;, # Output only. The ID of this shared drive which is also the ID of the top level folder of this shared drive.
        &quot;kind&quot;: &quot;drive#drive&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#drive&quot;`.
        &quot;name&quot;: &quot;A String&quot;, # The name of this shared drive.
        &quot;orgUnitId&quot;: &quot;A String&quot;, # Output only. The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.
        &quot;restrictions&quot;: { # A set of restrictions that apply to this shared drive or items inside this shared drive. Note that restrictions can&#x27;t be set when creating a shared drive. To add a restriction, first create a shared drive and then use `drives.update` to add restrictions.
          &quot;adminManagedRestrictions&quot;: True or False, # Whether administrative privileges on this shared drive are required to modify restrictions.
          &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this shared drive.
          &quot;domainUsersOnly&quot;: True or False, # Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive.
          &quot;driveMembersOnly&quot;: True or False, # Whether access to items inside this shared drive is restricted to its members.
          &quot;sharingFoldersRequiresOrganizerPermission&quot;: True or False, # If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.
        },
        &quot;themeId&quot;: &quot;A String&quot;, # The ID of the theme from which the background image and color will be set. The set of possible `driveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.drives.create` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don&#x27;t set `colorRgb` or `backgroundImageFile`.
      },
      &quot;driveId&quot;: &quot;A String&quot;, # The ID of the shared drive associated with this change.
      &quot;file&quot;: { # The metadata for a file. Some resource methods (such as `files.update`) require a `fileId`. Use the `files.list` method to retrieve the ID for a file. # The updated state of the file. Present if the type is file and the file has not been removed from this list of changes.
        &quot;appProperties&quot;: { # A collection of arbitrary key-value pairs which are private to the requesting app.
            # Entries with null values are cleared in update and copy requests. These properties can only be retrieved using an authenticated request. An authenticated request uses an access token obtained with a OAuth 2 client ID. You cannot use an API key to retrieve private properties.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;capabilities&quot;: { # Output only. Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
          &quot;canAcceptOwnership&quot;: True or False, # Output only. Whether the current user is the pending owner of the file. Not populated for shared drive files.
          &quot;canAddChildren&quot;: True or False, # Output only. Whether the current user can add children to this folder. This is always false when the item is not a folder.
          &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Output only. Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canAddMyDriveParent&quot;: True or False, # Output only. Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
          &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this file.
          &quot;canChangeSecurityUpdateEnabled&quot;: True or False, # Output only. Whether the current user can change the securityUpdateEnabled field on link share metadata.
          &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated: Output only.
          &quot;canComment&quot;: True or False, # Output only. Whether the current user can comment on this file.
          &quot;canCopy&quot;: True or False, # Output only. Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
          &quot;canDelete&quot;: True or False, # Output only. Whether the current user can delete this file.
          &quot;canDeleteChildren&quot;: True or False, # Output only. Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canDownload&quot;: True or False, # Output only. Whether the current user can download this file.
          &quot;canEdit&quot;: True or False, # Output only. Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see `canChangeCopyRequiresWriterPermission` or `canModifyContent`.
          &quot;canListChildren&quot;: True or False, # Output only. Whether the current user can list the children of this folder. This is always false when the item is not a folder.
          &quot;canModifyContent&quot;: True or False, # Output only. Whether the current user can modify the content of this file.
          &quot;canModifyContentRestriction&quot;: True or False, # Deprecated: Output only. Use one of `canModifyEditorContentRestriction`, `canModifyOwnerContentRestriction` or `canRemoveContentRestriction`.
          &quot;canModifyEditorContentRestriction&quot;: True or False, # Output only. Whether the current user can add or modify content restrictions on the file which are editor restricted.
          &quot;canModifyLabels&quot;: True or False, # Output only. Whether the current user can modify the labels on the file.
          &quot;canModifyOwnerContentRestriction&quot;: True or False, # Output only. Whether the current user can add or modify content restrictions which are owner restricted.
          &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Output only. Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated: Output only. Use `canMoveChildrenOutOfDrive` instead.
          &quot;canMoveChildrenWithinDrive&quot;: True or False, # Output only. Whether the current user can move children of this folder within this drive. This is false when the item is not a folder. Note that a request to move the child may still fail depending on the current user&#x27;s access to the child and to the destination folder.
          &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated: Output only. Use `canMoveChildrenWithinDrive` instead.
          &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.
          &quot;canMoveItemOutOfDrive&quot;: True or False, # Output only. Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
          &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.
          &quot;canMoveItemWithinDrive&quot;: True or False, # Output only. Whether the current user can move this item within this drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added and the parent that is being removed.
          &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated: Output only. Use `canMoveItemWithinDrive` instead.
          &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated: Output only. Use `canMoveItemWithinDrive` or `canMoveItemOutOfDrive` instead.
          &quot;canReadDrive&quot;: True or False, # Output only. Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
          &quot;canReadLabels&quot;: True or False, # Output only. Whether the current user can read the labels on the file.
          &quot;canReadRevisions&quot;: True or False, # Output only. Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
          &quot;canReadTeamDrive&quot;: True or False, # Deprecated: Output only. Use `canReadDrive` instead.
          &quot;canRemoveChildren&quot;: True or False, # Output only. Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use `canDeleteChildren` or `canTrashChildren` instead.
          &quot;canRemoveContentRestriction&quot;: True or False, # Output only. Whether there is a content restriction on the file that can be removed by the current user.
          &quot;canRemoveMyDriveParent&quot;: True or False, # Output only. Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
          &quot;canRename&quot;: True or False, # Output only. Whether the current user can rename this file.
          &quot;canShare&quot;: True or False, # Output only. Whether the current user can modify the sharing settings for this file.
          &quot;canTrash&quot;: True or False, # Output only. Whether the current user can move this file to trash.
          &quot;canTrashChildren&quot;: True or False, # Output only. Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canUntrash&quot;: True or False, # Output only. Whether the current user can restore this file from trash.
        },
        &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
          &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
          &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
            &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
            &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
          },
        },
        &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
          { # A restriction for accessing the content of the file.
            &quot;ownerRestricted&quot;: True or False, # Whether the content restriction can only be modified or removed by a user who owns the file. For files in shared drives, any user with `organizer` capabilities can modify or remove this content restriction.
            &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only. If a file is read-only, a new revision of the file may not be added, comments may not be added or modified, and the title of the file may not be modified.
            &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set `readOnly=true`.
            &quot;restrictingUser&quot;: { # Information about a Drive user. # Output only. The user who set the content restriction. Only populated if `readOnly` is true.
              &quot;displayName&quot;: &quot;A String&quot;, # Output only. A plain text displayable name for this user.
              &quot;emailAddress&quot;: &quot;A String&quot;, # Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
              &quot;kind&quot;: &quot;drive#user&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#user&quot;`.
              &quot;me&quot;: True or False, # Output only. Whether this user is the requesting user.
              &quot;permissionId&quot;: &quot;A String&quot;, # Output only. The user&#x27;s ID as visible in Permission resources.
              &quot;photoLink&quot;: &quot;A String&quot;, # Output only. A link to the user&#x27;s profile photo, if available.
            },
            &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
            &quot;systemRestricted&quot;: True or False, # Output only. Whether the content restriction was applied by the system, for example due to an esignature. Users cannot modify or remove system restricted content restrictions.
            &quot;type&quot;: &quot;A String&quot;, # Output only. The type of the content restriction. Currently the only possible value is `globalContentRestriction`.
          },
        ],
        &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
        &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
        &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
        &quot;driveId&quot;: &quot;A String&quot;, # Output only. ID of the shared drive the file resides in. Only populated for items in shared drives.
        &quot;explicitlyTrashed&quot;: True or False, # Output only. Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
        &quot;exportLinks&quot;: { # Output only. Links for exporting Docs Editors files to specific formats.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;fileExtension&quot;: &quot;A String&quot;, # Output only. The final component of `fullFileExtension`. This is only available for files with binary content in Google Drive.
        &quot;folderColorRgb&quot;: &quot;A String&quot;, # The color for a folder or a shortcut to a folder as an RGB hex string. The supported colors are published in the `folderColorPalette` field of the About resource. If an unsupported color is specified, the closest color in the palette is used instead.
        &quot;fullFileExtension&quot;: &quot;A String&quot;, # Output only. The full file extension extracted from the `name` field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google Drive. This is automatically updated when the `name` field changes, however it is not cleared if the new name does not contain a valid extension.
        &quot;hasAugmentedPermissions&quot;: True or False, # Output only. Whether there are permissions directly on this file. This field is only populated for items in shared drives.
        &quot;hasThumbnail&quot;: True or False, # Output only. Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
        &quot;headRevisionId&quot;: &quot;A String&quot;, # Output only. The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
        &quot;iconLink&quot;: &quot;A String&quot;, # Output only. A static, unauthenticated link to the file&#x27;s icon.
        &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
        &quot;imageMediaMetadata&quot;: { # Output only. Additional metadata about image media, if available.
          &quot;aperture&quot;: 3.14, # Output only. The aperture used to create the photo (f-number).
          &quot;cameraMake&quot;: &quot;A String&quot;, # Output only. The make of the camera used to create the photo.
          &quot;cameraModel&quot;: &quot;A String&quot;, # Output only. The model of the camera used to create the photo.
          &quot;colorSpace&quot;: &quot;A String&quot;, # Output only. The color space of the photo.
          &quot;exposureBias&quot;: 3.14, # Output only. The exposure bias of the photo (APEX value).
          &quot;exposureMode&quot;: &quot;A String&quot;, # Output only. The exposure mode used to create the photo.
          &quot;exposureTime&quot;: 3.14, # Output only. The length of the exposure, in seconds.
          &quot;flashUsed&quot;: True or False, # Output only. Whether a flash was used to create the photo.
          &quot;focalLength&quot;: 3.14, # Output only. The focal length used to create the photo, in millimeters.
          &quot;height&quot;: 42, # Output only. The height of the image in pixels.
          &quot;isoSpeed&quot;: 42, # Output only. The ISO speed used to create the photo.
          &quot;lens&quot;: &quot;A String&quot;, # Output only. The lens used to create the photo.
          &quot;location&quot;: { # Output only. Geographic location information stored in the image.
            &quot;altitude&quot;: 3.14, # Output only. The altitude stored in the image.
            &quot;latitude&quot;: 3.14, # Output only. The latitude stored in the image.
            &quot;longitude&quot;: 3.14, # Output only. The longitude stored in the image.
          },
          &quot;maxApertureValue&quot;: 3.14, # Output only. The smallest f-number of the lens at the focal length used to create the photo (APEX value).
          &quot;meteringMode&quot;: &quot;A String&quot;, # Output only. The metering mode used to create the photo.
          &quot;rotation&quot;: 42, # Output only. The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
          &quot;sensor&quot;: &quot;A String&quot;, # Output only. The type of sensor used to create the photo.
          &quot;subjectDistance&quot;: 42, # Output only. The distance to the subject of the photo, in meters.
          &quot;time&quot;: &quot;A String&quot;, # Output only. The date and time the photo was taken (EXIF DateTime).
          &quot;whiteBalance&quot;: &quot;A String&quot;, # Output only. The white balance mode used to create the photo.
          &quot;width&quot;: 42, # Output only. The width of the image in pixels.
        },
        &quot;isAppAuthorized&quot;: True or False, # Output only. Whether the file was created or opened by the requesting app.
        &quot;kind&quot;: &quot;drive#file&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#file&quot;`.
        &quot;labelInfo&quot;: { # Output only. An overview of the labels on the file.
          &quot;labels&quot;: [ # Output only. The set of labels on the file as requested by the label IDs in the `includeLabels` parameter. By default, no labels are returned.
            { # Representation of label and label fields.
              &quot;fields&quot;: { # A map of the fields on the label, keyed by the field&#x27;s ID.
                &quot;a_key&quot;: { # Representation of field, which is a typed key-value pair.
                  &quot;dateString&quot;: [ # Only present if valueType is dateString. RFC 3339 formatted date: YYYY-MM-DD.
                    &quot;A String&quot;,
                  ],
                  &quot;id&quot;: &quot;A String&quot;, # The identifier of this label field.
                  &quot;integer&quot;: [ # Only present if `valueType` is `integer`.
                    &quot;A String&quot;,
                  ],
                  &quot;kind&quot;: &quot;A String&quot;, # This is always drive#labelField.
                  &quot;selection&quot;: [ # Only present if `valueType` is `selection`
                    &quot;A String&quot;,
                  ],
                  &quot;text&quot;: [ # Only present if `valueType` is `text`.
                    &quot;A String&quot;,
                  ],
                  &quot;user&quot;: [ # Only present if `valueType` is `user`.
                    { # Information about a Drive user.
                      &quot;displayName&quot;: &quot;A String&quot;, # Output only. A plain text displayable name for this user.
                      &quot;emailAddress&quot;: &quot;A String&quot;, # Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
                      &quot;kind&quot;: &quot;drive#user&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#user&quot;`.
                      &quot;me&quot;: True or False, # Output only. Whether this user is the requesting user.
                      &quot;permissionId&quot;: &quot;A String&quot;, # Output only. The user&#x27;s ID as visible in Permission resources.
                      &quot;photoLink&quot;: &quot;A String&quot;, # Output only. A link to the user&#x27;s profile photo, if available.
                    },
                  ],
                  &quot;valueType&quot;: &quot;A String&quot;, # The field type. While new values may be supported in the future, the following are currently allowed: * `dateString` * `integer` * `selection` * `text` * `user`
                },
              },
              &quot;id&quot;: &quot;A String&quot;, # The ID of the label.
              &quot;kind&quot;: &quot;A String&quot;, # This is always drive#label
              &quot;revisionId&quot;: &quot;A String&quot;, # The revision ID of the label.
            },
          ],
        },
        &quot;lastModifyingUser&quot;: { # Information about a Drive user. # Output only. The last user to modify the file.
          &quot;displayName&quot;: &quot;A String&quot;, # Output only. A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
          &quot;kind&quot;: &quot;drive#user&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#user&quot;`.
          &quot;me&quot;: True or False, # Output only. Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # Output only. The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # Output only. A link to the user&#x27;s profile photo, if available.
        },
        &quot;linkShareMetadata&quot;: { # Contains details about the link URLs that clients are using to refer to this item.
          &quot;securityUpdateEligible&quot;: True or False, # Output only. Whether the file is eligible for security update.
          &quot;securityUpdateEnabled&quot;: True or False, # Output only. Whether the security update is enabled for this file.
        },
        &quot;md5Checksum&quot;: &quot;A String&quot;, # Output only. The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file. Google Drive attempts to automatically detect an appropriate value from uploaded content, if no value is provided. The value cannot be changed unless a new revision is uploaded. If a file is created with a Google Doc MIME type, the uploaded content is imported, if possible. The supported import formats are published in the About resource.
        &quot;modifiedByMe&quot;: True or False, # Output only. Whether the file has been modified by this user.
        &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
        &quot;modifiedTime&quot;: &quot;A String&quot;, # he last time the file was modified by anyone (RFC 3339 date-time). Note that setting modifiedTime will also update modifiedByMeTime for the user.
        &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
        &quot;originalFilename&quot;: &quot;A String&quot;, # The original filename of the uploaded content if available, or else the original value of the `name` field. This is only available for files with binary content in Google Drive.
        &quot;ownedByMe&quot;: True or False, # Output only. Whether the user owns the file. Not populated for items in shared drives.
        &quot;owners&quot;: [ # Output only. The owner of this file. Only certain legacy files may have more than one owner. This field isn&#x27;t populated for items in shared drives.
          { # Information about a Drive user.
            &quot;displayName&quot;: &quot;A String&quot;, # Output only. A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            &quot;kind&quot;: &quot;drive#user&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#user&quot;`.
            &quot;me&quot;: True or False, # Output only. Whether this user is the requesting user.
            &quot;permissionId&quot;: &quot;A String&quot;, # Output only. The user&#x27;s ID as visible in Permission resources.
            &quot;photoLink&quot;: &quot;A String&quot;, # Output only. A link to the user&#x27;s profile photo, if available.
          },
        ],
        &quot;parents&quot;: [ # The IDs of the parent folders which contain the file. If not specified as part of a create request, the file is placed directly in the user&#x27;s My Drive folder. If not specified as part of a copy request, the file inherits any discoverable parents of the source file. Update requests must use the `addParents` and `removeParents` parameters to modify the parents list.
          &quot;A String&quot;,
        ],
        &quot;permissionIds&quot;: [ # Output only. List of permission IDs for users with access to this file.
          &quot;A String&quot;,
        ],
        &quot;permissions&quot;: [ # Output only. The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
          { # A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive.
            &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type `domain` or `anyone`.
            &quot;deleted&quot;: True or False, # Output only. Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
            &quot;displayName&quot;: &quot;A String&quot;, # Output only. The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission: * `user` - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot; * `group` - Name of the Google Group, such as &quot;The Company Administrators.&quot; * `domain` - String domain name, such as &quot;thecompany.com.&quot; * `anyone` - No `displayName` is present.
            &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
            &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: - They can only be set on user and group permissions - The time must be in the future - The time cannot be more than a year in the future
            &quot;id&quot;: &quot;A String&quot;, # Output only. The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as `permissionId`. IDs should be treated as opaque values.
            &quot;kind&quot;: &quot;drive#permission&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#permission&quot;`.
            &quot;pendingOwner&quot;: True or False, # Whether the account associated with this permission is a pending owner. Only populated for `user` type permissions for files that are not in a shared drive.
            &quot;permissionDetails&quot;: [ # Output only. Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
              {
                &quot;inherited&quot;: True or False, # Output only. Whether this permission is inherited. This field is always populated. This is an output-only field.
                &quot;inheritedFrom&quot;: &quot;A String&quot;, # Output only. The ID of the item from which this permission is inherited. This is an output-only field.
                &quot;permissionType&quot;: &quot;A String&quot;, # Output only. The permission type for this user. While new values may be added in future, the following are currently possible: * `file` * `member`
                &quot;role&quot;: &quot;A String&quot;, # Output only. The primary role for this user. While new values may be added in the future, the following are currently possible: * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader`
              },
            ],
            &quot;photoLink&quot;: &quot;A String&quot;, # Output only. A link to the user&#x27;s profile photo, if available.
            &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader`
            &quot;teamDrivePermissionDetails&quot;: [ # Output only. Deprecated: Output only. Use `permissionDetails` instead.
              {
                &quot;inherited&quot;: True or False, # Deprecated: Output only. Use `permissionDetails/inherited` instead.
                &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated: Output only. Use `permissionDetails/inheritedFrom` instead.
                &quot;role&quot;: &quot;A String&quot;, # Deprecated: Output only. Use `permissionDetails/role` instead.
                &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated: Output only. Use `permissionDetails/permissionType` instead.
              },
            ],
            &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are: * `user` * `group` * `domain` * `anyone` When creating a permission, if `type` is `user` or `group`, you must provide an `emailAddress` for the user or group. When `type` is `domain`, you must provide a `domain`. There isn&#x27;t extra information required for an `anyone` type.
            &quot;view&quot;: &quot;A String&quot;, # Indicates the view for this permission. Only populated for permissions that belong to a view. &#x27;published&#x27; is the only supported value.
          },
        ],
        &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
            # Entries with null values are cleared in update and copy requests.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # Output only. The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with `keepForever` enabled.
        &quot;resourceKey&quot;: &quot;A String&quot;, # Output only. A key needed to access the item via a shared link.
        &quot;sha1Checksum&quot;: &quot;A String&quot;, # Output only. The SHA1 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
        &quot;sha256Checksum&quot;: &quot;A String&quot;, # Output only. The SHA256 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
        &quot;shared&quot;: True or False, # Output only. Whether the file has been shared. Not populated for items in shared drives.
        &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
        &quot;sharingUser&quot;: { # Information about a Drive user. # Output only. The user who shared the file with the requesting user, if applicable.
          &quot;displayName&quot;: &quot;A String&quot;, # Output only. A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
          &quot;kind&quot;: &quot;drive#user&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#user&quot;`.
          &quot;me&quot;: True or False, # Output only. Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # Output only. The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # Output only. A link to the user&#x27;s profile photo, if available.
        },
        &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to `application/vnd.google-apps.shortcut`.
          &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
          &quot;targetMimeType&quot;: &quot;A String&quot;, # Output only. The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
          &quot;targetResourceKey&quot;: &quot;A String&quot;, # Output only. The ResourceKey for the target file.
        },
        &quot;size&quot;: &quot;A String&quot;, # Output only. Size in bytes of blobs and first party editor files. Won&#x27;t be populated for files that have no size, like shortcuts and folders.
        &quot;spaces&quot;: [ # Output only. The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
          &quot;A String&quot;,
        ],
        &quot;starred&quot;: True or False, # Whether the user has starred the file.
        &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated: Output only. Use `driveId` instead.
        &quot;thumbnailLink&quot;: &quot;A String&quot;, # Output only. A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content. If the file isn&#x27;t shared publicly, the URL returned in `Files.thumbnailLink` must be fetched using a credentialed request.
        &quot;thumbnailVersion&quot;: &quot;A String&quot;, # Output only. The thumbnail version for use in thumbnail cache invalidation.
        &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner&#x27;s trash.
        &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
        &quot;trashingUser&quot;: { # Information about a Drive user. # Output only. If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
          &quot;displayName&quot;: &quot;A String&quot;, # Output only. A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
          &quot;kind&quot;: &quot;drive#user&quot;, # Output only. Identifies what kind of resource this is. Value: the fixed string `&quot;drive#user&quot;`.
          &quot;me&quot;: True or False, # Output only. Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # Output only. The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # Output only. A link to the user&#x27;s profile photo, if available.
        },
        &quot;version&quot;: &quot;A String&quot;, # Output only. A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
        &quot;videoMediaMetadata&quot;: { # Output only. Additional metadata about video media. This may not be available immediately upon upload.
          &quot;durationMillis&quot;: &quot;A String&quot;, # Output only. The duration of the video in milliseconds.
          &quot;height&quot;: 42, # Output only. The height of the video in pixels.
          &quot;width&quot;: 42, # Output only. The width of the video in pixels.
        },
        &quot;viewedByMe&quot;: True or False, # Output only. Whether the file has been viewed by this user.
        &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
        &quot;viewersCanCopyContent&quot;: True or False, # Deprecated: Use `copyRequiresWriterPermission` instead.
        &quot;webContentLink&quot;: &quot;A String&quot;, # Output only. A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
        &quot;webViewLink&quot;: &quot;A String&quot;, # Output only. A link for opening the file in a relevant Google editor or viewer in a browser.
        &quot;writersCanShare&quot;: True or False, # Whether users with only `writer` permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
      },
      &quot;fileId&quot;: &quot;A String&quot;, # The ID of the file which has changed.
      &quot;kind&quot;: &quot;drive#change&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;drive#change&quot;`.
      &quot;removed&quot;: True or False, # Whether the file or shared drive has been removed from this list of changes, for example by deletion or loss of access.
      &quot;teamDrive&quot;: { # Deprecated: use the drive collection instead. # Deprecated: Use `drive` instead.
        &quot;backgroundImageFile&quot;: { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on `drive.teamdrives.update` requests that don&#x27;t set `themeId`. When specified, all fields of the `backgroundImageFile` must be set.
          &quot;id&quot;: &quot;A String&quot;, # The ID of an image file in Drive to use for the background image.
          &quot;width&quot;: 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
          &quot;xCoordinate&quot;: 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
          &quot;yCoordinate&quot;: 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
        },
        &quot;backgroundImageLink&quot;: &quot;A String&quot;, # A short-lived link to this Team Drive&#x27;s background image.
        &quot;capabilities&quot;: { # Capabilities the current user has on this Team Drive.
          &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to folders in this Team Drive.
          &quot;canChangeCopyRequiresWriterPermissionRestriction&quot;: True or False, # Whether the current user can change the `copyRequiresWriterPermission` restriction of this Team Drive.
          &quot;canChangeDomainUsersOnlyRestriction&quot;: True or False, # Whether the current user can change the `domainUsersOnly` restriction of this Team Drive.
          &quot;canChangeSharingFoldersRequiresOrganizerPermissionRestriction&quot;: True or False, # Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this Team Drive.
          &quot;canChangeTeamDriveBackground&quot;: True or False, # Whether the current user can change the background of this Team Drive.
          &quot;canChangeTeamMembersOnlyRestriction&quot;: True or False, # Whether the current user can change the `teamMembersOnly` restriction of this Team Drive.
          &quot;canComment&quot;: True or False, # Whether the current user can comment on files in this Team Drive.
          &quot;canCopy&quot;: True or False, # Whether the current user can copy files in this Team Drive.
          &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children from folders in this Team Drive.
          &quot;canDeleteTeamDrive&quot;: True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
          &quot;canDownload&quot;: True or False, # Whether the current user can download files in this Team Drive.
          &quot;canEdit&quot;: True or False, # Whether the current user can edit files in this Team Drive
          &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of folders in this Team Drive.
          &quot;canManageMembers&quot;: True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
          &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
          &quot;canRemoveChildren&quot;: True or False, # Deprecated: Use `canDeleteChildren` or `canTrashChildren` instead.
          &quot;canRename&quot;: True or False, # Whether the current user can rename files or folders in this Team Drive.
          &quot;canRenameTeamDrive&quot;: True or False, # Whether the current user can rename this Team Drive.
          &quot;canResetTeamDriveRestrictions&quot;: True or False, # Whether the current user can reset the Team Drive restrictions to defaults.
          &quot;canShare&quot;: True or False, # Whether the current user can share files or folders in this Team Drive.
          &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children from folders in this Team Drive.
        },
        &quot;colorRgb&quot;: &quot;A String&quot;, # The color of this Team Drive as an RGB hex string. It can only be set on a `drive.teamdrives.update` request that does not set `themeId`.
        &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the Team Drive was created (RFC 3339 date-time).
        &quot;id&quot;: &quot;A String&quot;, # The ID of this Team Drive which is also the ID of the top level folder of this Team Drive.
        &quot;kind&quot;: &quot;drive#teamDrive&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;drive#teamDrive&quot;`.
        &quot;name&quot;: &quot;A String&quot;, # The name of this Team Drive.
        &quot;orgUnitId&quot;: &quot;A String&quot;, # The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.
        &quot;restrictions&quot;: { # A set of restrictions that apply to this Team Drive or items inside this Team Drive.
          &quot;adminManagedRestrictions&quot;: True or False, # Whether administrative privileges on this Team Drive are required to modify restrictions.
          &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download files inside this Team Drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this Team Drive.
          &quot;domainUsersOnly&quot;: True or False, # Whether access to this Team Drive and items inside this Team Drive is restricted to users of the domain to which this Team Drive belongs. This restriction may be overridden by other sharing policies controlled outside of this Team Drive.
          &quot;sharingFoldersRequiresOrganizerPermission&quot;: True or False, # If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.
          &quot;teamMembersOnly&quot;: True or False, # Whether access to items inside this Team Drive is restricted to members of this Team Drive.
        },
        &quot;themeId&quot;: &quot;A String&quot;, # The ID of the theme from which the background image and color will be set. The set of possible `teamDriveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.teamdrives.create` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don&#x27;t set `colorRgb` or `backgroundImageFile`.
      },
      &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated: Use `driveId` instead.
      &quot;time&quot;: &quot;A String&quot;, # The time of this change (RFC 3339 date-time).
      &quot;type&quot;: &quot;A String&quot;, # Deprecated: Use `changeType` instead.
    },
  ],
  &quot;kind&quot;: &quot;drive#changeList&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;drive#changeList&quot;`.
  &quot;newStartPageToken&quot;: &quot;A String&quot;, # The starting page token for future changes. This will be present only if the end of the current changes list has been reached. The page token doesn&#x27;t expire.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The page token for the next page of changes. This will be absent if the end of the changes list has been reached. The page token doesn&#x27;t expire.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>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 &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="watch">watch(pageToken, body=None, driveId=None, includeCorpusRemovals=None, includeItemsFromAllDrives=None, includeLabels=None, includePermissionsForView=None, includeRemoved=None, includeTeamDriveItems=None, pageSize=None, restrictToMyDrive=None, spaces=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None, x__xgafv=None)</code>
  <pre>Subscribes to changes for a user.

Args:
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of &#x27;nextPageToken&#x27; from the previous response or to the response from the getStartPageToken method. (required)
  body: object, The request body.
    The object takes the form of:

{ # A notification channel used to watch for resource changes.
  &quot;address&quot;: &quot;A String&quot;, # The address where notifications are delivered for this channel.
  &quot;expiration&quot;: &quot;A String&quot;, # Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.
  &quot;id&quot;: &quot;A String&quot;, # A UUID or similar unique string that identifies this channel.
  &quot;kind&quot;: &quot;api#channel&quot;, # Identifies this as a notification channel used to watch for changes to a resource, which is `api#channel`.
  &quot;params&quot;: { # Additional parameters controlling delivery channel behavior. Optional.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;payload&quot;: True or False, # A Boolean value to indicate whether payload is wanted. Optional.
  &quot;resourceId&quot;: &quot;A String&quot;, # An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.
  &quot;resourceUri&quot;: &quot;A String&quot;, # A version-specific identifier for the watched resource.
  &quot;token&quot;: &quot;A String&quot;, # An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.
  &quot;type&quot;: &quot;A String&quot;, # The type of delivery mechanism used for this channel.
}

  driveId: string, The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.
  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
  includeItemsFromAllDrives: boolean, Whether both My Drive and shared drive items should be included in results.
  includeLabels: string, A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.
  includePermissionsForView: string, Specifies which additional view&#x27;s permissions to include in the response. Only &#x27;published&#x27; is supported.
  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
  includeTeamDriveItems: boolean, Deprecated: Use `includeItemsFromAllDrives` instead.
  pageSize: integer, The maximum number of changes to return per page.
  restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
  spaces: string, A comma-separated list of spaces to query within the corpora. Supported values are &#x27;drive&#x27; and &#x27;appDataFolder&#x27;.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated: Use `supportsAllDrives` instead.
  teamDriveId: string, Deprecated: Use `driveId` instead.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A notification channel used to watch for resource changes.
  &quot;address&quot;: &quot;A String&quot;, # The address where notifications are delivered for this channel.
  &quot;expiration&quot;: &quot;A String&quot;, # Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.
  &quot;id&quot;: &quot;A String&quot;, # A UUID or similar unique string that identifies this channel.
  &quot;kind&quot;: &quot;api#channel&quot;, # Identifies this as a notification channel used to watch for changes to a resource, which is `api#channel`.
  &quot;params&quot;: { # Additional parameters controlling delivery channel behavior. Optional.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;payload&quot;: True or False, # A Boolean value to indicate whether payload is wanted. Optional.
  &quot;resourceId&quot;: &quot;A String&quot;, # An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.
  &quot;resourceUri&quot;: &quot;A String&quot;, # A version-specific identifier for the watched resource.
  &quot;token&quot;: &quot;A String&quot;, # An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.
  &quot;type&quot;: &quot;A String&quot;, # The type of delivery mechanism used for this channel.
}</pre>
</div>

</body></html>