<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">G Suite 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 visiblity 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 visiblity 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, Indicates the user to return activity for. 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>