# Dialogflow API . projects . knowledgeBases . documents

## Instance Methods

Creates a new document.

Deletes the specified document.

Retrieves the specified document.

Returns the list of all documents of the knowledge base.

Retrieves the next page of results.

Updates the specified document.

Reloads the specified document from its specified source, content_uri or

### Method Details

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

    Creates a new document.

    Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
    only use `projects.knowledgeBases.documents`.

    Args:
      parent: string, Required. The knoweldge base to create a document for.
    Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base ID>`. (required)
      body: object, The request body.
        The object takes the form of:

    { # A document resource.
        #
        # Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
        # only use `projects.knowledgeBases.documents`.
      "knowledgeTypes": [ # Required. The knowledge type of document content.
        "A String",
      ],
      "displayName": "A String", # Required. The display name of the document. The name must be 1024 bytes or
          # less; otherwise, the creation request fails.
      "rawContent": "A String", # The raw content of the document. This field is only permitted for
          # EXTRACTIVE_QA and FAQ knowledge types.
      "enableAutoReload": True or False, # Optional. If true, we try to automatically reload the document every day
          # (at a time picked by the system). If false or unspecified, we don't try
          # to automatically reload the document.
          #
          # Currently you can only enable automatic reload for documents sourced from
          # a public url, see `source` field for the source types.
          #
          # Reload status can be tracked in `latest_reload_status`. If a reload
          # fails, we will keep the document unchanged.
          #
          # If a reload fails with internal errors, the system will try to reload the
          # document on the next day.
          # If a reload fails with non-retriable errors (e.g. PERMISION_DENIED), the
          # system will not try to reload the document anymore. You need to manually
          # reload the document successfully by calling `ReloadDocument` and clear the
          # errors.
      "contentUri": "A String", # The URI where the file content is located.
          #
          # For documents stored in Google Cloud Storage, these URIs must have
          # the form `gs://<bucket-name>/<object-name>`.
          #
          # NOTE: External URLs must correspond to public webpages, i.e., they must
          # be indexed by Google Search. In particular, URLs for showing documents in
          # Google Cloud Storage (i.e. the URL in your browser) are not supported.
          # Instead use the `gs://` format URI described above.
      "latestReloadStatus": { # The status of a reload attempt. # Output only. The time and status of the latest reload.
          # This reload may have been triggered automatically or manually
          # and may not have succeeded.
        "status": { # The `Status` type defines a logical error model that is suitable for # Output only. The status of a reload attempt or the initial load.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "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.
          "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.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        },
        "time": "A String", # Output only. The time of a reload attempt.
            # This reload may have been triggered automatically or manually and may
            # not have succeeded.
      },
      "name": "A String", # Optional. The document resource name.
          # The name must be empty when creating a document.
          # Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
          # ID>/documents/<Document ID>`.
      "content": "A String", # The raw content of the document. This field is only permitted for
          # EXTRACTIVE_QA and FAQ knowledge types.
          # Note: This field is in the process of being deprecated, please use
          # raw_content instead.
      "mimeType": "A String", # Required. The MIME type of this document.
    }

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

    Returns:
      An object of the form:

        { # This resource represents a long-running operation that is the result of a
          # network API call.
        "name": "A String", # The server-assigned name, which is only unique within the same service that
            # originally returns it. If you use the default HTTP mapping, the
            # `name` should be a resource name ending with `operations/{unique_id}`.
        "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "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.
          "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.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        },
        "metadata": { # Service-specific metadata associated with the operation.  It typically
            # contains progress information and common metadata such as create time.
            # Some services might not provide such metadata.  Any method that returns a
            # long-running operation should document the metadata type, if any.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
        "done": True or False, # If the value is `false`, it means the operation is still in progress.
            # If `true`, the operation is completed, and either `error` or `response` is
            # available.
        "response": { # The normal response of the operation in case of success.  If the original
            # method returns no data on success, such as `Delete`, the response is
            # `google.protobuf.Empty`.  If the original method is standard
            # `Get`/`Create`/`Update`, the response should be the resource.  For other
            # methods, the response should have the type `XxxResponse`, where `Xxx`
            # is the original method name.  For example, if the original method name
            # is `TakeSnapshot()`, the inferred response type is
            # `TakeSnapshotResponse`.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      }

`delete(name, x__xgafv=None)`

    Deletes the specified document.

    Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
    only use `projects.knowledgeBases.documents`.

    Args:
      name: string, Required. The name of the document to delete.
    Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
    ID>/documents/<Document ID>`. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # This resource represents a long-running operation that is the result of a
          # network API call.
        "name": "A String", # The server-assigned name, which is only unique within the same service that
            # originally returns it. If you use the default HTTP mapping, the
            # `name` should be a resource name ending with `operations/{unique_id}`.
        "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "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.
          "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.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        },
        "metadata": { # Service-specific metadata associated with the operation.  It typically
            # contains progress information and common metadata such as create time.
            # Some services might not provide such metadata.  Any method that returns a
            # long-running operation should document the metadata type, if any.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
        "done": True or False, # If the value is `false`, it means the operation is still in progress.
            # If `true`, the operation is completed, and either `error` or `response` is
            # available.
        "response": { # The normal response of the operation in case of success.  If the original
            # method returns no data on success, such as `Delete`, the response is
            # `google.protobuf.Empty`.  If the original method is standard
            # `Get`/`Create`/`Update`, the response should be the resource.  For other
            # methods, the response should have the type `XxxResponse`, where `Xxx`
            # is the original method name.  For example, if the original method name
            # is `TakeSnapshot()`, the inferred response type is
            # `TakeSnapshotResponse`.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      }

`get(name, x__xgafv=None)`

    Retrieves the specified document.

    Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
    only use `projects.knowledgeBases.documents`.

    Args:
      name: string, Required. The name of the document to retrieve.
    Format `projects/<Project ID>/knowledgeBases/<Knowledge Base
    ID>/documents/<Document 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 document resource.
          #
          # Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
          # only use `projects.knowledgeBases.documents`.
        "knowledgeTypes": [ # Required. The knowledge type of document content.
          "A String",
        ],
        "displayName": "A String", # Required. The display name of the document. The name must be 1024 bytes or
            # less; otherwise, the creation request fails.
        "rawContent": "A String", # The raw content of the document. This field is only permitted for
            # EXTRACTIVE_QA and FAQ knowledge types.
        "enableAutoReload": True or False, # Optional. If true, we try to automatically reload the document every day
            # (at a time picked by the system). If false or unspecified, we don't try
            # to automatically reload the document.
            #
            # Currently you can only enable automatic reload for documents sourced from
            # a public url, see `source` field for the source types.
            #
            # Reload status can be tracked in `latest_reload_status`. If a reload
            # fails, we will keep the document unchanged.
            #
            # If a reload fails with internal errors, the system will try to reload the
            # document on the next day.
            # If a reload fails with non-retriable errors (e.g. PERMISION_DENIED), the
            # system will not try to reload the document anymore. You need to manually
            # reload the document successfully by calling `ReloadDocument` and clear the
            # errors.
        "contentUri": "A String", # The URI where the file content is located.
            #
            # For documents stored in Google Cloud Storage, these URIs must have
            # the form `gs://<bucket-name>/<object-name>`.
            #
            # NOTE: External URLs must correspond to public webpages, i.e., they must
            # be indexed by Google Search. In particular, URLs for showing documents in
            # Google Cloud Storage (i.e. the URL in your browser) are not supported.
            # Instead use the `gs://` format URI described above.
        "latestReloadStatus": { # The status of a reload attempt. # Output only. The time and status of the latest reload.
            # This reload may have been triggered automatically or manually
            # and may not have succeeded.
          "status": { # The `Status` type defines a logical error model that is suitable for # Output only. The status of a reload attempt or the initial load.
              # different programming environments, including REST APIs and RPC APIs. It is
              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
              # three pieces of data: error code, error message, and error details.
              #
              # You can find out more about this error model and how to work with it in the
              # [API Design Guide](https://cloud.google.com/apis/design/errors).
            "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.
            "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.
              },
            ],
            "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          },
          "time": "A String", # Output only. The time of a reload attempt.
              # This reload may have been triggered automatically or manually and may
              # not have succeeded.
        },
        "name": "A String", # Optional. The document resource name.
            # The name must be empty when creating a document.
            # Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
            # ID>/documents/<Document ID>`.
        "content": "A String", # The raw content of the document. This field is only permitted for
            # EXTRACTIVE_QA and FAQ knowledge types.
            # Note: This field is in the process of being deprecated, please use
            # raw_content instead.
        "mimeType": "A String", # Required. The MIME type of this document.
      }

`list(parent, pageToken=None, pageSize=None, x__xgafv=None)`

    Returns the list of all documents of the knowledge base.

    Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
    only use `projects.knowledgeBases.documents`.

    Args:
      parent: string, Required. The knowledge base to list all documents for.
    Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base ID>`. (required)
      pageToken: string, Optional. The next_page_token value returned from a previous list request.
      pageSize: integer, Optional. The maximum number of items to return in a single page. By
    default 10 and at most 100.
      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 Documents.ListDocuments.
        "documents": [ # The list of documents.
          { # A document resource.
              #
              # Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
              # only use `projects.knowledgeBases.documents`.
            "knowledgeTypes": [ # Required. The knowledge type of document content.
              "A String",
            ],
            "displayName": "A String", # Required. The display name of the document. The name must be 1024 bytes or
                # less; otherwise, the creation request fails.
            "rawContent": "A String", # The raw content of the document. This field is only permitted for
                # EXTRACTIVE_QA and FAQ knowledge types.
            "enableAutoReload": True or False, # Optional. If true, we try to automatically reload the document every day
                # (at a time picked by the system). If false or unspecified, we don't try
                # to automatically reload the document.
                #
                # Currently you can only enable automatic reload for documents sourced from
                # a public url, see `source` field for the source types.
                #
                # Reload status can be tracked in `latest_reload_status`. If a reload
                # fails, we will keep the document unchanged.
                #
                # If a reload fails with internal errors, the system will try to reload the
                # document on the next day.
                # If a reload fails with non-retriable errors (e.g. PERMISION_DENIED), the
                # system will not try to reload the document anymore. You need to manually
                # reload the document successfully by calling `ReloadDocument` and clear the
                # errors.
            "contentUri": "A String", # The URI where the file content is located.
                #
                # For documents stored in Google Cloud Storage, these URIs must have
                # the form `gs://<bucket-name>/<object-name>`.
                #
                # NOTE: External URLs must correspond to public webpages, i.e., they must
                # be indexed by Google Search. In particular, URLs for showing documents in
                # Google Cloud Storage (i.e. the URL in your browser) are not supported.
                # Instead use the `gs://` format URI described above.
            "latestReloadStatus": { # The status of a reload attempt. # Output only. The time and status of the latest reload.
                # This reload may have been triggered automatically or manually
                # and may not have succeeded.
              "status": { # The `Status` type defines a logical error model that is suitable for # Output only. The status of a reload attempt or the initial load.
                  # different programming environments, including REST APIs and RPC APIs. It is
                  # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                  # three pieces of data: error code, error message, and error details.
                  #
                  # You can find out more about this error model and how to work with it in the
                  # [API Design Guide](https://cloud.google.com/apis/design/errors).
                "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.
                "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.
                  },
                ],
                "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              },
              "time": "A String", # Output only. The time of a reload attempt.
                  # This reload may have been triggered automatically or manually and may
                  # not have succeeded.
            },
            "name": "A String", # Optional. The document resource name.
                # The name must be empty when creating a document.
                # Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
                # ID>/documents/<Document ID>`.
            "content": "A String", # The raw content of the document. This field is only permitted for
                # EXTRACTIVE_QA and FAQ knowledge types.
                # Note: This field is in the process of being deprecated, please use
                # raw_content instead.
            "mimeType": "A String", # Required. The MIME type of this document.
          },
        ],
        "nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no
            # more results in the list.
      }

`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.

`patch(name, body=None, updateMask=None, x__xgafv=None)`

    Updates the specified document.

    Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
    only use `projects.knowledgeBases.documents`.

    Args:
      name: string, Optional. The document resource name.
    The name must be empty when creating a document.
    Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
    ID>/documents/<Document ID>`. (required)
      body: object, The request body.
        The object takes the form of:

    { # A document resource.
        #
        # Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
        # only use `projects.knowledgeBases.documents`.
      "knowledgeTypes": [ # Required. The knowledge type of document content.
        "A String",
      ],
      "displayName": "A String", # Required. The display name of the document. The name must be 1024 bytes or
          # less; otherwise, the creation request fails.
      "rawContent": "A String", # The raw content of the document. This field is only permitted for
          # EXTRACTIVE_QA and FAQ knowledge types.
      "enableAutoReload": True or False, # Optional. If true, we try to automatically reload the document every day
          # (at a time picked by the system). If false or unspecified, we don't try
          # to automatically reload the document.
          #
          # Currently you can only enable automatic reload for documents sourced from
          # a public url, see `source` field for the source types.
          #
          # Reload status can be tracked in `latest_reload_status`. If a reload
          # fails, we will keep the document unchanged.
          #
          # If a reload fails with internal errors, the system will try to reload the
          # document on the next day.
          # If a reload fails with non-retriable errors (e.g. PERMISION_DENIED), the
          # system will not try to reload the document anymore. You need to manually
          # reload the document successfully by calling `ReloadDocument` and clear the
          # errors.
      "contentUri": "A String", # The URI where the file content is located.
          #
          # For documents stored in Google Cloud Storage, these URIs must have
          # the form `gs://<bucket-name>/<object-name>`.
          #
          # NOTE: External URLs must correspond to public webpages, i.e., they must
          # be indexed by Google Search. In particular, URLs for showing documents in
          # Google Cloud Storage (i.e. the URL in your browser) are not supported.
          # Instead use the `gs://` format URI described above.
      "latestReloadStatus": { # The status of a reload attempt. # Output only. The time and status of the latest reload.
          # This reload may have been triggered automatically or manually
          # and may not have succeeded.
        "status": { # The `Status` type defines a logical error model that is suitable for # Output only. The status of a reload attempt or the initial load.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "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.
          "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.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        },
        "time": "A String", # Output only. The time of a reload attempt.
            # This reload may have been triggered automatically or manually and may
            # not have succeeded.
      },
      "name": "A String", # Optional. The document resource name.
          # The name must be empty when creating a document.
          # Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
          # ID>/documents/<Document ID>`.
      "content": "A String", # The raw content of the document. This field is only permitted for
          # EXTRACTIVE_QA and FAQ knowledge types.
          # Note: This field is in the process of being deprecated, please use
          # raw_content instead.
      "mimeType": "A String", # Required. The MIME type of this document.
    }

      updateMask: string, Optional. Not specified means `update all`.
    Currently, only `display_name` can be updated, an InvalidArgument will be
    returned for attempting to update other fields.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # This resource represents a long-running operation that is the result of a
          # network API call.
        "name": "A String", # The server-assigned name, which is only unique within the same service that
            # originally returns it. If you use the default HTTP mapping, the
            # `name` should be a resource name ending with `operations/{unique_id}`.
        "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "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.
          "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.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        },
        "metadata": { # Service-specific metadata associated with the operation.  It typically
            # contains progress information and common metadata such as create time.
            # Some services might not provide such metadata.  Any method that returns a
            # long-running operation should document the metadata type, if any.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
        "done": True or False, # If the value is `false`, it means the operation is still in progress.
            # If `true`, the operation is completed, and either `error` or `response` is
            # available.
        "response": { # The normal response of the operation in case of success.  If the original
            # method returns no data on success, such as `Delete`, the response is
            # `google.protobuf.Empty`.  If the original method is standard
            # `Get`/`Create`/`Update`, the response should be the resource.  For other
            # methods, the response should have the type `XxxResponse`, where `Xxx`
            # is the original method name.  For example, if the original method name
            # is `TakeSnapshot()`, the inferred response type is
            # `TakeSnapshotResponse`.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      }

`reload(name, body=None, x__xgafv=None)`

    Reloads the specified document from its specified source, content_uri or
    content. The previously loaded content of the document will be deleted.
    Note: Even when the content of the document has not changed, there still
    may be side effects because of internal implementation changes.

    Note: The `projects.agent.knowledgeBases.documents` resource is deprecated;
    only use `projects.knowledgeBases.documents`.

    Args:
      name: string, Required. The name of the document to reload.
    Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base
    ID>/documents/<Document ID>` (required)
      body: object, The request body.
        The object takes the form of:

    { # Request message for Documents.ReloadDocument.
        "gcsSource": { # Google Cloud Storage location for single input. # The path for a Cloud Storage source file for reloading document content.
            # If not provided, the Document's existing source will be reloaded.
          "uri": "A String", # Required. The Google Cloud Storage URIs for the inputs. A URI is of the
              # form:
              #   gs://bucket/object-prefix-or-name
              # Whether a prefix or name is used depends on the use case.
        },
      }

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

    Returns:
      An object of the form:

        { # This resource represents a long-running operation that is the result of a
          # network API call.
        "name": "A String", # The server-assigned name, which is only unique within the same service that
            # originally returns it. If you use the default HTTP mapping, the
            # `name` should be a resource name ending with `operations/{unique_id}`.
        "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "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.
          "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.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        },
        "metadata": { # Service-specific metadata associated with the operation.  It typically
            # contains progress information and common metadata such as create time.
            # Some services might not provide such metadata.  Any method that returns a
            # long-running operation should document the metadata type, if any.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
        "done": True or False, # If the value is `false`, it means the operation is still in progress.
            # If `true`, the operation is completed, and either `error` or `response` is
            # available.
        "response": { # The normal response of the operation in case of success.  If the original
            # method returns no data on success, such as `Delete`, the response is
            # `google.protobuf.Empty`.  If the original method is standard
            # `Get`/`Create`/`Update`, the response should be the resource.  For other
            # methods, the response should have the type `XxxResponse`, where `Xxx`
            # is the original method name.  For example, if the original method name
            # is `TakeSnapshot()`, the inferred response type is
            # `TakeSnapshotResponse`.
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      }