<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_v2.html">Drive API</a> . <a href="drive_v2.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="#get">get(changeId, driveId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None)</a></code></p>
<p class="firstline">Deprecated - Use changes.getStartPageToken and changes.list to retrieve recent changes.</p>
<p class="toc_element">
  <code><a href="#getStartPageToken">getStartPageToken(driveId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=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(driveId=None, includeCorpusRemovals=None, includeDeleted=None, includeItemsFromAllDrives=None, includePermissionsForView=None, includeSubscribed=None, includeTeamDriveItems=None, maxResults=None, pageToken=None, spaces=None, startChangeId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=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(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#watch">watch(body=None, driveId=None, includeCorpusRemovals=None, includeDeleted=None, includeItemsFromAllDrives=None, includePermissionsForView=None, includeSubscribed=None, includeTeamDriveItems=None, maxResults=None, pageToken=None, spaces=None, startChangeId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None)</a></code></p>
<p class="firstline">Subscribe 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="get">get(changeId, driveId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None)</code>
  <pre>Deprecated - Use changes.getStartPageToken and changes.list to retrieve recent changes.

Args:
  changeId: string, The ID of the change. (required)
  driveId: string, The shared drive from which the change is 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.

Returns:
  An object of the form:

    { # Representation of 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;deleted&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;drive&quot;: { # Representation of 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;, # A short-lived link to this shared drive&#x27;s background image.
      &quot;capabilities&quot;: { # Capabilities the current user has on this shared drive.
        &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to folders in this shared drive.
        &quot;canChangeCopyRequiresWriterPermissionRestriction&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive.
        &quot;canChangeDomainUsersOnlyRestriction&quot;: True or False, # Whether the current user can change the domainUsersOnly restriction of this shared drive.
        &quot;canChangeDriveBackground&quot;: True or False, # Whether the current user can change the background of this shared drive.
        &quot;canChangeDriveMembersOnlyRestriction&quot;: True or False, # Whether the current user can change the driveMembersOnly restriction of this shared drive.
        &quot;canComment&quot;: True or False, # Whether the current user can comment on files in this shared drive.
        &quot;canCopy&quot;: True or False, # Whether the current user can copy files in this shared drive.
        &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children from folders in this shared drive.
        &quot;canDeleteDrive&quot;: True or False, # 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, # Whether the current user can download files in this shared drive.
        &quot;canEdit&quot;: True or False, # Whether the current user can edit files in this shared drive
        &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of folders in this shared drive.
        &quot;canManageMembers&quot;: True or False, # Whether the current user can add members to this shared 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 shared drive.
        &quot;canRename&quot;: True or False, # Whether the current user can rename files or folders in this shared drive.
        &quot;canRenameDrive&quot;: True or False, # Whether the current user can rename this shared drive.
        &quot;canShare&quot;: True or False, # Whether the current user can share files or folders in this shared drive.
        &quot;canTrashChildren&quot;: True or False, # 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;createdDate&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;, # 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;, # This is always drive#drive
      &quot;name&quot;: &quot;A String&quot;, # The name of this shared drive.
      &quot;restrictions&quot;: { # A set of restrictions that apply to this shared drive or items inside this shared drive.
        &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;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.insert 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. # 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;alternateLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer.
      &quot;appDataContents&quot;: True or False, # Whether this file is in the Application Data folder.
      &quot;canComment&quot;: True or False, # Deprecated: use capabilities/canComment.
      &quot;canReadRevisions&quot;: True or False, # Deprecated: use capabilities/canReadRevisions.
      &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
        &quot;canAddChildren&quot;: True or False, # 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, # 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, # 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, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
        &quot;canChangeRestrictedDownload&quot;: True or False, # Deprecated
        &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
        &quot;canCopy&quot;: True or False, # 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, # Whether the current user can delete this file.
        &quot;canDeleteChildren&quot;: True or False, # 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, # Whether the current user can download this file.
        &quot;canEdit&quot;: True or False, # 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, # 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, # Whether the current user can modify the content of this file.
        &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
        &quot;canMoveChildrenOutOfDrive&quot;: True or False, # 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 - use canMoveChildrenOutOfDrive instead.
        &quot;canMoveChildrenWithinDrive&quot;: True or False, # 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 - use canMoveChildrenWithinDrive instead.
        &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
        &quot;canMoveItemOutOfDrive&quot;: True or False, # 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 - use canMoveItemOutOfDrive instead.
        &quot;canMoveItemWithinDrive&quot;: True or False, # 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 - use canMoveItemWithinDrive instead.
        &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
        &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
        &quot;canReadRevisions&quot;: True or False, # 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 - use canReadDrive instead.
        &quot;canRemoveChildren&quot;: True or False, # 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;canRemoveMyDriveParent&quot;: True or False, # 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, # Whether the current user can rename this file.
        &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
        &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
        &quot;canTrashChildren&quot;: True or False, # 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, # Whether the current user can restore this file from trash.
      },
      &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;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. # The user who set the content restriction. Only populated if readOnly is true.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
            &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
            &quot;picture&quot;: { # The user&#x27;s profile picture.
              &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
            },
          },
          &quot;restrictionDate&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;type&quot;: &quot;A String&quot;, # 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;copyable&quot;: True or False, # Deprecated: use capabilities/canCopy.
      &quot;createdDate&quot;: &quot;A String&quot;, # Create time for this file (formatted RFC 3339 timestamp).
      &quot;defaultOpenWithLink&quot;: &quot;A String&quot;, # A link to open this file with the user&#x27;s default app for this file. Only populated when the drive.apps.readonly scope is used.
      &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
      &quot;downloadUrl&quot;: &quot;A String&quot;, # Short lived download URL for the file. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
      &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
      &quot;editable&quot;: True or False, # Deprecated: use capabilities/canEdit.
      &quot;embedLink&quot;: &quot;A String&quot;, # A link for embedding the file.
      &quot;etag&quot;: &quot;A String&quot;, # ETag of the file.
      &quot;explicitlyTrashed&quot;: True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
      &quot;exportLinks&quot;: { # Links for exporting Docs Editors files to specific formats.
        &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
      },
      &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
      &quot;fileSize&quot;: &quot;A String&quot;, # The size of the file in bytes. This field is populated for files with content stored in Google Drive and for files in Docs Editors; it is not populated for shortcut files.
      &quot;folderColorRgb&quot;: &quot;A String&quot;, # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for items in shared drives.
      &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
      &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
      &quot;hasThumbnail&quot;: True or False, # 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;, # The ID of the file&#x27;s head revision. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
      &quot;iconLink&quot;: &quot;A String&quot;, # A link to the file&#x27;s icon.
      &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
      &quot;imageMediaMetadata&quot;: { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
        &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
        &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
        &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
        &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
        &quot;date&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF format timestamp).
        &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
        &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
        &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
        &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
        &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
        &quot;height&quot;: 42, # The height of the image in pixels.
        &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
        &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
        &quot;location&quot;: { # Geographic location information stored in the image.
          &quot;altitude&quot;: 3.14, # The altitude stored in the image.
          &quot;latitude&quot;: 3.14, # The latitude stored in the image.
          &quot;longitude&quot;: 3.14, # The longitude stored in the image.
        },
        &quot;maxApertureValue&quot;: 3.14, # 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;, # The metering mode used to create the photo.
        &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
        &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
        &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
        &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
        &quot;width&quot;: 42, # The width of the image in pixels.
      },
      &quot;indexableText&quot;: { # Indexable text attributes for the file (can only be written)
        &quot;text&quot;: &quot;A String&quot;, # The text to be indexed for this file.
      },
      &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
      &quot;kind&quot;: &quot;drive#file&quot;, # The type of file. This is always drive#file.
      &quot;labels&quot;: { # A group of labels for the file.
        &quot;hidden&quot;: True or False, # Deprecated.
        &quot;modified&quot;: True or False, # Whether the file has been modified by this user.
        &quot;restricted&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
        &quot;starred&quot;: True or False, # Whether this file is starred by the user.
        &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. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
        &quot;viewed&quot;: True or False, # Whether this file has been viewed by this user.
      },
      &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify this file.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
        &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
        &quot;picture&quot;: { # The user&#x27;s profile picture.
          &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
        },
      },
      &quot;lastModifyingUserName&quot;: &quot;A String&quot;, # Name of the last user to modify this file.
      &quot;lastViewedByMeDate&quot;: &quot;A String&quot;, # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
      &quot;markedViewedByMeDate&quot;: &quot;A String&quot;, # Deprecated.
      &quot;md5Checksum&quot;: &quot;A String&quot;, # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
      &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content&#x27;s MIME type.
      &quot;modifiedByMeDate&quot;: &quot;A String&quot;, # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
      &quot;modifiedDate&quot;: &quot;A String&quot;, # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
      &quot;openWithLinks&quot;: { # A map of the id of each of the user&#x27;s apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;originalFilename&quot;: &quot;A String&quot;, # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Google Drive.
      &quot;ownedByMe&quot;: True or False, # Whether the file is owned by the current user. Not populated for items in shared drives.
      &quot;ownerNames&quot;: [ # Name(s) of the owner(s) of this file. Not populated for items in shared drives.
        &quot;A String&quot;,
      ],
      &quot;owners&quot;: [ # The owner(s) of this file. Not populated for items in shared drives.
        { # Information about a Drive user.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
          &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
          &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
          &quot;picture&quot;: { # The user&#x27;s profile picture.
            &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
          },
        },
      ],
      &quot;parents&quot;: [ # Collection of parent folders which contain this file.
          # If not specified as part of an insert request, the file will be placed directly in the user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests can also use the addParents and removeParents parameters to modify the parents list.
        { # A reference to a file&#x27;s parent.
          &quot;id&quot;: &quot;A String&quot;, # The ID of the parent.
          &quot;isRoot&quot;: True or False, # Whether or not the parent is the root folder.
          &quot;kind&quot;: &quot;drive#parentReference&quot;, # This is always drive#parentReference.
          &quot;parentLink&quot;: &quot;A String&quot;, # A link to the parent.
          &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this reference.
        },
      ],
      &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
        &quot;A String&quot;,
      ],
      &quot;permissions&quot;: [ # The list of permissions for users with access to this file. Not populated for items in shared drives.
        { # A permission for a file.
          &quot;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
            &quot;A String&quot;,
          ],
          &quot;authKey&quot;: &quot;A String&quot;, # Deprecated.
          &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
          &quot;domain&quot;: &quot;A String&quot;, # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
          &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
          &quot;etag&quot;: &quot;A String&quot;, # The ETag of the permission.
          &quot;expirationDate&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
              # - They cannot be set on shared drive items
              # - They can only be set on user and group permissions
              # - The date must be in the future
              # - The date cannot be more than a year in the future
              # - The date can only be set on drive.permissions.update or drive.permissions.patch requests
          &quot;id&quot;: &quot;A String&quot;, # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
          &quot;kind&quot;: &quot;drive#permission&quot;, # This is always drive#permission.
          &quot;name&quot;: &quot;A String&quot;, # The name for this permission.
          &quot;permissionDetails&quot;: [ # 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;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
                &quot;A String&quot;,
              ],
              &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
              &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
              &quot;permissionType&quot;: &quot;A String&quot;, # 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;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                  # - organizer
                  # - fileOrganizer
                  # - writer
                  # - reader
            },
          ],
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the profile photo, if available.
          &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
              # - owner
              # - organizer
              # - fileOrganizer
              # - writer
              # - reader
          &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this permission.
          &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
            {
              &quot;additionalRoles&quot;: [ # Deprecated - use permissionDetails/additionalRoles instead.
                &quot;A String&quot;,
              ],
              &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
              &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
              &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
              &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
            },
          ],
          &quot;type&quot;: &quot;A String&quot;, # The account type. Allowed values are:
              # - user
              # - group
              # - domain
              # - anyone
          &quot;value&quot;: &quot;A String&quot;, # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
          &quot;view&quot;: &quot;A String&quot;, # Indicates the view for this permission. Only populated for permissions that belong to a view. published is the only supported value.
          &quot;withLink&quot;: True or False, # Whether the link is required for this permission.
        },
      ],
      &quot;properties&quot;: [ # The list of properties.
        { # A key-value pair attached to a file that is either public or private to an application.
            # The following limits apply to file properties:
            # - Maximum of 100 properties total per file
            # - Maximum of 30 private properties per app
            # - Maximum of 30 public properties
            # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
          &quot;etag&quot;: &quot;A String&quot;, # ETag of the property.
          &quot;key&quot;: &quot;A String&quot;, # The key of this property.
          &quot;kind&quot;: &quot;drive#property&quot;, # This is always drive#property.
          &quot;selfLink&quot;: &quot;A String&quot;, # The link back to this property.
          &quot;value&quot;: &quot;A String&quot;, # The value of this property.
          &quot;visibility&quot;: &quot;A String&quot;, # The visibility of this property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)
        },
      ],
      &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of quota bytes used by this file.
      &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this file.
      &quot;shareable&quot;: True or False, # Deprecated: use capabilities/canShare.
      &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
      &quot;sharedWithMeDate&quot;: &quot;A String&quot;, # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
      &quot;sharingUser&quot;: { # Information about a Drive user. # User that shared the item with the current user, if available.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
        &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
        &quot;picture&quot;: { # The user&#x27;s profile picture.
          &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
        },
      },
      &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;, # 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;spaces&quot;: [ # The list of spaces which contain the file. Supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
        &quot;A String&quot;,
      ],
      &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
      &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if a standard thumbnail cannot be generated.
        &quot;image&quot;: &quot;A String&quot;, # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
      },
      &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail. 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;, # The thumbnail version for use in thumbnail cache invalidation.
      &quot;title&quot;: &quot;A String&quot;, # The title of this file. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the title is constant.
      &quot;trashedDate&quot;: &quot;A String&quot;, # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for items in shared drives.
      &quot;trashingUser&quot;: { # Information about a Drive user. # 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;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
        &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
        &quot;picture&quot;: { # The user&#x27;s profile picture.
          &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
        },
      },
      &quot;userPermission&quot;: { # A permission for a file. # The permissions for the authenticated user on this file.
        &quot;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
          &quot;A String&quot;,
        ],
        &quot;authKey&quot;: &quot;A String&quot;, # Deprecated.
        &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        &quot;domain&quot;: &quot;A String&quot;, # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        &quot;etag&quot;: &quot;A String&quot;, # The ETag of the permission.
        &quot;expirationDate&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
            # - They cannot be set on shared drive items
            # - They can only be set on user and group permissions
            # - The date must be in the future
            # - The date cannot be more than a year in the future
            # - The date can only be set on drive.permissions.update or drive.permissions.patch requests
        &quot;id&quot;: &quot;A String&quot;, # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
        &quot;kind&quot;: &quot;drive#permission&quot;, # This is always drive#permission.
        &quot;name&quot;: &quot;A String&quot;, # The name for this permission.
        &quot;permissionDetails&quot;: [ # 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;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
              &quot;A String&quot;,
            ],
            &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
            &quot;permissionType&quot;: &quot;A String&quot;, # 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;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                # - organizer
                # - fileOrganizer
                # - writer
                # - reader
          },
        ],
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the profile photo, if available.
        &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
            # - owner
            # - organizer
            # - fileOrganizer
            # - writer
            # - reader
        &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this permission.
        &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
          {
            &quot;additionalRoles&quot;: [ # Deprecated - use permissionDetails/additionalRoles instead.
              &quot;A String&quot;,
            ],
            &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
            &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
            &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
          },
        ],
        &quot;type&quot;: &quot;A String&quot;, # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        &quot;value&quot;: &quot;A String&quot;, # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
        &quot;view&quot;: &quot;A String&quot;, # Indicates the view for this permission. Only populated for permissions that belong to a view. published is the only supported value.
        &quot;withLink&quot;: True or False, # Whether the link is required for this permission.
      },
      &quot;version&quot;: &quot;A String&quot;, # 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 requesting user.
      &quot;videoMediaMetadata&quot;: { # Metadata about video media. This will only be present for video types.
        &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
        &quot;height&quot;: 42, # The height of the video in pixels.
        &quot;width&quot;: 42, # The width of the video in pixels.
      },
      &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
      &quot;webViewLink&quot;: &quot;A String&quot;, # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive&#x27;s Website Hosting.
      &quot;writersCanShare&quot;: True or False, # Whether writers can share the document with other users. Not populated for items in shared drives.
    },
    &quot;fileId&quot;: &quot;A String&quot;, # The ID of the file associated with this change.
    &quot;id&quot;: &quot;A String&quot;, # The ID of the change.
    &quot;kind&quot;: &quot;drive#change&quot;, # This is always drive#change.
    &quot;modificationDate&quot;: &quot;A String&quot;, # The time of this modification.
    &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this change.
    &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;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;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;createdDate&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;, # This is always drive#teamDrive
      &quot;name&quot;: &quot;A String&quot;, # The name of this Team Drive.
      &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;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.insert 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;type&quot;: &quot;A String&quot;, # Deprecated - use changeType instead.
  }</pre>
</div>

<div class="method">
    <code class="details" id="getStartPageToken">getStartPageToken(driveId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=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 is 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.

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 changes.
  }</pre>
</div>

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

Args:
  driveId: string, The shared drive from which changes are 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.
  includeDeleted: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
  includeItemsFromAllDrives: boolean, Whether both My Drive and shared drive items should be included in results.
  includePermissionsForView: string, Specifies which additional view&#x27;s permissions to include in the response. Only &#x27;published&#x27; is supported.
  includeSubscribed: boolean, Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive are omitted from the result.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives instead.
  maxResults: integer, Maximum number of changes to return.
  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.
  spaces: string, A comma-separated list of spaces to query. Supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
  startChangeId: string, Deprecated - use pageToken instead.
  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.

Returns:
  An object of the form:

    { # A list of changes for a user.
    &quot;etag&quot;: &quot;A String&quot;, # The ETag of the list.
    &quot;items&quot;: [ # The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
      { # Representation of 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;deleted&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;drive&quot;: { # Representation of 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;, # A short-lived link to this shared drive&#x27;s background image.
          &quot;capabilities&quot;: { # Capabilities the current user has on this shared drive.
            &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to folders in this shared drive.
            &quot;canChangeCopyRequiresWriterPermissionRestriction&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive.
            &quot;canChangeDomainUsersOnlyRestriction&quot;: True or False, # Whether the current user can change the domainUsersOnly restriction of this shared drive.
            &quot;canChangeDriveBackground&quot;: True or False, # Whether the current user can change the background of this shared drive.
            &quot;canChangeDriveMembersOnlyRestriction&quot;: True or False, # Whether the current user can change the driveMembersOnly restriction of this shared drive.
            &quot;canComment&quot;: True or False, # Whether the current user can comment on files in this shared drive.
            &quot;canCopy&quot;: True or False, # Whether the current user can copy files in this shared drive.
            &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children from folders in this shared drive.
            &quot;canDeleteDrive&quot;: True or False, # 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, # Whether the current user can download files in this shared drive.
            &quot;canEdit&quot;: True or False, # Whether the current user can edit files in this shared drive
            &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of folders in this shared drive.
            &quot;canManageMembers&quot;: True or False, # Whether the current user can add members to this shared 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 shared drive.
            &quot;canRename&quot;: True or False, # Whether the current user can rename files or folders in this shared drive.
            &quot;canRenameDrive&quot;: True or False, # Whether the current user can rename this shared drive.
            &quot;canShare&quot;: True or False, # Whether the current user can share files or folders in this shared drive.
            &quot;canTrashChildren&quot;: True or False, # 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;createdDate&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;, # 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;, # This is always drive#drive
          &quot;name&quot;: &quot;A String&quot;, # The name of this shared drive.
          &quot;restrictions&quot;: { # A set of restrictions that apply to this shared drive or items inside this shared drive.
            &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;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.insert 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. # 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;alternateLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer.
          &quot;appDataContents&quot;: True or False, # Whether this file is in the Application Data folder.
          &quot;canComment&quot;: True or False, # Deprecated: use capabilities/canComment.
          &quot;canReadRevisions&quot;: True or False, # Deprecated: use capabilities/canReadRevisions.
          &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
            &quot;canAddChildren&quot;: True or False, # 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, # 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, # 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, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
            &quot;canChangeRestrictedDownload&quot;: True or False, # Deprecated
            &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
            &quot;canCopy&quot;: True or False, # 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, # Whether the current user can delete this file.
            &quot;canDeleteChildren&quot;: True or False, # 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, # Whether the current user can download this file.
            &quot;canEdit&quot;: True or False, # 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, # 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, # Whether the current user can modify the content of this file.
            &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
            &quot;canMoveChildrenOutOfDrive&quot;: True or False, # 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 - use canMoveChildrenOutOfDrive instead.
            &quot;canMoveChildrenWithinDrive&quot;: True or False, # 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 - use canMoveChildrenWithinDrive instead.
            &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
            &quot;canMoveItemOutOfDrive&quot;: True or False, # 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 - use canMoveItemOutOfDrive instead.
            &quot;canMoveItemWithinDrive&quot;: True or False, # 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 - use canMoveItemWithinDrive instead.
            &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
            &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
            &quot;canReadRevisions&quot;: True or False, # 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 - use canReadDrive instead.
            &quot;canRemoveChildren&quot;: True or False, # 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;canRemoveMyDriveParent&quot;: True or False, # 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, # Whether the current user can rename this file.
            &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
            &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
            &quot;canTrashChildren&quot;: True or False, # 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, # Whether the current user can restore this file from trash.
          },
          &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;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. # The user who set the content restriction. Only populated if readOnly is true.
                &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
                &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
                &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
                &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
                &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
                &quot;picture&quot;: { # The user&#x27;s profile picture.
                  &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
                },
              },
              &quot;restrictionDate&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;type&quot;: &quot;A String&quot;, # 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;copyable&quot;: True or False, # Deprecated: use capabilities/canCopy.
          &quot;createdDate&quot;: &quot;A String&quot;, # Create time for this file (formatted RFC 3339 timestamp).
          &quot;defaultOpenWithLink&quot;: &quot;A String&quot;, # A link to open this file with the user&#x27;s default app for this file. Only populated when the drive.apps.readonly scope is used.
          &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
          &quot;downloadUrl&quot;: &quot;A String&quot;, # Short lived download URL for the file. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
          &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
          &quot;editable&quot;: True or False, # Deprecated: use capabilities/canEdit.
          &quot;embedLink&quot;: &quot;A String&quot;, # A link for embedding the file.
          &quot;etag&quot;: &quot;A String&quot;, # ETag of the file.
          &quot;explicitlyTrashed&quot;: True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
          &quot;exportLinks&quot;: { # Links for exporting Docs Editors files to specific formats.
            &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
          },
          &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
          &quot;fileSize&quot;: &quot;A String&quot;, # The size of the file in bytes. This field is populated for files with content stored in Google Drive and for files in Docs Editors; it is not populated for shortcut files.
          &quot;folderColorRgb&quot;: &quot;A String&quot;, # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for items in shared drives.
          &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
          &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
          &quot;hasThumbnail&quot;: True or False, # 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;, # The ID of the file&#x27;s head revision. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
          &quot;iconLink&quot;: &quot;A String&quot;, # A link to the file&#x27;s icon.
          &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
          &quot;imageMediaMetadata&quot;: { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
            &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
            &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
            &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
            &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
            &quot;date&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF format timestamp).
            &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
            &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
            &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
            &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
            &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
            &quot;height&quot;: 42, # The height of the image in pixels.
            &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
            &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
            &quot;location&quot;: { # Geographic location information stored in the image.
              &quot;altitude&quot;: 3.14, # The altitude stored in the image.
              &quot;latitude&quot;: 3.14, # The latitude stored in the image.
              &quot;longitude&quot;: 3.14, # The longitude stored in the image.
            },
            &quot;maxApertureValue&quot;: 3.14, # 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;, # The metering mode used to create the photo.
            &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
            &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
            &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
            &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
            &quot;width&quot;: 42, # The width of the image in pixels.
          },
          &quot;indexableText&quot;: { # Indexable text attributes for the file (can only be written)
            &quot;text&quot;: &quot;A String&quot;, # The text to be indexed for this file.
          },
          &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
          &quot;kind&quot;: &quot;drive#file&quot;, # The type of file. This is always drive#file.
          &quot;labels&quot;: { # A group of labels for the file.
            &quot;hidden&quot;: True or False, # Deprecated.
            &quot;modified&quot;: True or False, # Whether the file has been modified by this user.
            &quot;restricted&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
            &quot;starred&quot;: True or False, # Whether this file is starred by the user.
            &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. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
            &quot;viewed&quot;: True or False, # Whether this file has been viewed by this user.
          },
          &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify this file.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
            &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
            &quot;picture&quot;: { # The user&#x27;s profile picture.
              &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
            },
          },
          &quot;lastModifyingUserName&quot;: &quot;A String&quot;, # Name of the last user to modify this file.
          &quot;lastViewedByMeDate&quot;: &quot;A String&quot;, # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
          &quot;markedViewedByMeDate&quot;: &quot;A String&quot;, # Deprecated.
          &quot;md5Checksum&quot;: &quot;A String&quot;, # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.
          &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content&#x27;s MIME type.
          &quot;modifiedByMeDate&quot;: &quot;A String&quot;, # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
          &quot;modifiedDate&quot;: &quot;A String&quot;, # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
          &quot;openWithLinks&quot;: { # A map of the id of each of the user&#x27;s apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;originalFilename&quot;: &quot;A String&quot;, # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Google Drive.
          &quot;ownedByMe&quot;: True or False, # Whether the file is owned by the current user. Not populated for items in shared drives.
          &quot;ownerNames&quot;: [ # Name(s) of the owner(s) of this file. Not populated for items in shared drives.
            &quot;A String&quot;,
          ],
          &quot;owners&quot;: [ # The owner(s) of this file. Not populated for items in shared drives.
            { # Information about a Drive user.
              &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
              &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
              &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
              &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
              &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
              &quot;picture&quot;: { # The user&#x27;s profile picture.
                &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
              },
            },
          ],
          &quot;parents&quot;: [ # Collection of parent folders which contain this file.
              # If not specified as part of an insert request, the file will be placed directly in the user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests can also use the addParents and removeParents parameters to modify the parents list.
            { # A reference to a file&#x27;s parent.
              &quot;id&quot;: &quot;A String&quot;, # The ID of the parent.
              &quot;isRoot&quot;: True or False, # Whether or not the parent is the root folder.
              &quot;kind&quot;: &quot;drive#parentReference&quot;, # This is always drive#parentReference.
              &quot;parentLink&quot;: &quot;A String&quot;, # A link to the parent.
              &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this reference.
            },
          ],
          &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
            &quot;A String&quot;,
          ],
          &quot;permissions&quot;: [ # The list of permissions for users with access to this file. Not populated for items in shared drives.
            { # A permission for a file.
              &quot;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
                &quot;A String&quot;,
              ],
              &quot;authKey&quot;: &quot;A String&quot;, # Deprecated.
              &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
              &quot;domain&quot;: &quot;A String&quot;, # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
              &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
              &quot;etag&quot;: &quot;A String&quot;, # The ETag of the permission.
              &quot;expirationDate&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
                  # - They cannot be set on shared drive items
                  # - They can only be set on user and group permissions
                  # - The date must be in the future
                  # - The date cannot be more than a year in the future
                  # - The date can only be set on drive.permissions.update or drive.permissions.patch requests
              &quot;id&quot;: &quot;A String&quot;, # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
              &quot;kind&quot;: &quot;drive#permission&quot;, # This is always drive#permission.
              &quot;name&quot;: &quot;A String&quot;, # The name for this permission.
              &quot;permissionDetails&quot;: [ # 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;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
                    &quot;A String&quot;,
                  ],
                  &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
                  &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
                  &quot;permissionType&quot;: &quot;A String&quot;, # 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;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                      # - organizer
                      # - fileOrganizer
                      # - writer
                      # - reader
                },
              ],
              &quot;photoLink&quot;: &quot;A String&quot;, # A link to the profile photo, if available.
              &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
                  # - owner
                  # - organizer
                  # - fileOrganizer
                  # - writer
                  # - reader
              &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this permission.
              &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
                {
                  &quot;additionalRoles&quot;: [ # Deprecated - use permissionDetails/additionalRoles instead.
                    &quot;A String&quot;,
                  ],
                  &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
                  &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
                  &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
                  &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
                },
              ],
              &quot;type&quot;: &quot;A String&quot;, # The account type. Allowed values are:
                  # - user
                  # - group
                  # - domain
                  # - anyone
              &quot;value&quot;: &quot;A String&quot;, # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
              &quot;view&quot;: &quot;A String&quot;, # Indicates the view for this permission. Only populated for permissions that belong to a view. published is the only supported value.
              &quot;withLink&quot;: True or False, # Whether the link is required for this permission.
            },
          ],
          &quot;properties&quot;: [ # The list of properties.
            { # A key-value pair attached to a file that is either public or private to an application.
                # The following limits apply to file properties:
                # - Maximum of 100 properties total per file
                # - Maximum of 30 private properties per app
                # - Maximum of 30 public properties
                # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
              &quot;etag&quot;: &quot;A String&quot;, # ETag of the property.
              &quot;key&quot;: &quot;A String&quot;, # The key of this property.
              &quot;kind&quot;: &quot;drive#property&quot;, # This is always drive#property.
              &quot;selfLink&quot;: &quot;A String&quot;, # The link back to this property.
              &quot;value&quot;: &quot;A String&quot;, # The value of this property.
              &quot;visibility&quot;: &quot;A String&quot;, # The visibility of this property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)
            },
          ],
          &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of quota bytes used by this file.
          &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this file.
          &quot;shareable&quot;: True or False, # Deprecated: use capabilities/canShare.
          &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
          &quot;sharedWithMeDate&quot;: &quot;A String&quot;, # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
          &quot;sharingUser&quot;: { # Information about a Drive user. # User that shared the item with the current user, if available.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
            &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
            &quot;picture&quot;: { # The user&#x27;s profile picture.
              &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
            },
          },
          &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;, # 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;spaces&quot;: [ # The list of spaces which contain the file. Supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
            &quot;A String&quot;,
          ],
          &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
          &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if a standard thumbnail cannot be generated.
            &quot;image&quot;: &quot;A String&quot;, # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
            &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
          },
          &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail. 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;, # The thumbnail version for use in thumbnail cache invalidation.
          &quot;title&quot;: &quot;A String&quot;, # The title of this file. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the title is constant.
          &quot;trashedDate&quot;: &quot;A String&quot;, # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for items in shared drives.
          &quot;trashingUser&quot;: { # Information about a Drive user. # 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;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user.
            &quot;isAuthenticatedUser&quot;: True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            &quot;kind&quot;: &quot;drive#user&quot;, # This is always drive#user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in the permissions collection.
            &quot;picture&quot;: { # The user&#x27;s profile picture.
              &quot;url&quot;: &quot;A String&quot;, # A URL that points to a profile picture of this user.
            },
          },
          &quot;userPermission&quot;: { # A permission for a file. # The permissions for the authenticated user on this file.
            &quot;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
              &quot;A String&quot;,
            ],
            &quot;authKey&quot;: &quot;A String&quot;, # Deprecated.
            &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
            &quot;domain&quot;: &quot;A String&quot;, # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
            &quot;etag&quot;: &quot;A String&quot;, # The ETag of the permission.
            &quot;expirationDate&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
                # - They cannot be set on shared drive items
                # - They can only be set on user and group permissions
                # - The date must be in the future
                # - The date cannot be more than a year in the future
                # - The date can only be set on drive.permissions.update or drive.permissions.patch requests
            &quot;id&quot;: &quot;A String&quot;, # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
            &quot;kind&quot;: &quot;drive#permission&quot;, # This is always drive#permission.
            &quot;name&quot;: &quot;A String&quot;, # The name for this permission.
            &quot;permissionDetails&quot;: [ # 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;additionalRoles&quot;: [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
                  &quot;A String&quot;,
                ],
                &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
                &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
                &quot;permissionType&quot;: &quot;A String&quot;, # 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;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                    # - organizer
                    # - fileOrganizer
                    # - writer
                    # - reader
              },
            ],
            &quot;photoLink&quot;: &quot;A String&quot;, # A link to the profile photo, if available.
            &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
                # - owner
                # - organizer
                # - fileOrganizer
                # - writer
                # - reader
            &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this permission.
            &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
              {
                &quot;additionalRoles&quot;: [ # Deprecated - use permissionDetails/additionalRoles instead.
                  &quot;A String&quot;,
                ],
                &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
                &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
                &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
                &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
              },
            ],
            &quot;type&quot;: &quot;A String&quot;, # The account type. Allowed values are:
                # - user
                # - group
                # - domain
                # - anyone
            &quot;value&quot;: &quot;A String&quot;, # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
            &quot;view&quot;: &quot;A String&quot;, # Indicates the view for this permission. Only populated for permissions that belong to a view. published is the only supported value.
            &quot;withLink&quot;: True or False, # Whether the link is required for this permission.
          },
          &quot;version&quot;: &quot;A String&quot;, # 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 requesting user.
          &quot;videoMediaMetadata&quot;: { # Metadata about video media. This will only be present for video types.
            &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
            &quot;height&quot;: 42, # The height of the video in pixels.
            &quot;width&quot;: 42, # The width of the video in pixels.
          },
          &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
          &quot;webViewLink&quot;: &quot;A String&quot;, # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive&#x27;s Website Hosting.
          &quot;writersCanShare&quot;: True or False, # Whether writers can share the document with other users. Not populated for items in shared drives.
        },
        &quot;fileId&quot;: &quot;A String&quot;, # The ID of the file associated with this change.
        &quot;id&quot;: &quot;A String&quot;, # The ID of the change.
        &quot;kind&quot;: &quot;drive#change&quot;, # This is always drive#change.
        &quot;modificationDate&quot;: &quot;A String&quot;, # The time of this modification.
        &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this change.
        &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;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;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;createdDate&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;, # This is always drive#teamDrive
          &quot;name&quot;: &quot;A String&quot;, # The name of this Team Drive.
          &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;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.insert 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;type&quot;: &quot;A String&quot;, # Deprecated - use changeType instead.
      },
    ],
    &quot;kind&quot;: &quot;drive#changeList&quot;, # This is always drive#changeList.
    &quot;largestChangeId&quot;: &quot;A String&quot;, # The current largest change ID.
    &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.
    &quot;nextLink&quot;: &quot;A String&quot;, # A link to the next page of changes.
    &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. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
    &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this list.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</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(body=None, driveId=None, includeCorpusRemovals=None, includeDeleted=None, includeItemsFromAllDrives=None, includePermissionsForView=None, includeSubscribed=None, includeTeamDriveItems=None, maxResults=None, pageToken=None, spaces=None, startChangeId=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None)</code>
  <pre>Subscribe to changes for a user.

Args:
  body: object, The request body.
    The object takes the form of:

{ # An 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 &quot;api#channel&quot;.
    &quot;params&quot;: { # Additional parameters controlling delivery channel behavior. Optional.
      &quot;a_key&quot;: &quot;A String&quot;, # Declares a new parameter by name.
    },
    &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 are 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.
  includeDeleted: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
  includeItemsFromAllDrives: boolean, Whether both My Drive and shared drive items should be included in results.
  includePermissionsForView: string, Specifies which additional view&#x27;s permissions to include in the response. Only &#x27;published&#x27; is supported.
  includeSubscribed: boolean, Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive are omitted from the result.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives instead.
  maxResults: integer, Maximum number of changes to return.
  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.
  spaces: string, A comma-separated list of spaces to query. Supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
  startChangeId: string, Deprecated - use pageToken instead.
  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.

Returns:
  An object of the form:

    { # An 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 &quot;api#channel&quot;.
      &quot;params&quot;: { # Additional parameters controlling delivery channel behavior. Optional.
        &quot;a_key&quot;: &quot;A String&quot;, # Declares a new parameter by name.
      },
      &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>