# G Suite Vault API . matters . holds

## Instance Methods

Returns the accounts Resource.

Adds HeldAccounts to a hold. Returns a list of accounts that have been

Creates a hold in the given matter.

Removes a hold by ID. This will release any HeldAccounts on this Hold.

Gets a hold by ID.

Lists holds within a matter. An empty page token in ListHoldsResponse

Retrieves the next page of results.

Removes HeldAccounts from a hold. Returns a list of statuses in the same

Updates the OU and/or query parameters of a hold. You cannot add accounts

### Method Details

`addHeldAccounts(matterId, holdId, body, x__xgafv=None)`

    Adds HeldAccounts to a hold. Returns a list of accounts that have been
    successfully added. Accounts can only be added to an existing account-based
    hold.

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

    { # Add a list of accounts to a hold.
        "accountIds": [ # Account ids to identify which accounts to add. Only account_ids or only
            # emails should be specified, but not both.
          "A String",
        ],
        "emails": [ # Emails to identify which accounts to add. Only emails or only account_ids
            # should be specified, but not both.
          "A String",
        ],
      }

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

    Returns:
      An object of the form:

        { # Response for batch create held accounts.
        "responses": [ # The list of responses, in the same order as the batch request.
          { # A status detailing the status of each account creation, and the
              # HeldAccount, if successful.
            "status": { # The `Status` type defines a logical error model that is suitable for # This represents the success status. If failed, check message.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). The error model is designed to be:
                #
                # - Simple to use and understand for most users
                # - Flexible enough to meet unexpected needs
                #
                # # Overview
                #
                # The `Status` message contains three pieces of data: error code, error
                # message, and error details. The error code should be an enum value of
                # google.rpc.Code, but it may accept additional error codes if needed.  The
                # error message should be a developer-facing English message that helps
                # developers *understand* and *resolve* the error. If a localized user-facing
                # error message is needed, put the localized message in the error details or
                # localize it in the client. The optional error details may contain arbitrary
                # information about the error. There is a predefined set of error detail types
                # in the package `google.rpc` that can be used for common error conditions.
                #
                # # Language mapping
                #
                # The `Status` message is the logical representation of the error model, but it
                # is not necessarily the actual wire format. When the `Status` message is
                # exposed in different client libraries and different wire protocols, it can be
                # mapped differently. For example, it will likely be mapped to some exceptions
                # in Java, but more likely mapped to some error codes in C.
                #
                # # Other uses
                #
                # The error model and the `Status` message can be used in a variety of
                # environments, either with or without APIs, to provide a
                # consistent developer experience across different environments.
                #
                # Example uses of this error model include:
                #
                # - Partial errors. If a service needs to return partial errors to the client,
                #     it may embed the `Status` in the normal response to indicate the partial
                #     errors.
                #
                # - Workflow errors. A typical workflow has multiple steps. Each step may
                #     have a `Status` message for error reporting.
                #
                # - Batch operations. If a client uses batch request and batch response, the
                #     `Status` message should be used directly inside batch response, one for
                #     each error sub-response.
                #
                # - Asynchronous operations. If an API call embeds asynchronous operation
                #     results in its response, the status of those operations should be
                #     represented directly using the `Status` message.
                #
                # - Logging. If some API errors are stored in logs, the message `Status` could
                #     be used directly after any stripping needed for security/privacy reasons.
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
            },
            "account": { # An account being held in a particular hold. This structure is immutable. # If present, this account was successfully created.
                # This can be either a single user or a google group, depending on the corpus.
              "lastName": "A String", # Output only. The last name of the account holder.
              "holdTime": "A String", # Output only. When the account was put on hold.
              "email": "A String", # The primary email address of the account. If used as an input, this takes
                  # precedence over account ID.
              "firstName": "A String", # Output only. The first name of the account holder.
              "accountId": "A String", # The account's ID as provided by the
                  # Admin SDK.
            },
          },
        ],
      }

`create(matterId, body, x__xgafv=None)`

    Creates a hold in the given matter.

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

    { # Represents a hold within Vault. A hold restricts purging of
        # artifacts based on the combination of the query and accounts restrictions.
        # A hold can be configured to either apply to an explicitly configured set
        # of accounts, or can be applied to all members of an organizational unit.
      "updateTime": "A String", # The last time this hold was modified.
      "name": "A String", # The name of the hold.
      "orgUnit": { # A organizational unit being held in a particular hold. # If set, the hold applies to all members of the organizational unit and
          # accounts must be empty. This property is mutable. For groups holds,
          # set the accounts field.
          # This structure is immutable.
        "holdTime": "A String", # When the org unit was put on hold. This property is immutable.
        "orgUnitId": "A String", # The org unit's immutable ID as provided by the Admin SDK.
      },
      "accounts": [ # If set, the hold applies to the enumerated accounts and org_unit must be
          # empty.
        { # An account being held in a particular hold. This structure is immutable.
            # This can be either a single user or a google group, depending on the corpus.
          "lastName": "A String", # Output only. The last name of the account holder.
          "holdTime": "A String", # Output only. When the account was put on hold.
          "email": "A String", # The primary email address of the account. If used as an input, this takes
              # precedence over account ID.
          "firstName": "A String", # Output only. The first name of the account holder.
          "accountId": "A String", # The account's ID as provided by the
              # Admin SDK.
        },
      ],
      "query": { # Corpus specific queries. # The corpus-specific query. If set, the corpusQuery must match corpus
          # type.
        "hangoutsChatQuery": { # Query options for hangouts chat holds. # Details pertaining to Hangouts Chat holds. If set, corpus must be
            # Hangouts Chat.
          "includeRooms": True or False, # If true, include rooms the user has participated in.
        },
        "driveQuery": { # Query options for Drive holds. # Details pertaining to Drive holds. If set, corpus must be Drive.
          "includeSharedDriveFiles": True or False, # If true, include files in shared drives in the hold.
          "includeTeamDriveFiles": True or False, # If true, include files in Team Drives in the hold.
        },
        "mailQuery": { # Query options for mail holds. # Details pertaining to mail holds. If set, corpus must be mail.
          "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
          "terms": "A String", # The search terms for the hold.
          "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
        },
        "groupsQuery": { # Query options for group holds. # Details pertaining to Groups holds. If set, corpus must be Groups.
          "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
          "terms": "A String", # The search terms for the hold.
          "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
        },
      },
      "corpus": "A String", # The corpus to be searched.
      "holdId": "A String", # The unique immutable ID of the hold. Assigned during creation.
    }

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

    Returns:
      An object of the form:

        { # Represents a hold within Vault. A hold restricts purging of
          # artifacts based on the combination of the query and accounts restrictions.
          # A hold can be configured to either apply to an explicitly configured set
          # of accounts, or can be applied to all members of an organizational unit.
        "updateTime": "A String", # The last time this hold was modified.
        "name": "A String", # The name of the hold.
        "orgUnit": { # A organizational unit being held in a particular hold. # If set, the hold applies to all members of the organizational unit and
            # accounts must be empty. This property is mutable. For groups holds,
            # set the accounts field.
            # This structure is immutable.
          "holdTime": "A String", # When the org unit was put on hold. This property is immutable.
          "orgUnitId": "A String", # The org unit's immutable ID as provided by the Admin SDK.
        },
        "accounts": [ # If set, the hold applies to the enumerated accounts and org_unit must be
            # empty.
          { # An account being held in a particular hold. This structure is immutable.
              # This can be either a single user or a google group, depending on the corpus.
            "lastName": "A String", # Output only. The last name of the account holder.
            "holdTime": "A String", # Output only. When the account was put on hold.
            "email": "A String", # The primary email address of the account. If used as an input, this takes
                # precedence over account ID.
            "firstName": "A String", # Output only. The first name of the account holder.
            "accountId": "A String", # The account's ID as provided by the
                # Admin SDK.
          },
        ],
        "query": { # Corpus specific queries. # The corpus-specific query. If set, the corpusQuery must match corpus
            # type.
          "hangoutsChatQuery": { # Query options for hangouts chat holds. # Details pertaining to Hangouts Chat holds. If set, corpus must be
              # Hangouts Chat.
            "includeRooms": True or False, # If true, include rooms the user has participated in.
          },
          "driveQuery": { # Query options for Drive holds. # Details pertaining to Drive holds. If set, corpus must be Drive.
            "includeSharedDriveFiles": True or False, # If true, include files in shared drives in the hold.
            "includeTeamDriveFiles": True or False, # If true, include files in Team Drives in the hold.
          },
          "mailQuery": { # Query options for mail holds. # Details pertaining to mail holds. If set, corpus must be mail.
            "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
            "terms": "A String", # The search terms for the hold.
            "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
          },
          "groupsQuery": { # Query options for group holds. # Details pertaining to Groups holds. If set, corpus must be Groups.
            "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
            "terms": "A String", # The search terms for the hold.
            "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
          },
        },
        "corpus": "A String", # The corpus to be searched.
        "holdId": "A String", # The unique immutable ID of the hold. Assigned during creation.
      }

`delete(matterId, holdId, x__xgafv=None)`

    Removes a hold by ID. This will release any HeldAccounts on this Hold.

    Args:
      matterId: string, The matter ID. (required)
      holdId: string, The hold 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 `{}`.
      }

`get(matterId, holdId, x__xgafv=None, view=None)`

    Gets a hold by ID.

    Args:
      matterId: string, The matter ID. (required)
      holdId: string, The hold ID. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      view: string, Specifies which parts of the Hold to return.

    Returns:
      An object of the form:

        { # Represents a hold within Vault. A hold restricts purging of
          # artifacts based on the combination of the query and accounts restrictions.
          # A hold can be configured to either apply to an explicitly configured set
          # of accounts, or can be applied to all members of an organizational unit.
        "updateTime": "A String", # The last time this hold was modified.
        "name": "A String", # The name of the hold.
        "orgUnit": { # A organizational unit being held in a particular hold. # If set, the hold applies to all members of the organizational unit and
            # accounts must be empty. This property is mutable. For groups holds,
            # set the accounts field.
            # This structure is immutable.
          "holdTime": "A String", # When the org unit was put on hold. This property is immutable.
          "orgUnitId": "A String", # The org unit's immutable ID as provided by the Admin SDK.
        },
        "accounts": [ # If set, the hold applies to the enumerated accounts and org_unit must be
            # empty.
          { # An account being held in a particular hold. This structure is immutable.
              # This can be either a single user or a google group, depending on the corpus.
            "lastName": "A String", # Output only. The last name of the account holder.
            "holdTime": "A String", # Output only. When the account was put on hold.
            "email": "A String", # The primary email address of the account. If used as an input, this takes
                # precedence over account ID.
            "firstName": "A String", # Output only. The first name of the account holder.
            "accountId": "A String", # The account's ID as provided by the
                # Admin SDK.
          },
        ],
        "query": { # Corpus specific queries. # The corpus-specific query. If set, the corpusQuery must match corpus
            # type.
          "hangoutsChatQuery": { # Query options for hangouts chat holds. # Details pertaining to Hangouts Chat holds. If set, corpus must be
              # Hangouts Chat.
            "includeRooms": True or False, # If true, include rooms the user has participated in.
          },
          "driveQuery": { # Query options for Drive holds. # Details pertaining to Drive holds. If set, corpus must be Drive.
            "includeSharedDriveFiles": True or False, # If true, include files in shared drives in the hold.
            "includeTeamDriveFiles": True or False, # If true, include files in Team Drives in the hold.
          },
          "mailQuery": { # Query options for mail holds. # Details pertaining to mail holds. If set, corpus must be mail.
            "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
            "terms": "A String", # The search terms for the hold.
            "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
          },
          "groupsQuery": { # Query options for group holds. # Details pertaining to Groups holds. If set, corpus must be Groups.
            "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
            "terms": "A String", # The search terms for the hold.
            "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
          },
        },
        "corpus": "A String", # The corpus to be searched.
        "holdId": "A String", # The unique immutable ID of the hold. Assigned during creation.
      }

`list(matterId, pageSize=None, pageToken=None, x__xgafv=None, view=None)`

    Lists holds within a matter. An empty page token in ListHoldsResponse
    denotes no more holds to list.

    Args:
      matterId: string, The matter ID. (required)
      pageSize: integer, The number of holds to return in the response, between 0 and 100 inclusive.
    Leaving this empty, or as 0, is the same as page_size = 100.
      pageToken: string, The pagination token as returned in the response.
    An empty token means start from the beginning.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      view: string, Specifies which parts of the Hold to return.

    Returns:
      An object of the form:

        { # The holds for a matter.
        "nextPageToken": "A String", # Page token to retrieve the next page of results in the list.
            # If this is empty, then there are no more holds to list.
        "holds": [ # The list of holds.
          { # Represents a hold within Vault. A hold restricts purging of
              # artifacts based on the combination of the query and accounts restrictions.
              # A hold can be configured to either apply to an explicitly configured set
              # of accounts, or can be applied to all members of an organizational unit.
            "updateTime": "A String", # The last time this hold was modified.
            "name": "A String", # The name of the hold.
            "orgUnit": { # A organizational unit being held in a particular hold. # If set, the hold applies to all members of the organizational unit and
                # accounts must be empty. This property is mutable. For groups holds,
                # set the accounts field.
                # This structure is immutable.
              "holdTime": "A String", # When the org unit was put on hold. This property is immutable.
              "orgUnitId": "A String", # The org unit's immutable ID as provided by the Admin SDK.
            },
            "accounts": [ # If set, the hold applies to the enumerated accounts and org_unit must be
                # empty.
              { # An account being held in a particular hold. This structure is immutable.
                  # This can be either a single user or a google group, depending on the corpus.
                "lastName": "A String", # Output only. The last name of the account holder.
                "holdTime": "A String", # Output only. When the account was put on hold.
                "email": "A String", # The primary email address of the account. If used as an input, this takes
                    # precedence over account ID.
                "firstName": "A String", # Output only. The first name of the account holder.
                "accountId": "A String", # The account's ID as provided by the
                    # Admin SDK.
              },
            ],
            "query": { # Corpus specific queries. # The corpus-specific query. If set, the corpusQuery must match corpus
                # type.
              "hangoutsChatQuery": { # Query options for hangouts chat holds. # Details pertaining to Hangouts Chat holds. If set, corpus must be
                  # Hangouts Chat.
                "includeRooms": True or False, # If true, include rooms the user has participated in.
              },
              "driveQuery": { # Query options for Drive holds. # Details pertaining to Drive holds. If set, corpus must be Drive.
                "includeSharedDriveFiles": True or False, # If true, include files in shared drives in the hold.
                "includeTeamDriveFiles": True or False, # If true, include files in Team Drives in the hold.
              },
              "mailQuery": { # Query options for mail holds. # Details pertaining to mail holds. If set, corpus must be mail.
                "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                    # rounded down to the start of the given date.
                "terms": "A String", # The search terms for the hold.
                "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                    # rounded down to the start of the given date.
              },
              "groupsQuery": { # Query options for group holds. # Details pertaining to Groups holds. If set, corpus must be Groups.
                "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                    # rounded down to the start of the given date.
                "terms": "A String", # The search terms for the hold.
                "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                    # rounded down to the start of the given date.
              },
            },
            "corpus": "A String", # The corpus to be searched.
            "holdId": "A String", # The unique immutable ID of the hold. Assigned during creation.
          },
        ],
      }

`list_next(previous_request, previous_response)`

    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.

`removeHeldAccounts(matterId, holdId, body, x__xgafv=None)`

    Removes HeldAccounts from a hold. Returns a list of statuses in the same
    order as the request. If this request leaves the hold with no held
    accounts, the hold will not apply to any accounts.

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

    { # Remove a list of accounts from a hold.
        "accountIds": [ # Account ids to identify HeldAccounts to remove.
          "A String",
        ],
      }

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

    Returns:
      An object of the form:

        { # Response for batch delete held accounts.
        "statuses": [ # A list of statuses for deleted accounts. Results have the
            # same order as the request.
          { # The `Status` type defines a logical error model that is suitable for
              # different programming environments, including REST APIs and RPC APIs. It is
              # used by [gRPC](https://github.com/grpc). The error model is designed to be:
              #
              # - Simple to use and understand for most users
              # - Flexible enough to meet unexpected needs
              #
              # # Overview
              #
              # The `Status` message contains three pieces of data: error code, error
              # message, and error details. The error code should be an enum value of
              # google.rpc.Code, but it may accept additional error codes if needed.  The
              # error message should be a developer-facing English message that helps
              # developers *understand* and *resolve* the error. If a localized user-facing
              # error message is needed, put the localized message in the error details or
              # localize it in the client. The optional error details may contain arbitrary
              # information about the error. There is a predefined set of error detail types
              # in the package `google.rpc` that can be used for common error conditions.
              #
              # # Language mapping
              #
              # The `Status` message is the logical representation of the error model, but it
              # is not necessarily the actual wire format. When the `Status` message is
              # exposed in different client libraries and different wire protocols, it can be
              # mapped differently. For example, it will likely be mapped to some exceptions
              # in Java, but more likely mapped to some error codes in C.
              #
              # # Other uses
              #
              # The error model and the `Status` message can be used in a variety of
              # environments, either with or without APIs, to provide a
              # consistent developer experience across different environments.
              #
              # Example uses of this error model include:
              #
              # - Partial errors. If a service needs to return partial errors to the client,
              #     it may embed the `Status` in the normal response to indicate the partial
              #     errors.
              #
              # - Workflow errors. A typical workflow has multiple steps. Each step may
              #     have a `Status` message for error reporting.
              #
              # - Batch operations. If a client uses batch request and batch response, the
              #     `Status` message should be used directly inside batch response, one for
              #     each error sub-response.
              #
              # - Asynchronous operations. If an API call embeds asynchronous operation
              #     results in its response, the status of those operations should be
              #     represented directly using the `Status` message.
              #
              # - Logging. If some API errors are stored in logs, the message `Status` could
              #     be used directly after any stripping needed for security/privacy reasons.
            "message": "A String", # A developer-facing error message, which should be in English. Any
                # user-facing error message should be localized and sent in the
                # google.rpc.Status.details field, or localized by the client.
            "code": 42, # The status code, which should be an enum value of google.rpc.Code.
            "details": [ # A list of messages that carry the error details.  There is a common set of
                # message types for APIs to use.
              {
                "a_key": "", # Properties of the object. Contains field @type with type URL.
              },
            ],
          },
        ],
      }

`update(matterId, holdId, body, x__xgafv=None)`

    Updates the OU and/or query parameters of a hold. You cannot add accounts
    to a hold that covers an OU, nor can you add OUs to a hold that covers
    individual accounts. Accounts listed in the hold will be ignored.

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

    { # Represents a hold within Vault. A hold restricts purging of
        # artifacts based on the combination of the query and accounts restrictions.
        # A hold can be configured to either apply to an explicitly configured set
        # of accounts, or can be applied to all members of an organizational unit.
      "updateTime": "A String", # The last time this hold was modified.
      "name": "A String", # The name of the hold.
      "orgUnit": { # A organizational unit being held in a particular hold. # If set, the hold applies to all members of the organizational unit and
          # accounts must be empty. This property is mutable. For groups holds,
          # set the accounts field.
          # This structure is immutable.
        "holdTime": "A String", # When the org unit was put on hold. This property is immutable.
        "orgUnitId": "A String", # The org unit's immutable ID as provided by the Admin SDK.
      },
      "accounts": [ # If set, the hold applies to the enumerated accounts and org_unit must be
          # empty.
        { # An account being held in a particular hold. This structure is immutable.
            # This can be either a single user or a google group, depending on the corpus.
          "lastName": "A String", # Output only. The last name of the account holder.
          "holdTime": "A String", # Output only. When the account was put on hold.
          "email": "A String", # The primary email address of the account. If used as an input, this takes
              # precedence over account ID.
          "firstName": "A String", # Output only. The first name of the account holder.
          "accountId": "A String", # The account's ID as provided by the
              # Admin SDK.
        },
      ],
      "query": { # Corpus specific queries. # The corpus-specific query. If set, the corpusQuery must match corpus
          # type.
        "hangoutsChatQuery": { # Query options for hangouts chat holds. # Details pertaining to Hangouts Chat holds. If set, corpus must be
            # Hangouts Chat.
          "includeRooms": True or False, # If true, include rooms the user has participated in.
        },
        "driveQuery": { # Query options for Drive holds. # Details pertaining to Drive holds. If set, corpus must be Drive.
          "includeSharedDriveFiles": True or False, # If true, include files in shared drives in the hold.
          "includeTeamDriveFiles": True or False, # If true, include files in Team Drives in the hold.
        },
        "mailQuery": { # Query options for mail holds. # Details pertaining to mail holds. If set, corpus must be mail.
          "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
          "terms": "A String", # The search terms for the hold.
          "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
        },
        "groupsQuery": { # Query options for group holds. # Details pertaining to Groups holds. If set, corpus must be Groups.
          "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
          "terms": "A String", # The search terms for the hold.
          "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
              # rounded down to the start of the given date.
        },
      },
      "corpus": "A String", # The corpus to be searched.
      "holdId": "A String", # The unique immutable ID of the hold. Assigned during creation.
    }

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

    Returns:
      An object of the form:

        { # Represents a hold within Vault. A hold restricts purging of
          # artifacts based on the combination of the query and accounts restrictions.
          # A hold can be configured to either apply to an explicitly configured set
          # of accounts, or can be applied to all members of an organizational unit.
        "updateTime": "A String", # The last time this hold was modified.
        "name": "A String", # The name of the hold.
        "orgUnit": { # A organizational unit being held in a particular hold. # If set, the hold applies to all members of the organizational unit and
            # accounts must be empty. This property is mutable. For groups holds,
            # set the accounts field.
            # This structure is immutable.
          "holdTime": "A String", # When the org unit was put on hold. This property is immutable.
          "orgUnitId": "A String", # The org unit's immutable ID as provided by the Admin SDK.
        },
        "accounts": [ # If set, the hold applies to the enumerated accounts and org_unit must be
            # empty.
          { # An account being held in a particular hold. This structure is immutable.
              # This can be either a single user or a google group, depending on the corpus.
            "lastName": "A String", # Output only. The last name of the account holder.
            "holdTime": "A String", # Output only. When the account was put on hold.
            "email": "A String", # The primary email address of the account. If used as an input, this takes
                # precedence over account ID.
            "firstName": "A String", # Output only. The first name of the account holder.
            "accountId": "A String", # The account's ID as provided by the
                # Admin SDK.
          },
        ],
        "query": { # Corpus specific queries. # The corpus-specific query. If set, the corpusQuery must match corpus
            # type.
          "hangoutsChatQuery": { # Query options for hangouts chat holds. # Details pertaining to Hangouts Chat holds. If set, corpus must be
              # Hangouts Chat.
            "includeRooms": True or False, # If true, include rooms the user has participated in.
          },
          "driveQuery": { # Query options for Drive holds. # Details pertaining to Drive holds. If set, corpus must be Drive.
            "includeSharedDriveFiles": True or False, # If true, include files in shared drives in the hold.
            "includeTeamDriveFiles": True or False, # If true, include files in Team Drives in the hold.
          },
          "mailQuery": { # Query options for mail holds. # Details pertaining to mail holds. If set, corpus must be mail.
            "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
            "terms": "A String", # The search terms for the hold.
            "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
          },
          "groupsQuery": { # Query options for group holds. # Details pertaining to Groups holds. If set, corpus must be Groups.
            "endTime": "A String", # The end time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
            "terms": "A String", # The search terms for the hold.
            "startTime": "A String", # The start time range for the search query. These timestamps are in GMT and
                # rounded down to the start of the given date.
          },
        },
        "corpus": "A String", # The corpus to be searched.
        "holdId": "A String", # The unique immutable ID of the hold. Assigned during creation.
      }