<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="#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="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.
    "pageSize": 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.
    "ancestorName": "A String", # Return activities for this Drive folder and all children and descendants.
        # The format is "items/ITEM_ID".
    "filter": "A String", # The filtering for items returned from this query request. The format of the
        # filter string is a sequence of expressions, joined by an optional "AND",
        # where each expression is of the form "field operator value".
        # 
        # Supported fields:
        # 
        #   - &lt;tt&gt;time&lt;/tt&gt;: Uses numerical operators on date values either in
        #     terms of milliseconds since Jan 1, 1970 or in RFC 3339 format.
        #     Examples:
        #       - &lt;tt&gt;time &gt; 1452409200000 AND time &lt;= 1492812924310&lt;/tt&gt;
        #       - &lt;tt&gt;time &gt;= "2016-01-10T01:02:03-05:00"&lt;/tt&gt;
        # 
        #   - &lt;tt&gt;detail.action_detail_case&lt;/tt&gt;: Uses the "has" operator (:) and
        #     either a singular value or a list of allowed action types enclosed in
        #     parentheses.
        #     Examples:
        #       - &lt;tt&gt;detail.action_detail_case: RENAME&lt;/tt&gt;
        #       - &lt;tt&gt;detail.action_detail_case:(CREATE EDIT)&lt;/tt&gt;
        #       - &lt;tt&gt;-detail.action_detail_case:MOVE&lt;/tt&gt;
    "pageToken": "A String", # 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.
    "consolidationStrategy": { # How the individual activities are consolidated. A set of activities may be # Details on how to consolidate related actions that make up the activity. If
        # not set, then related actions are not consolidated.
        # 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.
      "none": { # A strategy which does no consolidation of individual activities. # The individual activities are not consolidated.
      },
      "legacy": { # A strategy which consolidates activities using the grouping rules from the # The individual activities are consolidated using the legacy strategy.
          # 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.
      },
    },
    "itemName": "A String", # Return activities for this Drive item. The format is
        # "items/ITEM_ID".
  }

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

</body></html>