<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="appsactivity_v1.html">Drive Activity API</a> . <a href="appsactivity_v1.activities.html">activities</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(pageSize=None, source=None, groupingStrategy=None, userId=None, drive_ancestorId=None, pageToken=None, drive_fileId=None)</a></code></p>
<p class="firstline">Returns a list of activities visible to the current logged in user. Visible activities are determined by the visibility settings of the object that was acted on, e.g. Drive files a user can see. An activity is a record of past events. Multiple events may be merged if they are similar. A request is scoped to activities from a given Google service using the source parameter.</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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(pageSize=None, source=None, groupingStrategy=None, userId=None, drive_ancestorId=None, pageToken=None, drive_fileId=None)</code>
  <pre>Returns a list of activities visible to the current logged in user. Visible activities are determined by the visibility settings of the object that was acted on, e.g. Drive files a user can see. An activity is a record of past events. Multiple events may be merged if they are similar. A request is scoped to activities from a given Google service using the source parameter.

Args:
  pageSize: integer, The maximum number of events to return on a page. The response includes a continuation token if there are more events.
  source: string, The Google service from which to return activities. Possible values of source are: 
- drive.google.com
  groupingStrategy: string, Indicates the strategy to use when grouping singleEvents items in the associated combinedEvent object.
    Allowed values
      driveUi - 
      none - 
  userId: string, The ID used for ACL checks (does not filter the resulting event list by the assigned value). Use the special value me to indicate the currently authenticated user.
  drive_ancestorId: string, Identifies the Drive folder containing the items for which to return activities.
  pageToken: string, A token to retrieve a specific page of results.
  drive_fileId: string, Identifies the Drive item to return activities for.

Returns:
  An object of the form:

    { # The response from the list request. Contains a list of activities and a token to retrieve the next page of results.
    "nextPageToken": "A String", # Token for the next page of results.
    "activities": [ # List of activities.
      { # An Activity resource is a combined view of multiple events. An activity has a list of individual events and a combined view of the common fields among all events.
        "combinedEvent": { # Represents the changes associated with an action taken by a user. # The fields common to all of the singleEvents that make up the Activity.
          "rename": { # Contains information about a renametype event. # Extra information for rename type events, such as the old and new names.
            "newTitle": "A String", # The new title.
            "oldTitle": "A String", # The old title.
          },
          "target": { # Information about the object modified by the event. # Information specific to the Target object modified by the event.
            "mimeType": "A String", # The MIME type of the target.
            "id": "A String", # The ID of the target. For example, in Google Drive, this is the file or folder ID.
            "name": "A String", # The name of the target. For example, in Google Drive, this is the title of the file.
          },
          "additionalEventTypes": [ # Additional event types. Some events may have multiple types when multiple actions are part of a single event. For example, creating a document, renaming it, and sharing it may be part of a single file-creation event.
            "A String",
          ],
          "move": { # Contains information about changes in an object's parents as a result of a move type event. # Extra information for move type events, such as changes in an object's parents.
            "removedParents": [ # The removed parent(s).
              { # Contains information about a parent object. For example, a folder in Drive is a parent for all files within it.
                "id": "A String", # The parent's ID.
                "isRoot": True or False, # Whether this is the root folder.
                "title": "A String", # The parent's title.
              },
            ],
            "addedParents": [ # The added parent(s).
              { # Contains information about a parent object. For example, a folder in Drive is a parent for all files within it.
                "id": "A String", # The parent's ID.
                "isRoot": True or False, # Whether this is the root folder.
                "title": "A String", # The parent's title.
              },
            ],
          },
          "permissionChanges": [ # Extra information for permissionChange type events, such as the user or group the new permission applies to.
            { # Contains information about a Drive object's permissions that changed as a result of a permissionChange type event.
              "removedPermissions": [ # Lists all Permission objects removed.
                { # Contains information about the permissions and type of access allowed with regards to a Google Drive object. This is a subset of the fields contained in a corresponding Drive Permissions object.
                  "withLink": True or False, # Whether the permission requires a link to the file.
                  "permissionId": "A String", # The ID for this permission. Corresponds to the Drive API's permission ID returned as part of the Drive Permissions resource.
                  "name": "A String", # The name of the user or group the permission applies to.
                  "role": "A String", # Indicates the Google Drive permissions role. The role determines a user's ability to read, write, or comment on the file.
                  "user": { # A representation of a user. # The user's information if the type is USER.
                    "photo": { # Photo information for a user. # The profile photo of the user. Not present if the user has no profile photo.
                      "url": "A String", # The URL of the photo.
                    },
                    "permissionId": "A String", # The permission ID associated with this user. Equivalent to the Drive API's permission ID for this user, returned as part of the Drive Permissions resource.
                    "isMe": True or False, # Whether the user is the authenticated user.
                    "isDeleted": True or False, # A boolean which indicates whether the specified User was deleted. If true, name, photo and permission_id will be omitted.
                    "name": "A String", # The displayable name of the user.
                  },
                  "type": "A String", # Indicates how widely permissions are granted.
                },
              ],
              "addedPermissions": [ # Lists all Permission objects added.
                { # Contains information about the permissions and type of access allowed with regards to a Google Drive object. This is a subset of the fields contained in a corresponding Drive Permissions object.
                  "withLink": True or False, # Whether the permission requires a link to the file.
                  "permissionId": "A String", # The ID for this permission. Corresponds to the Drive API's permission ID returned as part of the Drive Permissions resource.
                  "name": "A String", # The name of the user or group the permission applies to.
                  "role": "A String", # Indicates the Google Drive permissions role. The role determines a user's ability to read, write, or comment on the file.
                  "user": { # A representation of a user. # The user's information if the type is USER.
                    "photo": { # Photo information for a user. # The profile photo of the user. Not present if the user has no profile photo.
                      "url": "A String", # The URL of the photo.
                    },
                    "permissionId": "A String", # The permission ID associated with this user. Equivalent to the Drive API's permission ID for this user, returned as part of the Drive Permissions resource.
                    "isMe": True or False, # Whether the user is the authenticated user.
                    "isDeleted": True or False, # A boolean which indicates whether the specified User was deleted. If true, name, photo and permission_id will be omitted.
                    "name": "A String", # The displayable name of the user.
                  },
                  "type": "A String", # Indicates how widely permissions are granted.
                },
              ],
            },
          ],
          "user": { # A representation of a user. # Represents the user responsible for the event.
            "photo": { # Photo information for a user. # The profile photo of the user. Not present if the user has no profile photo.
              "url": "A String", # The URL of the photo.
            },
            "permissionId": "A String", # The permission ID associated with this user. Equivalent to the Drive API's permission ID for this user, returned as part of the Drive Permissions resource.
            "isMe": True or False, # Whether the user is the authenticated user.
            "isDeleted": True or False, # A boolean which indicates whether the specified User was deleted. If true, name, photo and permission_id will be omitted.
            "name": "A String", # The displayable name of the user.
          },
          "eventTimeMillis": "A String", # The time at which the event occurred formatted as Unix time in milliseconds.
          "primaryEventType": "A String", # The main type of event that occurred.
          "fromUserDeletion": True or False, # Whether this event is caused by a user being deleted.
        },
        "singleEvents": [ # A list of all the Events that make up the Activity.
          { # Represents the changes associated with an action taken by a user.
            "rename": { # Contains information about a renametype event. # Extra information for rename type events, such as the old and new names.
              "newTitle": "A String", # The new title.
              "oldTitle": "A String", # The old title.
            },
            "target": { # Information about the object modified by the event. # Information specific to the Target object modified by the event.
              "mimeType": "A String", # The MIME type of the target.
              "id": "A String", # The ID of the target. For example, in Google Drive, this is the file or folder ID.
              "name": "A String", # The name of the target. For example, in Google Drive, this is the title of the file.
            },
            "additionalEventTypes": [ # Additional event types. Some events may have multiple types when multiple actions are part of a single event. For example, creating a document, renaming it, and sharing it may be part of a single file-creation event.
              "A String",
            ],
            "move": { # Contains information about changes in an object's parents as a result of a move type event. # Extra information for move type events, such as changes in an object's parents.
              "removedParents": [ # The removed parent(s).
                { # Contains information about a parent object. For example, a folder in Drive is a parent for all files within it.
                  "id": "A String", # The parent's ID.
                  "isRoot": True or False, # Whether this is the root folder.
                  "title": "A String", # The parent's title.
                },
              ],
              "addedParents": [ # The added parent(s).
                { # Contains information about a parent object. For example, a folder in Drive is a parent for all files within it.
                  "id": "A String", # The parent's ID.
                  "isRoot": True or False, # Whether this is the root folder.
                  "title": "A String", # The parent's title.
                },
              ],
            },
            "permissionChanges": [ # Extra information for permissionChange type events, such as the user or group the new permission applies to.
              { # Contains information about a Drive object's permissions that changed as a result of a permissionChange type event.
                "removedPermissions": [ # Lists all Permission objects removed.
                  { # Contains information about the permissions and type of access allowed with regards to a Google Drive object. This is a subset of the fields contained in a corresponding Drive Permissions object.
                    "withLink": True or False, # Whether the permission requires a link to the file.
                    "permissionId": "A String", # The ID for this permission. Corresponds to the Drive API's permission ID returned as part of the Drive Permissions resource.
                    "name": "A String", # The name of the user or group the permission applies to.
                    "role": "A String", # Indicates the Google Drive permissions role. The role determines a user's ability to read, write, or comment on the file.
                    "user": { # A representation of a user. # The user's information if the type is USER.
                      "photo": { # Photo information for a user. # The profile photo of the user. Not present if the user has no profile photo.
                        "url": "A String", # The URL of the photo.
                      },
                      "permissionId": "A String", # The permission ID associated with this user. Equivalent to the Drive API's permission ID for this user, returned as part of the Drive Permissions resource.
                      "isMe": True or False, # Whether the user is the authenticated user.
                      "isDeleted": True or False, # A boolean which indicates whether the specified User was deleted. If true, name, photo and permission_id will be omitted.
                      "name": "A String", # The displayable name of the user.
                    },
                    "type": "A String", # Indicates how widely permissions are granted.
                  },
                ],
                "addedPermissions": [ # Lists all Permission objects added.
                  { # Contains information about the permissions and type of access allowed with regards to a Google Drive object. This is a subset of the fields contained in a corresponding Drive Permissions object.
                    "withLink": True or False, # Whether the permission requires a link to the file.
                    "permissionId": "A String", # The ID for this permission. Corresponds to the Drive API's permission ID returned as part of the Drive Permissions resource.
                    "name": "A String", # The name of the user or group the permission applies to.
                    "role": "A String", # Indicates the Google Drive permissions role. The role determines a user's ability to read, write, or comment on the file.
                    "user": { # A representation of a user. # The user's information if the type is USER.
                      "photo": { # Photo information for a user. # The profile photo of the user. Not present if the user has no profile photo.
                        "url": "A String", # The URL of the photo.
                      },
                      "permissionId": "A String", # The permission ID associated with this user. Equivalent to the Drive API's permission ID for this user, returned as part of the Drive Permissions resource.
                      "isMe": True or False, # Whether the user is the authenticated user.
                      "isDeleted": True or False, # A boolean which indicates whether the specified User was deleted. If true, name, photo and permission_id will be omitted.
                      "name": "A String", # The displayable name of the user.
                    },
                    "type": "A String", # Indicates how widely permissions are granted.
                  },
                ],
              },
            ],
            "user": { # A representation of a user. # Represents the user responsible for the event.
              "photo": { # Photo information for a user. # The profile photo of the user. Not present if the user has no profile photo.
                "url": "A String", # The URL of the photo.
              },
              "permissionId": "A String", # The permission ID associated with this user. Equivalent to the Drive API's permission ID for this user, returned as part of the Drive Permissions resource.
              "isMe": True or False, # Whether the user is the authenticated user.
              "isDeleted": True or False, # A boolean which indicates whether the specified User was deleted. If true, name, photo and permission_id will be omitted.
              "name": "A String", # The displayable name of the user.
            },
            "eventTimeMillis": "A String", # The time at which the event occurred formatted as Unix time in milliseconds.
            "primaryEventType": "A String", # The main type of event that occurred.
            "fromUserDeletion": True or False, # Whether this event is caused by a user being deleted.
          },
        ],
      },
    ],
  }</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>

</body></html>