<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="driveactivity_v2.html">Drive Activity API</a> . <a href="driveactivity_v2.activity.html">activity</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#query">query(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Query past activity in Google Drive.</p>
<p class="toc_element">
  <code><a href="#query_next">query_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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="query">query(body=None, x__xgafv=None)</code>
  <pre>Query past activity in Google Drive.

Args:
  body: object, The request body.
    The object takes the form of:

{ # The request message for querying Drive activity.
  &quot;ancestorName&quot;: &quot;A String&quot;, # Return activities for this Drive folder and all children and descendants. The format is &quot;items/ITEM_ID&quot;.
  &quot;consolidationStrategy&quot;: { # How the individual activities are consolidated. A set of activities may be consolidated into one combined activity if they are related in some way, such as one actor performing the same action on multiple targets, or multiple actors performing the same action on a single target. The strategy defines the rules for which activities are related. # Details on how to consolidate related actions that make up the activity. If not set, then related actions are not consolidated.
    &quot;legacy&quot;: { # A strategy which consolidates activities using the grouping rules from the legacy V1 Activity API. Similar actions occurring within a window of time can be grouped across multiple targets (such as moving a set of files at once) or multiple actors (such as several users editing the same item). Grouping rules for this strategy are specific to each type of action. # The individual activities are consolidated using the legacy strategy.
    },
    &quot;none&quot;: { # A strategy which does no consolidation of individual activities. # The individual activities are not consolidated.
    },
  },
  &quot;filter&quot;: &quot;A String&quot;, # The filtering for items returned from this query request. The format of the filter string is a sequence of expressions, joined by an optional &quot;AND&quot;, where each expression is of the form &quot;field operator value&quot;. Supported fields: - time: Uses numerical operators on date values either in terms of milliseconds since Jan 1, 1970 or in RFC 3339 format. Examples: - time &gt; 1452409200000 AND time &lt;= 1492812924310 - time &gt;= &quot;2016-01-10T01:02:03-05:00&quot; - detail.action_detail_case: Uses the &quot;has&quot; operator (:) and either a singular value or a list of allowed action types enclosed in parentheses. Examples: - detail.action_detail_case: RENAME - detail.action_detail_case:(CREATE EDIT) - -detail.action_detail_case:MOVE
  &quot;itemName&quot;: &quot;A String&quot;, # Return activities for this Drive item. The format is &quot;items/ITEM_ID&quot;.
  &quot;pageSize&quot;: 42, # The miminum number of activities desired in the response; the server will attempt to return at least this quanitity. The server may also return fewer activities if it has a partial response ready before the request times out. If not set, a default value is used.
  &quot;pageToken&quot;: &quot;A String&quot;, # The token identifying which page of results to return. Set this to the next_page_token value returned from a previous query to obtain the following page of results. If not set, the first page of results will be returned.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for querying Drive activity.
  &quot;activities&quot;: [ # List of activity requested.
    { # A single Drive activity comprising one or more Actions by one or more Actors on one or more Targets. Some Action groupings occur spontaneously, such as moving an item into a shared folder triggering a permission change. Other groupings of related Actions, such as multiple Actors editing one item or moving multiple files into a new folder, are controlled by the selection of a ConsolidationStrategy in the QueryDriveActivityRequest.
      &quot;actions&quot;: [ # Details on all actions in this activity.
        { # Information about the action.
          &quot;actor&quot;: { # The actor of a Drive activity. # The actor responsible for this action (or empty if all actors are responsible).
            &quot;administrator&quot;: { # Empty message representing an administrator. # An administrator.
            },
            &quot;anonymous&quot;: { # Empty message representing an anonymous user or indicating the authenticated user should be anonymized. # An anonymous user.
            },
            &quot;impersonation&quot;: { # Information about an impersonation, where an admin acts on behalf of an end user. Information about the acting admin is not currently available. # An account acting on behalf of another.
              &quot;impersonatedUser&quot;: { # Information about an end user. # The impersonated user.
                &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                },
                &quot;knownUser&quot;: { # A known user. # A known user.
                  &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                  &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                },
                &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                },
              },
            },
            &quot;system&quot;: { # Event triggered by system operations instead of end users. # A non-user actor (i.e. system triggered).
              &quot;type&quot;: &quot;A String&quot;, # The type of the system event that may triggered activity.
            },
            &quot;user&quot;: { # Information about an end user. # An end user.
              &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
              },
              &quot;knownUser&quot;: { # A known user. # A known user.
                &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
              },
              &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
              },
            },
          },
          &quot;detail&quot;: { # Data describing the type and additional information of an action. # The type and detailed information about the action.
            &quot;comment&quot;: { # A change about comments on an object. # A change about comments was made.
              &quot;assignment&quot;: { # A comment with an assignment. # A change on an assignment.
                &quot;assignedUser&quot;: { # Information about an end user. # The user to whom the comment was assigned.
                  &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                  },
                  &quot;knownUser&quot;: { # A known user. # A known user.
                    &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                    &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                  },
                  &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                  },
                },
                &quot;subtype&quot;: &quot;A String&quot;, # The sub-type of this event.
              },
              &quot;mentionedUsers&quot;: [ # Users who are mentioned in this comment.
                { # Information about an end user.
                  &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                  },
                  &quot;knownUser&quot;: { # A known user. # A known user.
                    &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                    &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                  },
                  &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                  },
                },
              ],
              &quot;post&quot;: { # A regular posted comment. # A change on a regular posted comment.
                &quot;subtype&quot;: &quot;A String&quot;, # The sub-type of this event.
              },
              &quot;suggestion&quot;: { # A suggestion. # A change on a suggestion.
                &quot;subtype&quot;: &quot;A String&quot;, # The sub-type of this event.
              },
            },
            &quot;create&quot;: { # An object was created. # An object was created.
              &quot;copy&quot;: { # An object was created by copying an existing object. # If present, indicates the object was created by copying an existing Drive object.
                &quot;originalObject&quot;: { # A lightweight reference to the target of activity. # The the original object.
                  &quot;drive&quot;: { # A lightweight reference to a shared drive. # The target is a shared drive.
                    &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                  },
                  &quot;driveItem&quot;: { # A lightweight reference to a Drive item, such as a file or folder. # The target is a Drive item.
                    &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                    },
                    &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                      &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                    },
                    &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                    },
                    &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                      &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                    },
                    &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
                  },
                  &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                    &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                    &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                  },
                },
              },
              &quot;new&quot;: { # An object was created from scratch. # If present, indicates the object was newly created (e.g. as a blank document), not derived from a Drive object or external object.
              },
              &quot;upload&quot;: { # An object was uploaded into Drive. # If present, indicates the object originated externally and was uploaded to Drive.
              },
            },
            &quot;delete&quot;: { # An object was deleted. # An object was deleted.
              &quot;type&quot;: &quot;A String&quot;, # The type of delete action taken.
            },
            &quot;dlpChange&quot;: { # A change in the object&#x27;s data leak prevention status. # A change happened in data leak prevention status.
              &quot;type&quot;: &quot;A String&quot;, # The type of Data Leak Prevention (DLP) change.
            },
            &quot;edit&quot;: { # An empty message indicating an object was edited. # An object was edited.
            },
            &quot;move&quot;: { # An object was moved. # An object was moved.
              &quot;addedParents&quot;: [ # The added parent object(s).
                { # A lightweight reference to the target of activity.
                  &quot;drive&quot;: { # A lightweight reference to a shared drive. # The target is a shared drive.
                    &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                  },
                  &quot;driveItem&quot;: { # A lightweight reference to a Drive item, such as a file or folder. # The target is a Drive item.
                    &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                    },
                    &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                      &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                    },
                    &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                    },
                    &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                      &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                    },
                    &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
                  },
                  &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                    &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                    &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                  },
                },
              ],
              &quot;removedParents&quot;: [ # The removed parent object(s).
                { # A lightweight reference to the target of activity.
                  &quot;drive&quot;: { # A lightweight reference to a shared drive. # The target is a shared drive.
                    &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                  },
                  &quot;driveItem&quot;: { # A lightweight reference to a Drive item, such as a file or folder. # The target is a Drive item.
                    &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                    },
                    &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                      &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                    },
                    &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                    },
                    &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                      &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                    },
                    &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
                  },
                  &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                    &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                    &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                  },
                },
              ],
            },
            &quot;permissionChange&quot;: { # A change of the permission setting on an item. # The permission on an object was changed.
              &quot;addedPermissions&quot;: [ # The set of permissions added by this change.
                { # The permission setting of an object.
                  &quot;allowDiscovery&quot;: True or False, # If true, the item can be discovered (e.g. in the user&#x27;s &quot;Shared with me&quot; collection) without needing a link to the item.
                  &quot;anyone&quot;: { # Represents any user (including a logged out user). # If set, this permission applies to anyone, even logged out users.
                  },
                  &quot;domain&quot;: { # Information about a domain. # The domain to whom this permission applies.
                    &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                    &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                  },
                  &quot;group&quot;: { # Information about a group. # The group to whom this permission applies.
                    &quot;email&quot;: &quot;A String&quot;, # The email address of the group.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the group.
                  },
                  &quot;role&quot;: &quot;A String&quot;, # Indicates the Google Drive permissions role. The role determines a user&#x27;s ability to read, write, and comment on items.
                  &quot;user&quot;: { # Information about an end user. # The user to whom this permission applies.
                    &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                    },
                    &quot;knownUser&quot;: { # A known user. # A known user.
                      &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                      &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                    },
                    &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                    },
                  },
                },
              ],
              &quot;removedPermissions&quot;: [ # The set of permissions removed by this change.
                { # The permission setting of an object.
                  &quot;allowDiscovery&quot;: True or False, # If true, the item can be discovered (e.g. in the user&#x27;s &quot;Shared with me&quot; collection) without needing a link to the item.
                  &quot;anyone&quot;: { # Represents any user (including a logged out user). # If set, this permission applies to anyone, even logged out users.
                  },
                  &quot;domain&quot;: { # Information about a domain. # The domain to whom this permission applies.
                    &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                    &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                  },
                  &quot;group&quot;: { # Information about a group. # The group to whom this permission applies.
                    &quot;email&quot;: &quot;A String&quot;, # The email address of the group.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the group.
                  },
                  &quot;role&quot;: &quot;A String&quot;, # Indicates the Google Drive permissions role. The role determines a user&#x27;s ability to read, write, and comment on items.
                  &quot;user&quot;: { # Information about an end user. # The user to whom this permission applies.
                    &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                    },
                    &quot;knownUser&quot;: { # A known user. # A known user.
                      &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                      &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                    },
                    &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                    },
                  },
                },
              ],
            },
            &quot;reference&quot;: { # Activity in applications other than Drive. # An object was referenced in an application outside of Drive/Docs.
              &quot;type&quot;: &quot;A String&quot;, # The reference type corresponding to this event.
            },
            &quot;rename&quot;: { # An object was renamed. # An object was renamed.
              &quot;newTitle&quot;: &quot;A String&quot;, # The new title of the drive object.
              &quot;oldTitle&quot;: &quot;A String&quot;, # The previous title of the drive object.
            },
            &quot;restore&quot;: { # A deleted object was restored. # A deleted object was restored.
              &quot;type&quot;: &quot;A String&quot;, # The type of restore action taken.
            },
            &quot;settingsChange&quot;: { # Information about settings changes. # Settings were changed.
              &quot;restrictionChanges&quot;: [ # The set of changes made to restrictions.
                { # Information about restriction policy changes to a feature.
                  &quot;feature&quot;: &quot;A String&quot;, # The feature which had a change in restriction policy.
                  &quot;newRestriction&quot;: &quot;A String&quot;, # The restriction in place after the change.
                },
              ],
            },
          },
          &quot;target&quot;: { # Information about the target of activity. # The target this action affects (or empty if affecting all targets). This represents the state of the target immediately after this action occurred.
            &quot;drive&quot;: { # Information about a shared drive. # The target is a shared drive.
              &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
              &quot;root&quot;: { # A Drive item, such as a file or folder. # The root of this shared drive.
                &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                },
                &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                  &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                },
                &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                },
                &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                  &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                },
                &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
                &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
                  &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                    &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                    &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                  },
                  &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                    &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                  },
                  &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                    &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                    &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                  },
                  &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                    &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                    },
                    &quot;knownUser&quot;: { # A known user. # A known user.
                      &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                      &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                    },
                    &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                    },
                  },
                },
                &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
              },
              &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
            },
            &quot;driveItem&quot;: { # A Drive item, such as a file or folder. # The target is a Drive item.
              &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
              },
              &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
              },
              &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
              },
              &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
              },
              &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
              &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
              &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
                &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                  &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                  &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                },
                &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                  &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                  &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                },
                &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                  &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                  &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                },
                &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                  &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                  },
                  &quot;knownUser&quot;: { # A known user. # A known user.
                    &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                    &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                  },
                  &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                  },
                },
              },
              &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
            },
            &quot;fileComment&quot;: { # A comment on a file. # The target is a comment on a Drive file.
              &quot;legacyCommentId&quot;: &quot;A String&quot;, # The comment in the discussion thread. This identifier is an opaque string compatible with the Drive API; see https://developers.google.com/drive/v3/reference/comments/get
              &quot;legacyDiscussionId&quot;: &quot;A String&quot;, # The discussion thread to which the comment was added. This identifier is an opaque string compatible with the Drive API and references the first comment in a discussion; see https://developers.google.com/drive/v3/reference/comments/get
              &quot;linkToDiscussion&quot;: &quot;A String&quot;, # The link to the discussion thread containing this comment, for example, &quot;https://docs.google.com/DOCUMENT_ID/edit?disco=THREAD_ID&quot;.
              &quot;parent&quot;: { # A Drive item, such as a file or folder. # The Drive item containing this comment.
                &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                },
                &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                  &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                },
                &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                },
                &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                  &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                },
                &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
                &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
                  &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                    &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                    &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                  },
                  &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                    &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                  },
                  &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                    &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                    &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                  },
                  &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                    &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                    },
                    &quot;knownUser&quot;: { # A known user. # A known user.
                      &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                      &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                    },
                    &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                    },
                  },
                },
                &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
              },
            },
            &quot;teamDrive&quot;: { # This item is deprecated; please see `Drive` instead. # This field is deprecated; please use the `drive` field instead.
              &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `Drive.name` instead.
              &quot;root&quot;: { # A Drive item, such as a file or folder. # This field is deprecated; please see `Drive.root` instead.
                &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                },
                &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                  &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                },
                &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                },
                &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                  &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                },
                &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
                &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
                  &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                    &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                    &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                  },
                  &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                    &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                    &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                  },
                  &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                    &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                    &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                  },
                  &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                    &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                    },
                    &quot;knownUser&quot;: { # A known user. # A known user.
                      &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                      &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                    },
                    &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                    },
                  },
                },
                &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
              },
              &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `Drive.title` instead.
            },
          },
          &quot;timeRange&quot;: { # Information about time ranges. # The action occurred over this time range.
            &quot;endTime&quot;: &quot;A String&quot;, # The end of the time range.
            &quot;startTime&quot;: &quot;A String&quot;, # The start of the time range.
          },
          &quot;timestamp&quot;: &quot;A String&quot;, # The action occurred at this specific time.
        },
      ],
      &quot;actors&quot;: [ # All actor(s) responsible for the activity.
        { # The actor of a Drive activity.
          &quot;administrator&quot;: { # Empty message representing an administrator. # An administrator.
          },
          &quot;anonymous&quot;: { # Empty message representing an anonymous user or indicating the authenticated user should be anonymized. # An anonymous user.
          },
          &quot;impersonation&quot;: { # Information about an impersonation, where an admin acts on behalf of an end user. Information about the acting admin is not currently available. # An account acting on behalf of another.
            &quot;impersonatedUser&quot;: { # Information about an end user. # The impersonated user.
              &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
              },
              &quot;knownUser&quot;: { # A known user. # A known user.
                &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
              },
              &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
              },
            },
          },
          &quot;system&quot;: { # Event triggered by system operations instead of end users. # A non-user actor (i.e. system triggered).
            &quot;type&quot;: &quot;A String&quot;, # The type of the system event that may triggered activity.
          },
          &quot;user&quot;: { # Information about an end user. # An end user.
            &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
            },
            &quot;knownUser&quot;: { # A known user. # A known user.
              &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
              &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
            },
            &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
            },
          },
        },
      ],
      &quot;primaryActionDetail&quot;: { # Data describing the type and additional information of an action. # Key information about the primary action for this activity. This is either representative, or the most important, of all actions in the activity, according to the ConsolidationStrategy in the request.
        &quot;comment&quot;: { # A change about comments on an object. # A change about comments was made.
          &quot;assignment&quot;: { # A comment with an assignment. # A change on an assignment.
            &quot;assignedUser&quot;: { # Information about an end user. # The user to whom the comment was assigned.
              &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
              },
              &quot;knownUser&quot;: { # A known user. # A known user.
                &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
              },
              &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
              },
            },
            &quot;subtype&quot;: &quot;A String&quot;, # The sub-type of this event.
          },
          &quot;mentionedUsers&quot;: [ # Users who are mentioned in this comment.
            { # Information about an end user.
              &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
              },
              &quot;knownUser&quot;: { # A known user. # A known user.
                &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
              },
              &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
              },
            },
          ],
          &quot;post&quot;: { # A regular posted comment. # A change on a regular posted comment.
            &quot;subtype&quot;: &quot;A String&quot;, # The sub-type of this event.
          },
          &quot;suggestion&quot;: { # A suggestion. # A change on a suggestion.
            &quot;subtype&quot;: &quot;A String&quot;, # The sub-type of this event.
          },
        },
        &quot;create&quot;: { # An object was created. # An object was created.
          &quot;copy&quot;: { # An object was created by copying an existing object. # If present, indicates the object was created by copying an existing Drive object.
            &quot;originalObject&quot;: { # A lightweight reference to the target of activity. # The the original object.
              &quot;drive&quot;: { # A lightweight reference to a shared drive. # The target is a shared drive.
                &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
              },
              &quot;driveItem&quot;: { # A lightweight reference to a Drive item, such as a file or folder. # The target is a Drive item.
                &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                },
                &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                  &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                },
                &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                },
                &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                  &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                },
                &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
              },
              &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
              },
            },
          },
          &quot;new&quot;: { # An object was created from scratch. # If present, indicates the object was newly created (e.g. as a blank document), not derived from a Drive object or external object.
          },
          &quot;upload&quot;: { # An object was uploaded into Drive. # If present, indicates the object originated externally and was uploaded to Drive.
          },
        },
        &quot;delete&quot;: { # An object was deleted. # An object was deleted.
          &quot;type&quot;: &quot;A String&quot;, # The type of delete action taken.
        },
        &quot;dlpChange&quot;: { # A change in the object&#x27;s data leak prevention status. # A change happened in data leak prevention status.
          &quot;type&quot;: &quot;A String&quot;, # The type of Data Leak Prevention (DLP) change.
        },
        &quot;edit&quot;: { # An empty message indicating an object was edited. # An object was edited.
        },
        &quot;move&quot;: { # An object was moved. # An object was moved.
          &quot;addedParents&quot;: [ # The added parent object(s).
            { # A lightweight reference to the target of activity.
              &quot;drive&quot;: { # A lightweight reference to a shared drive. # The target is a shared drive.
                &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
              },
              &quot;driveItem&quot;: { # A lightweight reference to a Drive item, such as a file or folder. # The target is a Drive item.
                &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                },
                &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                  &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                },
                &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                },
                &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                  &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                },
                &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
              },
              &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
              },
            },
          ],
          &quot;removedParents&quot;: [ # The removed parent object(s).
            { # A lightweight reference to the target of activity.
              &quot;drive&quot;: { # A lightweight reference to a shared drive. # The target is a shared drive.
                &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
              },
              &quot;driveItem&quot;: { # A lightweight reference to a Drive item, such as a file or folder. # The target is a Drive item.
                &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
                },
                &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                  &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
                },
                &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
                },
                &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                  &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
                },
                &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
                &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
              },
              &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
              },
            },
          ],
        },
        &quot;permissionChange&quot;: { # A change of the permission setting on an item. # The permission on an object was changed.
          &quot;addedPermissions&quot;: [ # The set of permissions added by this change.
            { # The permission setting of an object.
              &quot;allowDiscovery&quot;: True or False, # If true, the item can be discovered (e.g. in the user&#x27;s &quot;Shared with me&quot; collection) without needing a link to the item.
              &quot;anyone&quot;: { # Represents any user (including a logged out user). # If set, this permission applies to anyone, even logged out users.
              },
              &quot;domain&quot;: { # Information about a domain. # The domain to whom this permission applies.
                &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
              },
              &quot;group&quot;: { # Information about a group. # The group to whom this permission applies.
                &quot;email&quot;: &quot;A String&quot;, # The email address of the group.
                &quot;title&quot;: &quot;A String&quot;, # The title of the group.
              },
              &quot;role&quot;: &quot;A String&quot;, # Indicates the Google Drive permissions role. The role determines a user&#x27;s ability to read, write, and comment on items.
              &quot;user&quot;: { # Information about an end user. # The user to whom this permission applies.
                &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                },
                &quot;knownUser&quot;: { # A known user. # A known user.
                  &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                  &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                },
                &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                },
              },
            },
          ],
          &quot;removedPermissions&quot;: [ # The set of permissions removed by this change.
            { # The permission setting of an object.
              &quot;allowDiscovery&quot;: True or False, # If true, the item can be discovered (e.g. in the user&#x27;s &quot;Shared with me&quot; collection) without needing a link to the item.
              &quot;anyone&quot;: { # Represents any user (including a logged out user). # If set, this permission applies to anyone, even logged out users.
              },
              &quot;domain&quot;: { # Information about a domain. # The domain to whom this permission applies.
                &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
              },
              &quot;group&quot;: { # Information about a group. # The group to whom this permission applies.
                &quot;email&quot;: &quot;A String&quot;, # The email address of the group.
                &quot;title&quot;: &quot;A String&quot;, # The title of the group.
              },
              &quot;role&quot;: &quot;A String&quot;, # Indicates the Google Drive permissions role. The role determines a user&#x27;s ability to read, write, and comment on items.
              &quot;user&quot;: { # Information about an end user. # The user to whom this permission applies.
                &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                },
                &quot;knownUser&quot;: { # A known user. # A known user.
                  &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                  &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                },
                &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                },
              },
            },
          ],
        },
        &quot;reference&quot;: { # Activity in applications other than Drive. # An object was referenced in an application outside of Drive/Docs.
          &quot;type&quot;: &quot;A String&quot;, # The reference type corresponding to this event.
        },
        &quot;rename&quot;: { # An object was renamed. # An object was renamed.
          &quot;newTitle&quot;: &quot;A String&quot;, # The new title of the drive object.
          &quot;oldTitle&quot;: &quot;A String&quot;, # The previous title of the drive object.
        },
        &quot;restore&quot;: { # A deleted object was restored. # A deleted object was restored.
          &quot;type&quot;: &quot;A String&quot;, # The type of restore action taken.
        },
        &quot;settingsChange&quot;: { # Information about settings changes. # Settings were changed.
          &quot;restrictionChanges&quot;: [ # The set of changes made to restrictions.
            { # Information about restriction policy changes to a feature.
              &quot;feature&quot;: &quot;A String&quot;, # The feature which had a change in restriction policy.
              &quot;newRestriction&quot;: &quot;A String&quot;, # The restriction in place after the change.
            },
          ],
        },
      },
      &quot;targets&quot;: [ # All Google Drive objects this activity is about (e.g. file, folder, drive). This represents the state of the target immediately after the actions occurred.
        { # Information about the target of activity.
          &quot;drive&quot;: { # Information about a shared drive. # The target is a shared drive.
            &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
            &quot;root&quot;: { # A Drive item, such as a file or folder. # The root of this shared drive.
              &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
              },
              &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
              },
              &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
              },
              &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
              },
              &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
              &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
              &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
                &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                  &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                  &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                },
                &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                  &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                  &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                },
                &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                  &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                  &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                },
                &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                  &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                  },
                  &quot;knownUser&quot;: { # A known user. # A known user.
                    &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                    &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                  },
                  &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                  },
                },
              },
              &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
            },
            &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
          },
          &quot;driveItem&quot;: { # A Drive item, such as a file or folder. # The target is a Drive item.
            &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
            },
            &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
              &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
            },
            &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
            },
            &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
              &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
            },
            &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
            &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
            &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
              &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
              },
              &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
              },
              &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
              },
              &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                },
                &quot;knownUser&quot;: { # A known user. # A known user.
                  &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                  &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                },
                &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                },
              },
            },
            &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
          },
          &quot;fileComment&quot;: { # A comment on a file. # The target is a comment on a Drive file.
            &quot;legacyCommentId&quot;: &quot;A String&quot;, # The comment in the discussion thread. This identifier is an opaque string compatible with the Drive API; see https://developers.google.com/drive/v3/reference/comments/get
            &quot;legacyDiscussionId&quot;: &quot;A String&quot;, # The discussion thread to which the comment was added. This identifier is an opaque string compatible with the Drive API and references the first comment in a discussion; see https://developers.google.com/drive/v3/reference/comments/get
            &quot;linkToDiscussion&quot;: &quot;A String&quot;, # The link to the discussion thread containing this comment, for example, &quot;https://docs.google.com/DOCUMENT_ID/edit?disco=THREAD_ID&quot;.
            &quot;parent&quot;: { # A Drive item, such as a file or folder. # The Drive item containing this comment.
              &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
              },
              &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
              },
              &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
              },
              &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
              },
              &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
              &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
              &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
                &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                  &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                  &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                },
                &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                  &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                  &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                },
                &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                  &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                  &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                },
                &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                  &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                  },
                  &quot;knownUser&quot;: { # A known user. # A known user.
                    &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                    &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                  },
                  &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                  },
                },
              },
              &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
            },
          },
          &quot;teamDrive&quot;: { # This item is deprecated; please see `Drive` instead. # This field is deprecated; please use the `drive` field instead.
            &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `Drive.name` instead.
            &quot;root&quot;: { # A Drive item, such as a file or folder. # This field is deprecated; please see `Drive.root` instead.
              &quot;driveFile&quot;: { # A Drive item which is a file. # The Drive item is a file.
              },
              &quot;driveFolder&quot;: { # A Drive item which is a folder. # The Drive item is a folder. Includes information about the type of folder.
                &quot;type&quot;: &quot;A String&quot;, # The type of Drive folder.
              },
              &quot;file&quot;: { # This item is deprecated; please see `DriveFile` instead. # This field is deprecated; please use the `driveFile` field instead.
              },
              &quot;folder&quot;: { # This item is deprecated; please see `DriveFolder` instead. # This field is deprecated; please use the `driveFolder` field instead.
                &quot;type&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveFolder.type` instead.
              },
              &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.
              &quot;name&quot;: &quot;A String&quot;, # The target Drive item. The format is &quot;items/ITEM_ID&quot;.
              &quot;owner&quot;: { # Information about the owner of a Drive item. # Information about the owner of this Drive item.
                &quot;domain&quot;: { # Information about a domain. # The domain of the Drive item owner.
                  &quot;legacyId&quot;: &quot;A String&quot;, # An opaque string used to identify this domain.
                  &quot;name&quot;: &quot;A String&quot;, # The name of the domain, e.g. &quot;google.com&quot;.
                },
                &quot;drive&quot;: { # A lightweight reference to a shared drive. # The drive that owns the item.
                  &quot;name&quot;: &quot;A String&quot;, # The resource name of the shared drive. The format is &quot;COLLECTION_ID/DRIVE_ID&quot;. Clients should not assume a specific collection ID for this resource name.
                  &quot;title&quot;: &quot;A String&quot;, # The title of the shared drive.
                },
                &quot;teamDrive&quot;: { # This item is deprecated; please see `DriveReference` instead. # This field is deprecated; please use the `drive` field instead.
                  &quot;name&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.name` instead.
                  &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `DriveReference.title` instead.
                },
                &quot;user&quot;: { # Information about an end user. # The user that owns the Drive item.
                  &quot;deletedUser&quot;: { # A user whose account has since been deleted. # A user whose account has since been deleted.
                  },
                  &quot;knownUser&quot;: { # A known user. # A known user.
                    &quot;isCurrentUser&quot;: True or False, # True if this is the user making the request.
                    &quot;personName&quot;: &quot;A String&quot;, # The identifier for this user that can be used with the People API to get more information. The format is &quot;people/ACCOUNT_ID&quot;. See https://developers.google.com/people/.
                  },
                  &quot;unknownUser&quot;: { # A user about whom nothing is currently known. # A user about whom nothing is currently known.
                  },
                },
              },
              &quot;title&quot;: &quot;A String&quot;, # The title of the Drive item.
            },
            &quot;title&quot;: &quot;A String&quot;, # This field is deprecated; please see `Drive.title` instead.
          },
        },
      ],
      &quot;timeRange&quot;: { # Information about time ranges. # The activity occurred over this time range.
        &quot;endTime&quot;: &quot;A String&quot;, # The end of the time range.
        &quot;startTime&quot;: &quot;A String&quot;, # The start of the time range.
      },
      &quot;timestamp&quot;: &quot;A String&quot;, # The activity occurred at this specific time.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
}</pre>
</div>

<div class="method">
    <code class="details" id="query_next">query_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 &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>