<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="vault_v1.html">G Suite Vault API</a> . <a href="vault_v1.matters.html">matters</a> . <a href="vault_v1.matters.exports.html">exports</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="#create">create(matterId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates an Export.</p>
<p class="toc_element">
  <code><a href="#delete">delete(matterId, exportId, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes an Export.</p>
<p class="toc_element">
  <code><a href="#get">get(matterId, exportId, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an Export.</p>
<p class="toc_element">
  <code><a href="#list">list(matterId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists Exports.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(matterId, body=None, x__xgafv=None)</code>
  <pre>Creates an Export.

Args:
  matterId: string, The matter ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
  &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
    &quot;files&quot;: [ # Output only. The exported files on cloud storage.
      { # An export file on cloud storage
        &quot;bucketName&quot;: &quot;A String&quot;, # The cloud storage bucket name of this export file. Can be used in cloud storage JSON/XML API, but not to list the bucket contents. Instead, you can get individual export files by object name.
        &quot;md5Hash&quot;: &quot;A String&quot;, # The md5 hash of the file.
        &quot;objectName&quot;: &quot;A String&quot;, # The cloud storage object name of this export file. Can be used in cloud storage JSON/XML API.
        &quot;size&quot;: &quot;A String&quot;, # The size of the export file.
      },
    ],
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the export was created.
  &quot;exportOptions&quot;: { # Export advanced options # Advanced options of the export.
    &quot;driveOptions&quot;: { # The options for Drive export. # Option available for Drive export.
      &quot;includeAccessInfo&quot;: True or False, # Set to true to include access level information for users with indirect access to files.
    },
    &quot;groupsOptions&quot;: { # The options for groups export. # Option available for groups export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for groups export.
    },
    &quot;hangoutsChatOptions&quot;: { # The options for hangouts chat export. # Option available for hangouts chat export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for hangouts chat export.
    },
    &quot;mailOptions&quot;: { # The options for mail export. # Option available for mail export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export file format.
      &quot;showConfidentialModeContent&quot;: True or False, # Set to true to export confidential mode content.
    },
    &quot;region&quot;: &quot;A String&quot;, # The requested export location.
    &quot;voiceOptions&quot;: { # The options for voice export. # Option available for voice export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for voice export.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Output only. The generated export ID.
  &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID.
  &quot;name&quot;: &quot;A String&quot;, # The export name.
  &quot;query&quot;: { # A query definition relevant for search &amp; export. # The search query being exported.
    &quot;accountInfo&quot;: { # Accounts to search # When &#x27;ACCOUNT&#x27; is chosen as search method, account_info needs to be specified.
      &quot;emails&quot;: [ # A set of accounts to search.
        &quot;A String&quot;,
      ],
    },
    &quot;corpus&quot;: &quot;A String&quot;, # The corpus to search.
    &quot;dataScope&quot;: &quot;A String&quot;, # The data source to search from.
    &quot;driveOptions&quot;: { # Drive search advanced options # For Drive search, specify more options in this field.
      &quot;includeSharedDrives&quot;: True or False, # Set to true to include shared drive.
      &quot;includeTeamDrives&quot;: True or False, # Set to true to include Team Drive.
      &quot;versionDate&quot;: &quot;A String&quot;, # Search the versions of the Drive file as of the reference date. These timestamps are in GMT and rounded down to the given date.
    },
    &quot;endTime&quot;: &quot;A String&quot;, # The end time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
    &quot;hangoutsChatInfo&quot;: { # Accounts to search # When &#x27;ROOM&#x27; is chosen as search method, hangout_chats_info needs to be specified. (read-only)
      &quot;roomId&quot;: [ # A set of rooms to search.
        &quot;A String&quot;,
      ],
    },
    &quot;hangoutsChatOptions&quot;: { # Hangouts chat search advanced options # For hangouts chat search, specify more options in this field. (read-only)
      &quot;includeRooms&quot;: True or False, # Set to true to include rooms.
    },
    &quot;mailOptions&quot;: { # Mail search advanced options # For mail search, specify more options in this field.
      &quot;excludeDrafts&quot;: True or False, # Set to true to exclude drafts.
    },
    &quot;method&quot;: &quot;A String&quot;, # The search method to use. This field is similar to the search_method field but is introduced to support shared drives. It supports all search method types. In case the search_method is TEAM_DRIVE the response of this field will be SHARED_DRIVE only.
    &quot;orgUnitInfo&quot;: { # Org Unit to search # When &#x27;ORG_UNIT&#x27; is chosen as as search method, org_unit_info needs to be specified.
      &quot;orgUnitId&quot;: &quot;A String&quot;, # Org unit to search, as provided by the Admin SDK Directory API.
    },
    &quot;searchMethod&quot;: &quot;A String&quot;, # The search method to use.
    &quot;sharedDriveInfo&quot;: { # Shared drives to search # When &#x27;SHARED_DRIVE&#x27; is chosen as search method, shared_drive_info needs to be specified.
      &quot;sharedDriveIds&quot;: [ # List of Shared drive IDs, as provided by Drive API.
        &quot;A String&quot;,
      ],
    },
    &quot;startTime&quot;: &quot;A String&quot;, # The start time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
    &quot;teamDriveInfo&quot;: { # Team Drives to search # When &#x27;TEAM_DRIVE&#x27; is chosen as search method, team_drive_info needs to be specified.
      &quot;teamDriveIds&quot;: [ # List of Team Drive IDs, as provided by Drive API.
        &quot;A String&quot;,
      ],
    },
    &quot;terms&quot;: &quot;A String&quot;, # The corpus-specific search operators used to generate search results.
    &quot;timeZone&quot;: &quot;A String&quot;, # The time zone name. It should be an IANA TZ name, such as &quot;America/Los_Angeles&quot;. For more information, see Time Zone.
    &quot;voiceOptions&quot;: { # Voice search options # For voice search, specify more options in this field.
      &quot;coveredData&quot;: [ # Datatypes to search
        &quot;A String&quot;,
      ],
    },
  },
  &quot;requester&quot;: { # User&#x27;s information. # Output only. The requester of the export.
    &quot;displayName&quot;: &quot;A String&quot;, # The displayed name of the user.
    &quot;email&quot;: &quot;A String&quot;, # The email address of the user.
  },
  &quot;stats&quot;: { # Stats of an export. # Output only. Export statistics.
    &quot;exportedArtifactCount&quot;: &quot;A String&quot;, # The number of documents already processed by the export.
    &quot;sizeInBytes&quot;: &quot;A String&quot;, # The size of export in bytes.
    &quot;totalArtifactCount&quot;: &quot;A String&quot;, # The number of documents to be exported.
  },
  &quot;status&quot;: &quot;A String&quot;, # Output only. The export status.
}

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

Returns:
  An object of the form:

    { # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
  &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
    &quot;files&quot;: [ # Output only. The exported files on cloud storage.
      { # An export file on cloud storage
        &quot;bucketName&quot;: &quot;A String&quot;, # The cloud storage bucket name of this export file. Can be used in cloud storage JSON/XML API, but not to list the bucket contents. Instead, you can get individual export files by object name.
        &quot;md5Hash&quot;: &quot;A String&quot;, # The md5 hash of the file.
        &quot;objectName&quot;: &quot;A String&quot;, # The cloud storage object name of this export file. Can be used in cloud storage JSON/XML API.
        &quot;size&quot;: &quot;A String&quot;, # The size of the export file.
      },
    ],
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the export was created.
  &quot;exportOptions&quot;: { # Export advanced options # Advanced options of the export.
    &quot;driveOptions&quot;: { # The options for Drive export. # Option available for Drive export.
      &quot;includeAccessInfo&quot;: True or False, # Set to true to include access level information for users with indirect access to files.
    },
    &quot;groupsOptions&quot;: { # The options for groups export. # Option available for groups export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for groups export.
    },
    &quot;hangoutsChatOptions&quot;: { # The options for hangouts chat export. # Option available for hangouts chat export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for hangouts chat export.
    },
    &quot;mailOptions&quot;: { # The options for mail export. # Option available for mail export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export file format.
      &quot;showConfidentialModeContent&quot;: True or False, # Set to true to export confidential mode content.
    },
    &quot;region&quot;: &quot;A String&quot;, # The requested export location.
    &quot;voiceOptions&quot;: { # The options for voice export. # Option available for voice export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for voice export.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Output only. The generated export ID.
  &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID.
  &quot;name&quot;: &quot;A String&quot;, # The export name.
  &quot;query&quot;: { # A query definition relevant for search &amp; export. # The search query being exported.
    &quot;accountInfo&quot;: { # Accounts to search # When &#x27;ACCOUNT&#x27; is chosen as search method, account_info needs to be specified.
      &quot;emails&quot;: [ # A set of accounts to search.
        &quot;A String&quot;,
      ],
    },
    &quot;corpus&quot;: &quot;A String&quot;, # The corpus to search.
    &quot;dataScope&quot;: &quot;A String&quot;, # The data source to search from.
    &quot;driveOptions&quot;: { # Drive search advanced options # For Drive search, specify more options in this field.
      &quot;includeSharedDrives&quot;: True or False, # Set to true to include shared drive.
      &quot;includeTeamDrives&quot;: True or False, # Set to true to include Team Drive.
      &quot;versionDate&quot;: &quot;A String&quot;, # Search the versions of the Drive file as of the reference date. These timestamps are in GMT and rounded down to the given date.
    },
    &quot;endTime&quot;: &quot;A String&quot;, # The end time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
    &quot;hangoutsChatInfo&quot;: { # Accounts to search # When &#x27;ROOM&#x27; is chosen as search method, hangout_chats_info needs to be specified. (read-only)
      &quot;roomId&quot;: [ # A set of rooms to search.
        &quot;A String&quot;,
      ],
    },
    &quot;hangoutsChatOptions&quot;: { # Hangouts chat search advanced options # For hangouts chat search, specify more options in this field. (read-only)
      &quot;includeRooms&quot;: True or False, # Set to true to include rooms.
    },
    &quot;mailOptions&quot;: { # Mail search advanced options # For mail search, specify more options in this field.
      &quot;excludeDrafts&quot;: True or False, # Set to true to exclude drafts.
    },
    &quot;method&quot;: &quot;A String&quot;, # The search method to use. This field is similar to the search_method field but is introduced to support shared drives. It supports all search method types. In case the search_method is TEAM_DRIVE the response of this field will be SHARED_DRIVE only.
    &quot;orgUnitInfo&quot;: { # Org Unit to search # When &#x27;ORG_UNIT&#x27; is chosen as as search method, org_unit_info needs to be specified.
      &quot;orgUnitId&quot;: &quot;A String&quot;, # Org unit to search, as provided by the Admin SDK Directory API.
    },
    &quot;searchMethod&quot;: &quot;A String&quot;, # The search method to use.
    &quot;sharedDriveInfo&quot;: { # Shared drives to search # When &#x27;SHARED_DRIVE&#x27; is chosen as search method, shared_drive_info needs to be specified.
      &quot;sharedDriveIds&quot;: [ # List of Shared drive IDs, as provided by Drive API.
        &quot;A String&quot;,
      ],
    },
    &quot;startTime&quot;: &quot;A String&quot;, # The start time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
    &quot;teamDriveInfo&quot;: { # Team Drives to search # When &#x27;TEAM_DRIVE&#x27; is chosen as search method, team_drive_info needs to be specified.
      &quot;teamDriveIds&quot;: [ # List of Team Drive IDs, as provided by Drive API.
        &quot;A String&quot;,
      ],
    },
    &quot;terms&quot;: &quot;A String&quot;, # The corpus-specific search operators used to generate search results.
    &quot;timeZone&quot;: &quot;A String&quot;, # The time zone name. It should be an IANA TZ name, such as &quot;America/Los_Angeles&quot;. For more information, see Time Zone.
    &quot;voiceOptions&quot;: { # Voice search options # For voice search, specify more options in this field.
      &quot;coveredData&quot;: [ # Datatypes to search
        &quot;A String&quot;,
      ],
    },
  },
  &quot;requester&quot;: { # User&#x27;s information. # Output only. The requester of the export.
    &quot;displayName&quot;: &quot;A String&quot;, # The displayed name of the user.
    &quot;email&quot;: &quot;A String&quot;, # The email address of the user.
  },
  &quot;stats&quot;: { # Stats of an export. # Output only. Export statistics.
    &quot;exportedArtifactCount&quot;: &quot;A String&quot;, # The number of documents already processed by the export.
    &quot;sizeInBytes&quot;: &quot;A String&quot;, # The size of export in bytes.
    &quot;totalArtifactCount&quot;: &quot;A String&quot;, # The number of documents to be exported.
  },
  &quot;status&quot;: &quot;A String&quot;, # Output only. The export status.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(matterId, exportId, x__xgafv=None)</code>
  <pre>Deletes an Export.

Args:
  matterId: string, The matter ID. (required)
  exportId: string, The export ID. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(matterId, exportId, x__xgafv=None)</code>
  <pre>Gets an Export.

Args:
  matterId: string, The matter ID. (required)
  exportId: string, The export ID. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
  &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
    &quot;files&quot;: [ # Output only. The exported files on cloud storage.
      { # An export file on cloud storage
        &quot;bucketName&quot;: &quot;A String&quot;, # The cloud storage bucket name of this export file. Can be used in cloud storage JSON/XML API, but not to list the bucket contents. Instead, you can get individual export files by object name.
        &quot;md5Hash&quot;: &quot;A String&quot;, # The md5 hash of the file.
        &quot;objectName&quot;: &quot;A String&quot;, # The cloud storage object name of this export file. Can be used in cloud storage JSON/XML API.
        &quot;size&quot;: &quot;A String&quot;, # The size of the export file.
      },
    ],
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the export was created.
  &quot;exportOptions&quot;: { # Export advanced options # Advanced options of the export.
    &quot;driveOptions&quot;: { # The options for Drive export. # Option available for Drive export.
      &quot;includeAccessInfo&quot;: True or False, # Set to true to include access level information for users with indirect access to files.
    },
    &quot;groupsOptions&quot;: { # The options for groups export. # Option available for groups export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for groups export.
    },
    &quot;hangoutsChatOptions&quot;: { # The options for hangouts chat export. # Option available for hangouts chat export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for hangouts chat export.
    },
    &quot;mailOptions&quot;: { # The options for mail export. # Option available for mail export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export file format.
      &quot;showConfidentialModeContent&quot;: True or False, # Set to true to export confidential mode content.
    },
    &quot;region&quot;: &quot;A String&quot;, # The requested export location.
    &quot;voiceOptions&quot;: { # The options for voice export. # Option available for voice export.
      &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for voice export.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Output only. The generated export ID.
  &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID.
  &quot;name&quot;: &quot;A String&quot;, # The export name.
  &quot;query&quot;: { # A query definition relevant for search &amp; export. # The search query being exported.
    &quot;accountInfo&quot;: { # Accounts to search # When &#x27;ACCOUNT&#x27; is chosen as search method, account_info needs to be specified.
      &quot;emails&quot;: [ # A set of accounts to search.
        &quot;A String&quot;,
      ],
    },
    &quot;corpus&quot;: &quot;A String&quot;, # The corpus to search.
    &quot;dataScope&quot;: &quot;A String&quot;, # The data source to search from.
    &quot;driveOptions&quot;: { # Drive search advanced options # For Drive search, specify more options in this field.
      &quot;includeSharedDrives&quot;: True or False, # Set to true to include shared drive.
      &quot;includeTeamDrives&quot;: True or False, # Set to true to include Team Drive.
      &quot;versionDate&quot;: &quot;A String&quot;, # Search the versions of the Drive file as of the reference date. These timestamps are in GMT and rounded down to the given date.
    },
    &quot;endTime&quot;: &quot;A String&quot;, # The end time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
    &quot;hangoutsChatInfo&quot;: { # Accounts to search # When &#x27;ROOM&#x27; is chosen as search method, hangout_chats_info needs to be specified. (read-only)
      &quot;roomId&quot;: [ # A set of rooms to search.
        &quot;A String&quot;,
      ],
    },
    &quot;hangoutsChatOptions&quot;: { # Hangouts chat search advanced options # For hangouts chat search, specify more options in this field. (read-only)
      &quot;includeRooms&quot;: True or False, # Set to true to include rooms.
    },
    &quot;mailOptions&quot;: { # Mail search advanced options # For mail search, specify more options in this field.
      &quot;excludeDrafts&quot;: True or False, # Set to true to exclude drafts.
    },
    &quot;method&quot;: &quot;A String&quot;, # The search method to use. This field is similar to the search_method field but is introduced to support shared drives. It supports all search method types. In case the search_method is TEAM_DRIVE the response of this field will be SHARED_DRIVE only.
    &quot;orgUnitInfo&quot;: { # Org Unit to search # When &#x27;ORG_UNIT&#x27; is chosen as as search method, org_unit_info needs to be specified.
      &quot;orgUnitId&quot;: &quot;A String&quot;, # Org unit to search, as provided by the Admin SDK Directory API.
    },
    &quot;searchMethod&quot;: &quot;A String&quot;, # The search method to use.
    &quot;sharedDriveInfo&quot;: { # Shared drives to search # When &#x27;SHARED_DRIVE&#x27; is chosen as search method, shared_drive_info needs to be specified.
      &quot;sharedDriveIds&quot;: [ # List of Shared drive IDs, as provided by Drive API.
        &quot;A String&quot;,
      ],
    },
    &quot;startTime&quot;: &quot;A String&quot;, # The start time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
    &quot;teamDriveInfo&quot;: { # Team Drives to search # When &#x27;TEAM_DRIVE&#x27; is chosen as search method, team_drive_info needs to be specified.
      &quot;teamDriveIds&quot;: [ # List of Team Drive IDs, as provided by Drive API.
        &quot;A String&quot;,
      ],
    },
    &quot;terms&quot;: &quot;A String&quot;, # The corpus-specific search operators used to generate search results.
    &quot;timeZone&quot;: &quot;A String&quot;, # The time zone name. It should be an IANA TZ name, such as &quot;America/Los_Angeles&quot;. For more information, see Time Zone.
    &quot;voiceOptions&quot;: { # Voice search options # For voice search, specify more options in this field.
      &quot;coveredData&quot;: [ # Datatypes to search
        &quot;A String&quot;,
      ],
    },
  },
  &quot;requester&quot;: { # User&#x27;s information. # Output only. The requester of the export.
    &quot;displayName&quot;: &quot;A String&quot;, # The displayed name of the user.
    &quot;email&quot;: &quot;A String&quot;, # The email address of the user.
  },
  &quot;stats&quot;: { # Stats of an export. # Output only. Export statistics.
    &quot;exportedArtifactCount&quot;: &quot;A String&quot;, # The number of documents already processed by the export.
    &quot;sizeInBytes&quot;: &quot;A String&quot;, # The size of export in bytes.
    &quot;totalArtifactCount&quot;: &quot;A String&quot;, # The number of documents to be exported.
  },
  &quot;status&quot;: &quot;A String&quot;, # Output only. The export status.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(matterId, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists Exports.

Args:
  matterId: string, The matter ID. (required)
  pageSize: integer, The number of exports to return in the response.
  pageToken: string, The pagination token as returned in the response.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The holds for a matter.
  &quot;exports&quot;: [ # The list of exports.
    { # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
      &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
        &quot;files&quot;: [ # Output only. The exported files on cloud storage.
          { # An export file on cloud storage
            &quot;bucketName&quot;: &quot;A String&quot;, # The cloud storage bucket name of this export file. Can be used in cloud storage JSON/XML API, but not to list the bucket contents. Instead, you can get individual export files by object name.
            &quot;md5Hash&quot;: &quot;A String&quot;, # The md5 hash of the file.
            &quot;objectName&quot;: &quot;A String&quot;, # The cloud storage object name of this export file. Can be used in cloud storage JSON/XML API.
            &quot;size&quot;: &quot;A String&quot;, # The size of the export file.
          },
        ],
      },
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the export was created.
      &quot;exportOptions&quot;: { # Export advanced options # Advanced options of the export.
        &quot;driveOptions&quot;: { # The options for Drive export. # Option available for Drive export.
          &quot;includeAccessInfo&quot;: True or False, # Set to true to include access level information for users with indirect access to files.
        },
        &quot;groupsOptions&quot;: { # The options for groups export. # Option available for groups export.
          &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for groups export.
        },
        &quot;hangoutsChatOptions&quot;: { # The options for hangouts chat export. # Option available for hangouts chat export.
          &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for hangouts chat export.
        },
        &quot;mailOptions&quot;: { # The options for mail export. # Option available for mail export.
          &quot;exportFormat&quot;: &quot;A String&quot;, # The export file format.
          &quot;showConfidentialModeContent&quot;: True or False, # Set to true to export confidential mode content.
        },
        &quot;region&quot;: &quot;A String&quot;, # The requested export location.
        &quot;voiceOptions&quot;: { # The options for voice export. # Option available for voice export.
          &quot;exportFormat&quot;: &quot;A String&quot;, # The export format for voice export.
        },
      },
      &quot;id&quot;: &quot;A String&quot;, # Output only. The generated export ID.
      &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID.
      &quot;name&quot;: &quot;A String&quot;, # The export name.
      &quot;query&quot;: { # A query definition relevant for search &amp; export. # The search query being exported.
        &quot;accountInfo&quot;: { # Accounts to search # When &#x27;ACCOUNT&#x27; is chosen as search method, account_info needs to be specified.
          &quot;emails&quot;: [ # A set of accounts to search.
            &quot;A String&quot;,
          ],
        },
        &quot;corpus&quot;: &quot;A String&quot;, # The corpus to search.
        &quot;dataScope&quot;: &quot;A String&quot;, # The data source to search from.
        &quot;driveOptions&quot;: { # Drive search advanced options # For Drive search, specify more options in this field.
          &quot;includeSharedDrives&quot;: True or False, # Set to true to include shared drive.
          &quot;includeTeamDrives&quot;: True or False, # Set to true to include Team Drive.
          &quot;versionDate&quot;: &quot;A String&quot;, # Search the versions of the Drive file as of the reference date. These timestamps are in GMT and rounded down to the given date.
        },
        &quot;endTime&quot;: &quot;A String&quot;, # The end time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
        &quot;hangoutsChatInfo&quot;: { # Accounts to search # When &#x27;ROOM&#x27; is chosen as search method, hangout_chats_info needs to be specified. (read-only)
          &quot;roomId&quot;: [ # A set of rooms to search.
            &quot;A String&quot;,
          ],
        },
        &quot;hangoutsChatOptions&quot;: { # Hangouts chat search advanced options # For hangouts chat search, specify more options in this field. (read-only)
          &quot;includeRooms&quot;: True or False, # Set to true to include rooms.
        },
        &quot;mailOptions&quot;: { # Mail search advanced options # For mail search, specify more options in this field.
          &quot;excludeDrafts&quot;: True or False, # Set to true to exclude drafts.
        },
        &quot;method&quot;: &quot;A String&quot;, # The search method to use. This field is similar to the search_method field but is introduced to support shared drives. It supports all search method types. In case the search_method is TEAM_DRIVE the response of this field will be SHARED_DRIVE only.
        &quot;orgUnitInfo&quot;: { # Org Unit to search # When &#x27;ORG_UNIT&#x27; is chosen as as search method, org_unit_info needs to be specified.
          &quot;orgUnitId&quot;: &quot;A String&quot;, # Org unit to search, as provided by the Admin SDK Directory API.
        },
        &quot;searchMethod&quot;: &quot;A String&quot;, # The search method to use.
        &quot;sharedDriveInfo&quot;: { # Shared drives to search # When &#x27;SHARED_DRIVE&#x27; is chosen as search method, shared_drive_info needs to be specified.
          &quot;sharedDriveIds&quot;: [ # List of Shared drive IDs, as provided by Drive API.
            &quot;A String&quot;,
          ],
        },
        &quot;startTime&quot;: &quot;A String&quot;, # The start time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
        &quot;teamDriveInfo&quot;: { # Team Drives to search # When &#x27;TEAM_DRIVE&#x27; is chosen as search method, team_drive_info needs to be specified.
          &quot;teamDriveIds&quot;: [ # List of Team Drive IDs, as provided by Drive API.
            &quot;A String&quot;,
          ],
        },
        &quot;terms&quot;: &quot;A String&quot;, # The corpus-specific search operators used to generate search results.
        &quot;timeZone&quot;: &quot;A String&quot;, # The time zone name. It should be an IANA TZ name, such as &quot;America/Los_Angeles&quot;. For more information, see Time Zone.
        &quot;voiceOptions&quot;: { # Voice search options # For voice search, specify more options in this field.
          &quot;coveredData&quot;: [ # Datatypes to search
            &quot;A String&quot;,
          ],
        },
      },
      &quot;requester&quot;: { # User&#x27;s information. # Output only. The requester of the export.
        &quot;displayName&quot;: &quot;A String&quot;, # The displayed name of the user.
        &quot;email&quot;: &quot;A String&quot;, # The email address of the user.
      },
      &quot;stats&quot;: { # Stats of an export. # Output only. Export statistics.
        &quot;exportedArtifactCount&quot;: &quot;A String&quot;, # The number of documents already processed by the export.
        &quot;sizeInBytes&quot;: &quot;A String&quot;, # The size of export in bytes.
        &quot;totalArtifactCount&quot;: &quot;A String&quot;, # The number of documents to be exported.
      },
      &quot;status&quot;: &quot;A String&quot;, # Output only. The export status.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token to retrieve the next page of results in the list.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>