<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.changes.html">changes</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#getStartPageToken">getStartPageToken()</a></code></p>
<p class="firstline">Gets the starting pageToken for listing future changes.</p>
<p class="toc_element">
  <code><a href="#list">list(pageToken, restrictToMyDrive=None, spaces=None, pageSize=None, includeRemoved=None)</a></code></p>
<p class="firstline">Lists changes for a user.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#watch">watch(pageToken, body, pageSize=None, restrictToMyDrive=None, spaces=None, includeRemoved=None)</a></code></p>
<p class="firstline">Subscribes to changes for a user.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="getStartPageToken">getStartPageToken()</code>
  <pre>Gets the starting pageToken for listing future changes.

Args:

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="list">list(pageToken, restrictToMyDrive=None, spaces=None, pageSize=None, includeRemoved=None)</code>
  <pre>Lists changes for a user.

Args:
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method. (required)
  restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
  spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
  pageSize: integer, The maximum number of changes to return per page.
  includeRemoved: boolean, Whether to include changes indicating that items have left the view of the changes list, for example by deletion or lost access.

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 current changes list has been reached.
    "kind": "drive#changeList", # Identifies what kind of resource this is. Value: the fixed string "drive#changeList".
    "changes": [ # The page of changes.
      { # A change to a file.
        "kind": "drive#change", # Identifies what kind of resource this is. Value: the fixed string "drive#change".
        "removed": True or False, # Whether the file has been removed from the view of the changes list, for example by deletion or lost access.
        "time": "A String", # The time of this change (RFC 3339 date-time).
        "file": { # The metadata for a file. # The updated state of the file. Present if the file has not been removed.
          "hasThumbnail": True or False, # Whether this file has a thumbnail.
          "mimeType": "A String", # The MIME type of the file.
              # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
              # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
          "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
          "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
          "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
          "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
          "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
          "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
          "ownedByMe": True or False, # Whether the user owns the file.
          "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
          "id": "A String", # The ID of the file.
          "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
            "me": True or False, # Whether this user is the requesting user.
            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in Permission resources.
            "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            "photoLink": "A String", # A link to the user's profile photo, if available.
          },
          "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Drive.
          "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
            "width": 42, # The width of the video in pixels.
            "durationMillis": "A String", # The duration of the video in milliseconds.
            "height": 42, # The height of the video in pixels.
          },
          "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
            "me": True or False, # Whether this user is the requesting user.
            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in Permission resources.
            "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            "photoLink": "A String", # A link to the user's profile photo, if available.
          },
          "folderColorRgb": "A String", # The color for a folder as an RGB hex string. The supported colors are published in the folderColorPalette field of the About resource.
              # If an unsupported color is specified, the closest color in the palette will be used instead.
          "appProperties": { # A collection of arbitrary key-value pairs which are private to the requesting app.
              # Entries with null values are cleared in update and copy requests.
            "a_key": "A String",
          },
          "capabilities": { # Capabilities the current user has on the file.
            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
            "canCopy": True or False, # Whether the user can copy the file.
            "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
            "canEdit": True or False, # Whether the user can edit the file's content.
            "canComment": True or False, # Whether the user can comment on the file.
          },
          "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
          "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
          "parents": [ # The IDs of the parent folders which contain the file.
              # If not specified as part of a create request, the file will be placed directly in the My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
            "A String",
          ],
          "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
          "shared": True or False, # Whether the file has been shared.
          "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
            { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
              "domain": "A String", # The domain to which this permission refers.
              "displayName": "A String", # A displayable name for users, groups or domains.
              "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
              "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
              "emailAddress": "A String", # The email address of the user or group to which this permission refers.
              "photoLink": "A String", # A link to the user's profile photo, if available.
              "role": "A String", # The role granted by this permission. Valid values are:
                  # - owner
                  # - writer
                  # - commenter
                  # - reader
              "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
              "type": "A String", # The type of the grantee. Valid values are:
                  # - user
                  # - group
                  # - domain
                  # - anyone
              "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
            },
          ],
          "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in Drive.
              # This is automatically updated when the name field changes, however it is not cleared if the new name does not contain a valid extension.
          "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the name field. This is only available for files with binary content in Drive.
          "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
          "description": "A String", # A short description of the file.
          "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
              # Note that setting modifiedTime will also update modifiedByMeTime for the user.
          "viewedByMe": True or False, # Whether the file has been viewed by this user.
          "modifiedByMe": True or False, # Whether the file has been modified by this user.
          "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
            { # Information about a Drive user.
              "me": True or False, # Whether this user is the requesting user.
              "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
              "displayName": "A String", # A plain text displayable name for this user.
              "permissionId": "A String", # The user's ID as visible in Permission resources.
              "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
              "photoLink": "A String", # A link to the user's profile photo, if available.
            },
          ],
          "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
          "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
          "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
              # Entries with null values are cleared in update and copy requests.
            "a_key": "A String",
          },
          "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Drive.
          "iconLink": "A String", # A static, unauthenticated link to the file's icon.
          "imageMediaMetadata": { # Additional metadata about image media, if available.
            "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
            "exposureTime": 3.14, # The length of the exposure, in seconds.
            "cameraMake": "A String", # The make of the camera used to create the photo.
            "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
            "width": 42, # The width of the image in pixels.
            "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
            "exposureMode": "A String", # The exposure mode used to create the photo.
            "colorSpace": "A String", # The color space of the photo.
            "location": { # Geographic location information stored in the image.
              "latitude": 3.14, # The latitude stored in the image.
              "altitude": 3.14, # The altitude stored in the image.
              "longitude": 3.14, # The longitude stored in the image.
            },
            "subjectDistance": 42, # The distance to the subject of the photo, in meters.
            "height": 42, # The height of the image in pixels.
            "lens": "A String", # The lens used to create the photo.
            "isoSpeed": 42, # The ISO speed used to create the photo.
            "meteringMode": "A String", # The metering mode used to create the photo.
            "flashUsed": True or False, # Whether a flash was used to create the photo.
            "time": "A String", # The date and time the photo was taken (EXIF DateTime).
            "aperture": 3.14, # The aperture used to create the photo (f-number).
            "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
            "sensor": "A String", # The type of sensor used to create the photo.
            "whiteBalance": "A String", # The white balance mode used to create the photo.
            "cameraModel": "A String", # The model of the camera used to create the photo.
          },
          "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
          "name": "A String", # The name of the file. This is not necessarily unique within a folder.
          "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
          "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
            "A String",
          ],
          "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
          "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
            "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
            "thumbnail": { # A thumbnail for the file. This will only be used if Drive cannot generate a standard thumbnail.
              "mimeType": "A String", # The MIME type of the thumbnail.
              "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
            },
          },
          "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
          "starred": True or False, # Whether the user has starred the file.
          "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
        },
        "fileId": "A String", # The ID of the file which has changed.
      },
    ],
    "newStartPageToken": "A String", # The starting page token for future changes. This will be present only if the end of the current changes list has been reached.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

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

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

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

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

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

  pageSize: integer, The maximum number of changes to return per page.
  restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
  spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
  includeRemoved: boolean, Whether to include changes indicating that items have left the view of the changes list, for example by deletion or lost access.

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>