<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="#get">get(changeId, driveId=None, supportsTeamDrives=None, supportsAllDrives=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, 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(supportsTeamDrives=None, spaces=None, startChangeId=None, pageToken=None, includeSubscribed=None, includeDeleted=None, maxResults=None, teamDriveId=None, includeItemsFromAllDrives=None, includeTeamDriveItems=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(body, supportsTeamDrives=None, spaces=None, startChangeId=None, pageToken=None, includeSubscribed=None, includeDeleted=None, maxResults=None, teamDriveId=None, includeItemsFromAllDrives=None, includeTeamDriveItems=None, supportsAllDrives=None, driveId=None, includeCorpusRemovals=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="get">get(changeId, driveId=None, supportsTeamDrives=None, supportsAllDrives=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 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:

    { # Representation of 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.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't set colorRgb or backgroundImageFile.
      "kind": "drive#teamDrive", # This is always 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.
      },
      "createdDate": "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", # This is always drive#change.
    "deleted": 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.
    "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.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't set colorRgb or backgroundImageFile.
      "kind": "drive#drive", # This is always 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.
      },
      "createdDate": "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.
      "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
      "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for items in shared drives.
      "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 requesting user.
      "appDataContents": True or False, # Whether this file is in the Application Data folder.
      "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
      "labels": { # A group of labels for the file.
        "restricted": True or False, # Deprecated - use copyRequiresWriterPermission instead.
        "modified": True or False, # Whether the file has been modified by this user.
        "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
        "hidden": True or False, # Deprecated.
        "starred": True or False, # Whether this file is starred by the user.
        "viewed": True or False, # Whether this file has been viewed by this user.
      },
      "indexableText": { # Indexable text attributes for the file (can only be written)
        "text": "A String", # The text to be indexed for this file.
      },
      "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
      "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
      "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
      "lastModifyingUserName": "A String", # Name of the last user to modify this file.
      "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for items in shared drives.
      "owners": [ # The owner(s) of this file. Not populated for items in shared drives.
        { # Information about a Drive user.
          "picture": { # The user's profile picture.
            "url": "A String", # A URL that points to a profile picture of this user.
          },
          "kind": "drive#user", # This is always drive#user.
          "displayName": "A String", # A plain text displayable name for this user.
          "permissionId": "A String", # The user's ID as visible in the permissions collection.
          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
          "emailAddress": "A String", # The email address of the user.
        },
      ],
      "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for items in shared drives.
      "id": "A String", # The ID of the file.
      "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
      "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.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
      "downloadUrl": "A String", # 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 Google Docs or shortcut files.
      "mimeType": "A String", # 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's MIME type.
      "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
      "copyable": True or False, # Deprecated: use capabilities/canCopy.
      "folderColorRgb": "A String", # 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.
      "markedViewedByMeDate": "A String", # Deprecated.
      "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for items in shared drives.
        "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.
        "canChangeRestrictedDownload": True or False, # Deprecated
        "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.
        "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.
      },
      "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
      "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
      "etag": "A String", # ETag of the file.
      "parents": [ # 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'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's parent.
          "selfLink": "A String", # A link back to this reference.
          "kind": "drive#parentReference", # This is always drive#parentReference.
          "id": "A String", # The ID of the parent.
          "isRoot": True or False, # Whether or not the parent is the root folder.
          "parentLink": "A String", # A link to the parent.
        },
      ],
      "exportLinks": { # Links for exporting Google Docs to specific formats.
        "a_key": "A String", # A mapping from export format to URL
      },
      "shareable": True or False, # Deprecated: use capabilities/canShare.
      "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 title. May contain multiple concatenated extensions, such as "tar.gz". 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 Google Docs or shortcut files.
      "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
        "a_key": "A String",
      },
      "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
      "imageMediaMetadata": { # 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.
        "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).
        "isoSpeed": 42, # The ISO speed used to create the photo.
        "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.
        "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
        "width": 42, # The width of the image in pixels.
        "meteringMode": "A String", # The metering mode used to create the photo.
        "flashUsed": True or False, # Whether a flash was used to create the photo.
        "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.
      },
      "description": "A String", # A short description of the file.
      "webContentLink": "A String", # 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.
      "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
        "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.
      },
      "editable": True or False, # Deprecated: use capabilities/canEdit.
      "kind": "drive#file", # The type of file. This is always drive#file.
      "canComment": True or False, # Deprecated: use capabilities/canComment.
      "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
      "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.
      "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
      "teamDriveId": "A String", # Deprecated - use driveId instead.
      "properties": [ # 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.
          "kind": "drive#property", # This is always drive#property.
          "value": "A String", # The value of this property.
          "etag": "A String", # ETag of the property.
          "visibility": "A String", # The visibility of this property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)
          "key": "A String", # The key of this property.
          "selfLink": "A String", # The link back to this property.
        },
      ],
      "md5Checksum": "A String", # 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 Google Docs or shortcut files.
      "iconLink": "A String", # A link to the file's icon.
      "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
      "embedLink": "A String", # A link for embedding the file.
      "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
      "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
      "title": "A String", # 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.
      "modifiedByMeDate": "A String", # 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.
      "thumbnail": { # A thumbnail for the file. This will only be used if a standard thumbnail cannot be generated.
        "mimeType": "A String", # The MIME type of the thumbnail.
        "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
      },
      "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
      "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # 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.
        "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
                # - 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
            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
              "A String",
            ],
            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          },
        ],
        "name": "A String", # The name for this permission.
        "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
          {
            "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
            "role": "A String", # Deprecated - use permissionDetails/role instead.
            "additionalRoles": [ # Deprecated - use permissionDetails/additionalRoles instead.
              "A String",
            ],
            "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
            "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
          },
        ],
        "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", # This is always drive#permission.
        "value": "A String", # 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.
        "id": "A String", # 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.
        "authKey": "A String", # Deprecated.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # 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.
        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
            # - 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
        "role": "A String", # 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
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
        "photoLink": "A String", # A link to the profile photo, if available.
      },
      "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
        "A String",
      ],
      "permissionIds": [ # List of permission IDs for users with access to this file.
        "A String",
      ],
      "originalFilename": "A String", # 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.
      "fileExtension": "A String", # 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 Google Docs or shortcut files.
      "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for items in shared drives.
      "permissions": [ # The list of permissions for users with access to this file. Not populated for items in shared drives.
        { # A permission for a file.
          "withLink": True or False, # Whether the link is required for this permission.
          "domain": "A String", # 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.
          "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
                  # - 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
              "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
                "A String",
              ],
              "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
            },
          ],
          "name": "A String", # The name for this permission.
          "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
            {
              "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
              "role": "A String", # Deprecated - use permissionDetails/role instead.
              "additionalRoles": [ # Deprecated - use permissionDetails/additionalRoles instead.
                "A String",
              ],
              "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
              "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
            },
          ],
          "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", # This is always drive#permission.
          "value": "A String", # 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.
          "id": "A String", # 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.
          "authKey": "A String", # Deprecated.
          "etag": "A String", # The ETag of the permission.
          "emailAddress": "A String", # 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.
          "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
              # - 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
          "role": "A String", # 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
          "type": "A String", # The account type. Allowed values are:
              # - user
              # - group
              # - domain
              # - anyone
          "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
            "A String",
          ],
          "selfLink": "A String", # A link back to this permission.
          "photoLink": "A String", # A link to the profile photo, if available.
        },
      ],
      "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.
      "selfLink": "A String", # A link back to this file.
      "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
    },
    "modificationDate": "A String", # The time of this modification.
    "teamDriveId": "A String", # Deprecated - use driveId instead.
    "type": "A String", # Deprecated - use changeType instead.
    "id": "A String", # The ID of the change.
    "selfLink": "A String", # A link back to this change.
    "fileId": "A String", # The ID of the file associated with this change.
  }</pre>
</div>

<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(supportsTeamDrives=None, spaces=None, startChangeId=None, pageToken=None, includeSubscribed=None, includeDeleted=None, maxResults=None, teamDriveId=None, includeItemsFromAllDrives=None, includeTeamDriveItems=None, supportsAllDrives=None, driveId=None, includeCorpusRemovals=None)</code>
  <pre>Lists the changes for a user or shared drive.

Args:
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  spaces: string, A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.
  startChangeId: string, Deprecated - use pageToken instead.
  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.
  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 will be omitted from the result.
  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.
  maxResults: integer, Maximum number of changes to return.
  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.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives 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.
  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", # This is always drive#changeList.
    "items": [ # 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.
        "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.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't set colorRgb or backgroundImageFile.
          "kind": "drive#teamDrive", # This is always 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.
          },
          "createdDate": "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", # This is always drive#change.
        "deleted": 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.
        "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.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't set colorRgb or backgroundImageFile.
          "kind": "drive#drive", # This is always 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.
          },
          "createdDate": "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.
          "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
          "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for items in shared drives.
          "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 requesting user.
          "appDataContents": True or False, # Whether this file is in the Application Data folder.
          "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
          "labels": { # A group of labels for the file.
            "restricted": True or False, # Deprecated - use copyRequiresWriterPermission instead.
            "modified": True or False, # Whether the file has been modified by this user.
            "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
            "hidden": True or False, # Deprecated.
            "starred": True or False, # Whether this file is starred by the user.
            "viewed": True or False, # Whether this file has been viewed by this user.
          },
          "indexableText": { # Indexable text attributes for the file (can only be written)
            "text": "A String", # The text to be indexed for this file.
          },
          "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
          "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
          "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
          "lastModifyingUserName": "A String", # Name of the last user to modify this file.
          "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for items in shared drives.
          "owners": [ # The owner(s) of this file. Not populated for items in shared drives.
            { # Information about a Drive user.
              "picture": { # The user's profile picture.
                "url": "A String", # A URL that points to a profile picture of this user.
              },
              "kind": "drive#user", # This is always drive#user.
              "displayName": "A String", # A plain text displayable name for this user.
              "permissionId": "A String", # The user's ID as visible in the permissions collection.
              "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
              "emailAddress": "A String", # The email address of the user.
            },
          ],
          "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for items in shared drives.
          "id": "A String", # The ID of the file.
          "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
            "picture": { # The user's profile picture.
              "url": "A String", # A URL that points to a profile picture of this user.
            },
            "kind": "drive#user", # This is always drive#user.
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in the permissions collection.
            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            "emailAddress": "A String", # The email address of the user.
          },
          "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.
            "picture": { # The user's profile picture.
              "url": "A String", # A URL that points to a profile picture of this user.
            },
            "kind": "drive#user", # This is always drive#user.
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in the permissions collection.
            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            "emailAddress": "A String", # The email address of the user.
          },
          "downloadUrl": "A String", # 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 Google Docs or shortcut files.
          "mimeType": "A String", # 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's MIME type.
          "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
            "picture": { # The user's profile picture.
              "url": "A String", # A URL that points to a profile picture of this user.
            },
            "kind": "drive#user", # This is always drive#user.
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in the permissions collection.
            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            "emailAddress": "A String", # The email address of the user.
          },
          "copyable": True or False, # Deprecated: use capabilities/canCopy.
          "folderColorRgb": "A String", # 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.
          "markedViewedByMeDate": "A String", # Deprecated.
          "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for items in shared drives.
            "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.
            "canChangeRestrictedDownload": True or False, # Deprecated
            "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.
            "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.
          },
          "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
          "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
          "etag": "A String", # ETag of the file.
          "parents": [ # 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'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's parent.
              "selfLink": "A String", # A link back to this reference.
              "kind": "drive#parentReference", # This is always drive#parentReference.
              "id": "A String", # The ID of the parent.
              "isRoot": True or False, # Whether or not the parent is the root folder.
              "parentLink": "A String", # A link to the parent.
            },
          ],
          "exportLinks": { # Links for exporting Google Docs to specific formats.
            "a_key": "A String", # A mapping from export format to URL
          },
          "shareable": True or False, # Deprecated: use capabilities/canShare.
          "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 title. May contain multiple concatenated extensions, such as "tar.gz". 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 Google Docs or shortcut files.
          "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
            "a_key": "A String",
          },
          "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
          "imageMediaMetadata": { # 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.
            "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).
            "isoSpeed": 42, # The ISO speed used to create the photo.
            "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.
            "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
            "width": 42, # The width of the image in pixels.
            "meteringMode": "A String", # The metering mode used to create the photo.
            "flashUsed": True or False, # Whether a flash was used to create the photo.
            "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.
          },
          "description": "A String", # A short description of the file.
          "webContentLink": "A String", # 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.
          "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
            "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.
          },
          "editable": True or False, # Deprecated: use capabilities/canEdit.
          "kind": "drive#file", # The type of file. This is always drive#file.
          "canComment": True or False, # Deprecated: use capabilities/canComment.
          "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
          "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.
          "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
          "teamDriveId": "A String", # Deprecated - use driveId instead.
          "properties": [ # 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.
              "kind": "drive#property", # This is always drive#property.
              "value": "A String", # The value of this property.
              "etag": "A String", # ETag of the property.
              "visibility": "A String", # The visibility of this property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)
              "key": "A String", # The key of this property.
              "selfLink": "A String", # The link back to this property.
            },
          ],
          "md5Checksum": "A String", # 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 Google Docs or shortcut files.
          "iconLink": "A String", # A link to the file's icon.
          "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
          "embedLink": "A String", # A link for embedding the file.
          "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
          "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
          "title": "A String", # 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.
          "modifiedByMeDate": "A String", # 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.
          "thumbnail": { # A thumbnail for the file. This will only be used if a standard thumbnail cannot be generated.
            "mimeType": "A String", # The MIME type of the thumbnail.
            "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
          },
          "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
          "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
            "withLink": True or False, # Whether the link is required for this permission.
            "domain": "A String", # 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.
            "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
                    # - 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
                "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
                  "A String",
                ],
                "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
              },
            ],
            "name": "A String", # The name for this permission.
            "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
              {
                "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
                "role": "A String", # Deprecated - use permissionDetails/role instead.
                "additionalRoles": [ # Deprecated - use permissionDetails/additionalRoles instead.
                  "A String",
                ],
                "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
                "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
              },
            ],
            "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", # This is always drive#permission.
            "value": "A String", # 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.
            "id": "A String", # 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.
            "authKey": "A String", # Deprecated.
            "etag": "A String", # The ETag of the permission.
            "emailAddress": "A String", # 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.
            "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
                # - 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
            "role": "A String", # 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
            "type": "A String", # The account type. Allowed values are:
                # - user
                # - group
                # - domain
                # - anyone
            "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
              "A String",
            ],
            "selfLink": "A String", # A link back to this permission.
            "photoLink": "A String", # A link to the profile photo, if available.
          },
          "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
            "A String",
          ],
          "permissionIds": [ # List of permission IDs for users with access to this file.
            "A String",
          ],
          "originalFilename": "A String", # 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.
          "fileExtension": "A String", # 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 Google Docs or shortcut files.
          "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for items in shared drives.
          "permissions": [ # The list of permissions for users with access to this file. Not populated for items in shared drives.
            { # A permission for a file.
              "withLink": True or False, # Whether the link is required for this permission.
              "domain": "A String", # 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.
              "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
                      # - 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
                  "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
                    "A String",
                  ],
                  "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
                },
              ],
              "name": "A String", # The name for this permission.
              "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
                {
                  "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
                  "role": "A String", # Deprecated - use permissionDetails/role instead.
                  "additionalRoles": [ # Deprecated - use permissionDetails/additionalRoles instead.
                    "A String",
                  ],
                  "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
                  "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
                },
              ],
              "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", # This is always drive#permission.
              "value": "A String", # 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.
              "id": "A String", # 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.
              "authKey": "A String", # Deprecated.
              "etag": "A String", # The ETag of the permission.
              "emailAddress": "A String", # 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.
              "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
                  # - 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
              "role": "A String", # 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
              "type": "A String", # The account type. Allowed values are:
                  # - user
                  # - group
                  # - domain
                  # - anyone
              "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
                "A String",
              ],
              "selfLink": "A String", # A link back to this permission.
              "photoLink": "A String", # A link to the profile photo, if available.
            },
          ],
          "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.
          "selfLink": "A String", # A link back to this file.
          "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
        },
        "modificationDate": "A String", # The time of this modification.
        "teamDriveId": "A String", # Deprecated - use driveId instead.
        "type": "A String", # Deprecated - use changeType instead.
        "id": "A String", # The ID of the change.
        "selfLink": "A String", # A link back to this change.
        "fileId": "A String", # The ID of the file associated with this change.
      },
    ],
    "nextLink": "A String", # A link to the next page of changes.
    "etag": "A String", # The ETag of the list.
    "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.
    "largestChangeId": "A String", # The current largest change ID.
    "selfLink": "A String", # 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 '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(body, supportsTeamDrives=None, spaces=None, startChangeId=None, pageToken=None, includeSubscribed=None, includeDeleted=None, maxResults=None, teamDriveId=None, includeItemsFromAllDrives=None, includeTeamDriveItems=None, supportsAllDrives=None, driveId=None, includeCorpusRemovals=None)</code>
  <pre>Subscribe to changes for a user.

Args:
  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.
  }

  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  spaces: string, A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.
  startChangeId: string, Deprecated - use pageToken instead.
  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.
  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 will be omitted from the result.
  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.
  maxResults: integer, Maximum number of changes to return.
  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.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives 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.
  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>