# Drive API . changes

## Instance Methods

Gets the starting pageToken for listing future changes.

Lists changes for a user.

Retrieves the next page of results.

Subscribes to changes for a user.

### Method Details

`getStartPageToken()`

    Gets the starting pageToken for listing future changes.

    Args:

    Returns:
      An object of the form:

        {
        "kind": "drive#startPageToken", # This is always drive#startPageToken.
        "startPageToken": "A String", # The starting page token for listing changes.
      }

`list(pageToken, restrictToMyDrive=None, spaces=None, pageSize=None, includeRemoved=None)`

    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", # This is always drive#changeList.
        "changes": [ # The page of changes.
          { # A change to a file.
            "kind": "drive#change", # This is always 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.
              "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.
              "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", # 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 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", # 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 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", # This is always 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.
              "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", # 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 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", # This is always 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.
      }

`list_next(previous_request, previous_response)`

    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.

`watch(pageToken, body, pageSize=None, restrictToMyDrive=None, spaces=None, includeRemoved=None)`

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