# Firebase ML API . projects . models

## Instance Methods

Creates a model in Firebase ML.

Deletes a model

Gets a model resource.

Lists the models

Retrieves the next page of results.

Updates a model. The longrunning operation will eventually return a Model.

### Method Details

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

    Creates a model in Firebase ML.
    The longrunning operation will eventually return a Model

    Args:
      parent: string, Required. The parent project resource where the model is to be created.
    The parent must have the form `projects/{project_id}` (required)
      body: object, The request body.
        The object takes the form of:

    { # An ML model hosted in Firebase ML
      "activeOperations": [ # Output only. Lists operation ids associated with this model whose status is NOT done.
        { # This resource represents a long-running operation that is the result of a
            # network API call.
          "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.
          "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.
            "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.
              },
            ],
          },
          "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.
          },
          "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.
          },
        },
      ],
      "tags": [ # User defined tags which can be used to group/filter models during listing
        "A String",
      ],
      "tfliteModel": { # Information that is specific to TfLite models. # A TFLite Model
        "sizeBytes": "A String", # Output only. The size of the TFLite model
        "gcsTfliteUri": "A String", # The TfLite file containing the model. (Stored in Google Cloud).
            # The gcs_tflite_uri should have form: gs://some-bucket/some-model.tflite
            # Note: If you update the file in the original location, it is
            # necessary to call UpdateModel for ML to pick up and validate the
            # updated file.
      },
      "displayName": "A String", # Required. The name of the model to create. The name can be up to 32 characters long
          # and can consist only of ASCII Latin letters A-Z and a-z, underscores(_)
          # and ASCII digits 0-9. It must start with a letter.
      "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
      "name": "A String", # The resource name of the Model.
          # Model names have the form `projects/{project_id}/models/{model_id}`
          # The name is ignored when creating a model.
      "state": { # State common to all model types. # State common to all model types.
          # Includes publishing and validation information.
          # Includes publishing and validation information.
        "validationError": { # The `Status` type defines a logical error model that is suitable for # Output only. Indicates the latest validation error on the model if any.
            # A model may have validation errors if there were problems during
            # the model creation/update.
            # e.g. in the case of a TfLiteModel, if a tflite model file was
            # missing or in the wrong format.
            # This field will be empty for valid models.
            # 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.
          "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.
            },
          ],
        },
        "published": True or False, # Indicates if this model has been published.
      },
      "etag": "A String", # Output only. See RFC7232
          # https://tools.ietf.org/html/rfc7232#section-2.3
      "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
      "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
    }

      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.
        "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.
        "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.
          "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.
            },
          ],
        },
        "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.
        },
        "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.
        },
      }

`delete(name, x__xgafv=None)`

    Deletes a model

    Args:
      name: string, Required. The name of the model to delete.
    The name must have the form `projects/{project_id}/models/{model_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(name, x__xgafv=None)`

    Gets a model resource.

    Args:
      name: string, Required. The name of the model to get.
    The name must have the form `projects/{project_id}/models/{model_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 ML model hosted in Firebase ML
        "activeOperations": [ # Output only. Lists operation ids associated with this model whose status is NOT done.
          { # This resource represents a long-running operation that is the result of a
              # network API call.
            "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.
            "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.
              "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.
                },
              ],
            },
            "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.
            },
            "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.
            },
          },
        ],
        "tags": [ # User defined tags which can be used to group/filter models during listing
          "A String",
        ],
        "tfliteModel": { # Information that is specific to TfLite models. # A TFLite Model
          "sizeBytes": "A String", # Output only. The size of the TFLite model
          "gcsTfliteUri": "A String", # The TfLite file containing the model. (Stored in Google Cloud).
              # The gcs_tflite_uri should have form: gs://some-bucket/some-model.tflite
              # Note: If you update the file in the original location, it is
              # necessary to call UpdateModel for ML to pick up and validate the
              # updated file.
        },
        "displayName": "A String", # Required. The name of the model to create. The name can be up to 32 characters long
            # and can consist only of ASCII Latin letters A-Z and a-z, underscores(_)
            # and ASCII digits 0-9. It must start with a letter.
        "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
        "name": "A String", # The resource name of the Model.
            # Model names have the form `projects/{project_id}/models/{model_id}`
            # The name is ignored when creating a model.
        "state": { # State common to all model types. # State common to all model types.
            # Includes publishing and validation information.
            # Includes publishing and validation information.
          "validationError": { # The `Status` type defines a logical error model that is suitable for # Output only. Indicates the latest validation error on the model if any.
              # A model may have validation errors if there were problems during
              # the model creation/update.
              # e.g. in the case of a TfLiteModel, if a tflite model file was
              # missing or in the wrong format.
              # This field will be empty for valid models.
              # 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.
            "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.
              },
            ],
          },
          "published": True or False, # Indicates if this model has been published.
        },
        "etag": "A String", # Output only. See RFC7232
            # https://tools.ietf.org/html/rfc7232#section-2.3
        "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
        "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
      }

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

    Lists the models

    Args:
      parent: string, Required. The name of the parent to list models for.
    The parent must have the form `projects/{project_id}' (required)
      pageToken: string, The next_page_token value returned from a previous List request, if any.
      pageSize: integer, The maximum number of items to return
      filter: string, A filter for the list
    e.g. 'tags: abc' to list models which are tagged with "abc"
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # The response for list models
        "models": [ # The list of models
          { # An ML model hosted in Firebase ML
            "activeOperations": [ # Output only. Lists operation ids associated with this model whose status is NOT done.
              { # This resource represents a long-running operation that is the result of a
                  # network API call.
                "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.
                "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.
                  "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.
                    },
                  ],
                },
                "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.
                },
                "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.
                },
              },
            ],
            "tags": [ # User defined tags which can be used to group/filter models during listing
              "A String",
            ],
            "tfliteModel": { # Information that is specific to TfLite models. # A TFLite Model
              "sizeBytes": "A String", # Output only. The size of the TFLite model
              "gcsTfliteUri": "A String", # The TfLite file containing the model. (Stored in Google Cloud).
                  # The gcs_tflite_uri should have form: gs://some-bucket/some-model.tflite
                  # Note: If you update the file in the original location, it is
                  # necessary to call UpdateModel for ML to pick up and validate the
                  # updated file.
            },
            "displayName": "A String", # Required. The name of the model to create. The name can be up to 32 characters long
                # and can consist only of ASCII Latin letters A-Z and a-z, underscores(_)
                # and ASCII digits 0-9. It must start with a letter.
            "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
            "name": "A String", # The resource name of the Model.
                # Model names have the form `projects/{project_id}/models/{model_id}`
                # The name is ignored when creating a model.
            "state": { # State common to all model types. # State common to all model types.
                # Includes publishing and validation information.
                # Includes publishing and validation information.
              "validationError": { # The `Status` type defines a logical error model that is suitable for # Output only. Indicates the latest validation error on the model if any.
                  # A model may have validation errors if there were problems during
                  # the model creation/update.
                  # e.g. in the case of a TfLiteModel, if a tflite model file was
                  # missing or in the wrong format.
                  # This field will be empty for valid models.
                  # 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.
                "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.
                  },
                ],
              },
              "published": True or False, # Indicates if this model has been published.
            },
            "etag": "A String", # Output only. See RFC7232
                # https://tools.ietf.org/html/rfc7232#section-2.3
            "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
            "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
          },
        ],
        "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 a model. The longrunning operation will eventually return a Model.

    Args:
      name: string, The resource name of the Model.
    Model names have the form `projects/{project_id}/models/{model_id}`
    The name is ignored when creating a model. (required)
      body: object, The request body.
        The object takes the form of:

    { # An ML model hosted in Firebase ML
      "activeOperations": [ # Output only. Lists operation ids associated with this model whose status is NOT done.
        { # This resource represents a long-running operation that is the result of a
            # network API call.
          "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.
          "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.
            "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.
              },
            ],
          },
          "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.
          },
          "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.
          },
        },
      ],
      "tags": [ # User defined tags which can be used to group/filter models during listing
        "A String",
      ],
      "tfliteModel": { # Information that is specific to TfLite models. # A TFLite Model
        "sizeBytes": "A String", # Output only. The size of the TFLite model
        "gcsTfliteUri": "A String", # The TfLite file containing the model. (Stored in Google Cloud).
            # The gcs_tflite_uri should have form: gs://some-bucket/some-model.tflite
            # Note: If you update the file in the original location, it is
            # necessary to call UpdateModel for ML to pick up and validate the
            # updated file.
      },
      "displayName": "A String", # Required. The name of the model to create. The name can be up to 32 characters long
          # and can consist only of ASCII Latin letters A-Z and a-z, underscores(_)
          # and ASCII digits 0-9. It must start with a letter.
      "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
      "name": "A String", # The resource name of the Model.
          # Model names have the form `projects/{project_id}/models/{model_id}`
          # The name is ignored when creating a model.
      "state": { # State common to all model types. # State common to all model types.
          # Includes publishing and validation information.
          # Includes publishing and validation information.
        "validationError": { # The `Status` type defines a logical error model that is suitable for # Output only. Indicates the latest validation error on the model if any.
            # A model may have validation errors if there were problems during
            # the model creation/update.
            # e.g. in the case of a TfLiteModel, if a tflite model file was
            # missing or in the wrong format.
            # This field will be empty for valid models.
            # 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.
          "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.
            },
          ],
        },
        "published": True or False, # Indicates if this model has been published.
      },
      "etag": "A String", # Output only. See RFC7232
          # https://tools.ietf.org/html/rfc7232#section-2.3
      "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
      "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
    }

      updateMask: string, The update mask
      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.
        "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.
        "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.
          "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.
            },
          ],
        },
        "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.
        },
        "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.
        },
      }