<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.changes.html">changes</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#getStartPageToken">getStartPageToken(driveId=None, supportsTeamDrives=None, supportsAllDrives=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(pageToken, pageSize=None, supportsTeamDrives=None, spaces=None, includeRemoved=None, restrictToMyDrive=None, includeTeamDriveItems=None, teamDriveId=None, includeItemsFromAllDrives=None, supportsAllDrives=None, driveId=None, includeCorpusRemovals=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(pageToken, body, pageSize=None, supportsTeamDrives=None, spaces=None, includeRemoved=None, restrictToMyDrive=None, includeTeamDriveItems=None, teamDriveId=None, includeItemsFromAllDrives=None, supportsAllDrives=None, driveId=None, includeCorpusRemovals=None)</a></code></p>
<p class="firstline">Subscribes to changes for a user.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="getStartPageToken">getStartPageToken(driveId=None, supportsTeamDrives=None, supportsAllDrives=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 will be returned.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  teamDriveId: string, Deprecated use driveId instead.

Returns:
  An object of the form:

    {
    "kind": "drive#startPageToken", # Identifies what kind of resource this is. Value: the fixed string "drive#startPageToken".
    "startPageToken": "A String", # The starting page token for listing changes.
  }</pre>
</div>

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

Args:
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method. (required)
  pageSize: integer, The maximum number of changes to return per page.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
  restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives instead.
  teamDriveId: string, Deprecated use driveId instead.
  includeItemsFromAllDrives: boolean, Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  driveId: string, The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.
  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.

Returns:
  An object of the form:

    { # A list of changes for a user.
    "nextPageToken": "A String", # 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.
    "kind": "drive#changeList", # Identifies what kind of resource this is. Value: the fixed string "drive#changeList".
    "changes": [ # The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
      { # A change to a file or shared drive.
        "teamDrive": { # Deprecated: use the drive collection instead. # Deprecated - use drive instead.
          "restrictions": { # A set of restrictions that apply to this Team Drive or items inside this Team Drive.
            "adminManagedRestrictions": True or False, # Whether administrative privileges on this Team Drive are required to modify restrictions.
            "copyRequiresWriterPermission": 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.
            "domainUsersOnly": 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.
            "teamMembersOnly": True or False, # Whether access to items inside this Team Drive is restricted to members of this Team Drive.
          },
          "colorRgb": "A String", # 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.
          "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
          "name": "A String", # The name of this Team Drive.
          "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.create request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
          "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
          "capabilities": { # Capabilities the current user has on this Team Drive.
            "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
            "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
            "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
            "canTrashChildren": True or False, # Whether the current user can trash children from folders in this Team Drive.
            "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
            "canChangeTeamMembersOnlyRestriction": True or False, # Whether the current user can change the teamMembersOnly restriction of this Team Drive.
            "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
            "canChangeCopyRequiresWriterPermissionRestriction": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this Team Drive.
            "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
            "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
            "canDownload": True or False, # Whether the current user can download files in this Team Drive.
            "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
            "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
            "canDeleteTeamDrive": 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.
            "canEdit": True or False, # Whether the current user can edit files in this Team Drive
            "canRemoveChildren": True or False, # Deprecated - use canDeleteChildren or canTrashChildren instead.
            "canDeleteChildren": True or False, # Whether the current user can delete children from folders in this Team Drive.
            "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
            "canChangeDomainUsersOnlyRestriction": True or False, # Whether the current user can change the domainUsersOnly restriction of this Team Drive.
          },
          "backgroundImageFile": { # 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't set themeId. When specified, all fields of the backgroundImageFile must be set.
            "width": 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.
            "yCoordinate": 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.
            "id": "A String", # The ID of an image file in Drive to use for the background image.
            "xCoordinate": 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.
          },
          "createdTime": "A String", # The time at which the Team Drive was created (RFC 3339 date-time).
          "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder of this Team Drive.
        },
        "kind": "drive#change", # Identifies what kind of resource this is. Value: the fixed string "drive#change".
        "changeType": "A String", # The type of the change. Possible values are file and drive.
        "drive": { # 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.
          "restrictions": { # A set of restrictions that apply to this shared drive or items inside this shared drive.
            "adminManagedRestrictions": True or False, # Whether administrative privileges on this shared drive are required to modify restrictions.
            "copyRequiresWriterPermission": 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.
            "domainUsersOnly": 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.
            "driveMembersOnly": True or False, # Whether access to items inside this shared drive is restricted to its members.
          },
          "colorRgb": "A String", # 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.
          "backgroundImageLink": "A String", # A short-lived link to this shared drive's background image.
          "name": "A String", # The name of this shared drive.
          "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible driveThemes can be retrieved from a drive.about.get response. When not specified on a drive.drives.create request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
          "kind": "drive#drive", # Identifies what kind of resource this is. Value: the fixed string "drive#drive".
          "capabilities": { # Capabilities the current user has on this shared drive.
            "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this shared drive.
            "canCopy": True or False, # Whether the current user can copy files in this shared drive.
            "canShare": True or False, # Whether the current user can share files or folders in this shared drive.
            "canTrashChildren": True or False, # Whether the current user can trash children from folders in this shared drive.
            "canListChildren": True or False, # Whether the current user can list the children of folders in this shared drive.
            "canDownload": True or False, # Whether the current user can download files in this shared drive.
            "canRename": True or False, # Whether the current user can rename files or folders in this shared drive.
            "canChangeCopyRequiresWriterPermissionRestriction": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive.
            "canDeleteDrive": 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.
            "canManageMembers": True or False, # Whether the current user can add members to this shared drive or remove them or change their role.
            "canChangeDriveMembersOnlyRestriction": True or False, # Whether the current user can change the driveMembersOnly restriction of this shared drive.
            "canComment": True or False, # Whether the current user can comment on files in this shared drive.
            "canChangeDriveBackground": True or False, # Whether the current user can change the background of this shared drive.
            "canEdit": True or False, # Whether the current user can edit files in this shared drive
            "canRenameDrive": True or False, # Whether the current user can rename this shared drive.
            "canDeleteChildren": True or False, # Whether the current user can delete children from folders in this shared drive.
            "canAddChildren": True or False, # Whether the current user can add children to folders in this shared drive.
            "canChangeDomainUsersOnlyRestriction": True or False, # Whether the current user can change the domainUsersOnly restriction of this shared drive.
          },
          "backgroundImageFile": { # 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't set themeId. When specified, all fields of the backgroundImageFile must be set.
            "width": 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.
            "yCoordinate": 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.
            "id": "A String", # The ID of an image file in Google Drive to use for the background image.
            "xCoordinate": 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.
          },
          "createdTime": "A String", # The time at which the shared drive was created (RFC 3339 date-time).
          "hidden": True or False, # Whether the shared drive is hidden from default view.
          "id": "A String", # The ID of this shared drive which is also the ID of the top level folder of this shared drive.
        },
        "driveId": "A String", # The ID of the shared drive associated with this change.
        "file": { # 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.
          "hasThumbnail": 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.
          "mimeType": "A String", # The MIME type of the file.
              # Google Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
              # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
          "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
          "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
          "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
          "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
          "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
          "teamDriveId": "A String", # Deprecated - use driveId instead.
          "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
          "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
          "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
          "id": "A String", # The ID of the file.
          "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
            "me": True or False, # Whether this user is the requesting user.
            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in Permission resources.
            "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            "photoLink": "A String", # A link to the user's profile photo, if available.
          },
          "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
          "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
            "width": 42, # The width of the video in pixels.
            "durationMillis": "A String", # The duration of the video in milliseconds.
            "height": 42, # The height of the video in pixels.
          },
          "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
            "me": True or False, # Whether this user is the requesting user.
            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in Permission resources.
            "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            "photoLink": "A String", # A link to the user's profile photo, if available.
          },
          "folderColorRgb": "A String", # The color for a folder as an RGB hex string. The supported colors are published in the folderColorPalette field of the About resource.
              # If an unsupported color is specified, the closest color in the palette will be used instead.
          "appProperties": { # A collection of arbitrary key-value pairs which are private to the requesting app.
              # Entries with null values are cleared in update and copy requests.
            "a_key": "A String",
          },
          "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
            "canMoveItemOutOfDrive": 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.
            "canUntrash": True or False, # Whether the current user can restore this file from trash.
            "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
            "canDeleteChildren": 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.
            "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
            "canListChildren": 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.
            "canRename": True or False, # Whether the current user can rename this file.
            "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
            "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
            "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
            "canTrashChildren": 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.
            "canMoveChildrenWithinDrive": True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
            "canReadRevisions": 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.
            "canMoveItemWithinDrive": True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
            "canCopy": 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.
            "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
            "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
            "canComment": True or False, # Whether the current user can comment on this file.
            "canMoveChildrenOutOfDrive": 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.
            "canChangeViewersCanCopyContent": True or False, # Deprecated
            "canTrash": True or False, # Whether the current user can move this file to trash.
            "canDelete": True or False, # Whether the current user can delete this file.
            "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
            "canDownload": True or False, # Whether the current user can download this file.
            "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
            "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
            "canRemoveChildren": 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.
            "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
            "canEdit": True or False, # Whether the current user can edit this file.
          },
          "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
          "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
          "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
          "parents": [ # The IDs of the parent folders which contain the file.
              # If not specified as part of a create request, the file will be placed directly in the user'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 must use the addParents and removeParents parameters to modify the parents list.
            "A String",
          ],
          "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
          "exportLinks": { # Links for exporting Google Docs to specific formats.
            "a_key": "A String", # A mapping from export format to URL
          },
          "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
          "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
          "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in Google Drive.
              # This is automatically updated when the name field changes, however it is not cleared if the new name does not contain a valid extension.
          "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the name field. This is only available for files with binary content in Google Drive.
          "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
          "description": "A String", # A short description of the file.
          "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
              # Note that setting modifiedTime will also update modifiedByMeTime for the user.
          "viewedByMe": True or False, # Whether the file has been viewed by this user.
          "modifiedByMe": True or False, # Whether the file has been modified by this user.
          "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
            { # Information about a Drive user.
              "me": True or False, # Whether this user is the requesting user.
              "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
              "displayName": "A String", # A plain text displayable name for this user.
              "permissionId": "A String", # The user's ID as visible in Permission resources.
              "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
              "photoLink": "A String", # A link to the user's profile photo, if available.
            },
          ],
          "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
          "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
          "starred": True or False, # Whether the user has starred the file.
          "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
              # Entries with null values are cleared in update and copy requests.
            "a_key": "A String",
          },
          "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
          "iconLink": "A String", # A static, unauthenticated link to the file's icon.
          "imageMediaMetadata": { # Additional metadata about image media, if available.
            "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
            "exposureTime": 3.14, # The length of the exposure, in seconds.
            "cameraMake": "A String", # The make of the camera used to create the photo.
            "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
            "width": 42, # The width of the image in pixels.
            "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
            "exposureMode": "A String", # The exposure mode used to create the photo.
            "colorSpace": "A String", # The color space of the photo.
            "location": { # Geographic location information stored in the image.
              "latitude": 3.14, # The latitude stored in the image.
              "altitude": 3.14, # The altitude stored in the image.
              "longitude": 3.14, # The longitude stored in the image.
            },
            "subjectDistance": 42, # The distance to the subject of the photo, in meters.
            "height": 42, # The height of the image in pixels.
            "lens": "A String", # The lens used to create the photo.
            "isoSpeed": 42, # The ISO speed used to create the photo.
            "meteringMode": "A String", # The metering mode used to create the photo.
            "flashUsed": True or False, # Whether a flash was used to create the photo.
            "time": "A String", # The date and time the photo was taken (EXIF DateTime).
            "aperture": 3.14, # The aperture used to create the photo (f-number).
            "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
            "sensor": "A String", # The type of sensor used to create the photo.
            "whiteBalance": "A String", # The white balance mode used to create the photo.
            "cameraModel": "A String", # The model of the camera used to create the photo.
          },
          "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
          "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
          "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
          "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
            "me": True or False, # Whether this user is the requesting user.
            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in Permission resources.
            "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            "photoLink": "A String", # A link to the user's profile photo, if available.
          },
          "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
          "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
            "A String",
          ],
          "permissionIds": [ # List of permission IDs for users with access to this file.
            "A String",
          ],
          "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
          "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
            "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
            "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
              "mimeType": "A String", # The MIME type of the thumbnail.
              "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
            },
          },
          "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
          "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
          "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
            { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
              "domain": "A String", # The domain to which this permission refers.
              "displayName": "A String", # A displayable name for users, groups or domains.
              "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
                {
                  "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
                  "role": "A String", # Deprecated - use permissionDetails/role instead.
                  "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
                  "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
                },
              ],
              "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
              "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
              "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
              "emailAddress": "A String", # The email address of the user or group to which this permission refers.
              "photoLink": "A String", # A link to the user's profile photo, if available.
              "permissionDetails": [ # 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.
                {
                  "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
                      # - organizer
                      # - fileOrganizer
                      # - writer
                      # - commenter
                      # - reader
                  "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
                  "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
                      # - file
                      # - member
                  "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
                },
              ],
              "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
                  # - They can only be set on user and group permissions
                  # - The time must be in the future
                  # - The time cannot be more than a year in the future
              "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
                  # - owner
                  # - organizer
                  # - fileOrganizer
                  # - writer
                  # - commenter
                  # - reader
              "type": "A String", # The type of the grantee. Valid values are:
                  # - user
                  # - group
                  # - domain
                  # - anyone
              "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
            },
          ],
          "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
        },
        "time": "A String", # The time of this change (RFC 3339 date-time).
        "teamDriveId": "A String", # Deprecated - use driveId instead.
        "removed": 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.
        "type": "A String", # Deprecated - use changeType instead.
        "fileId": "A String", # The ID of the file which has changed.
      },
    ],
    "newStartPageToken": "A String", # The starting page token for future changes. This will be present only if the end of the current changes list has been reached.
  }</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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

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

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

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

  pageSize: integer, The maximum number of changes to return per page.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
  restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives instead.
  teamDriveId: string, Deprecated use driveId instead.
  includeItemsFromAllDrives: boolean, Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  driveId: string, The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.
  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.

Returns:
  An object of the form:

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

</body></html>