# Firebase ML API . projects . models

## Instance Methods

Close httplib2 connections.

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

Deletes a model

Gets Download information for a model. This is meant for downloading model resources onto devices. It gives very limited information about the 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

`close()`

    Close httplib2 connections.

`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.
          "error": { # 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). 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). # The error result of the operation in case of failure or cancellation.
            "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.
              },
            ],
            "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.
          },
          "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.
          },
          "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}`.
          "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.
          },
        },
      ],
      "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
      "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.
      "etag": "A String", # Output only. See RFC7232 https://tools.ietf.org/html/rfc7232#section-2.3
      "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
      "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. Includes publishing and validation information. # State common to all model types. Includes publishing and validation information.
        "published": True or False, # Indicates if this model has been published.
        "validationError": { # 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). 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). # 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.
          "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.
            },
          ],
          "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.
        },
      },
      "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
        "automlModel": "A String", # The AutoML model id referencing a model you created with the AutoML API. The name should have format 'projects//locations//models/' (This is the model resource name returned from the AutoML API)
        "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.
        "sizeBytes": "A String", # Output only. The size of the TFLite model
      },
      "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
    }

      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.
      "error": { # 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). 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). # The error result of the operation in case of failure or cancellation.
        "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.
          },
        ],
        "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.
      },
      "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.
      },
      "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}`.
      "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 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); }
    }

`download(name, x__xgafv=None)`

    Gets Download information for a model. This is meant for downloading model resources onto devices. It gives very limited information about the model.

    Args:
      name: string, Required. The name of the model to download. The name must have the form `projects/{project}/models/{model}` (required)
      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 downloading a model to device.
      "downloadUri": "A String", # Output only. A download URI for the model/zip file.
      "expireTime": "A String", # Output only. The time that the download URI link expires. If the link has expired, the REST call must be repeated.
      "modelFormat": "A String", # Output only. The format of the model being downloaded.
      "sizeBytes": "A String", # Output only. The size of the file(s), if this information is available.
    }

`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.
          "error": { # 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). 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). # The error result of the operation in case of failure or cancellation.
            "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.
              },
            ],
            "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.
          },
          "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.
          },
          "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}`.
          "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.
          },
        },
      ],
      "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
      "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.
      "etag": "A String", # Output only. See RFC7232 https://tools.ietf.org/html/rfc7232#section-2.3
      "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
      "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. Includes publishing and validation information. # State common to all model types. Includes publishing and validation information.
        "published": True or False, # Indicates if this model has been published.
        "validationError": { # 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). 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). # 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.
          "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.
            },
          ],
          "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.
        },
      },
      "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
        "automlModel": "A String", # The AutoML model id referencing a model you created with the AutoML API. The name should have format 'projects//locations//models/' (This is the model resource name returned from the AutoML API)
        "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.
        "sizeBytes": "A String", # Output only. The size of the TFLite model
      },
      "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
    }

`list(parent, filter=None, pageSize=None, pageToken=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)
      filter: string, A filter for the list e.g. 'tags: abc' to list models which are tagged with "abc"
      pageSize: integer, The maximum number of items to return
      pageToken: string, The next_page_token value returned from a previous List request, if any.
      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.
              "error": { # 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). 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). # The error result of the operation in case of failure or cancellation.
                "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.
                  },
                ],
                "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.
              },
              "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.
              },
              "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}`.
              "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.
              },
            },
          ],
          "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
          "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.
          "etag": "A String", # Output only. See RFC7232 https://tools.ietf.org/html/rfc7232#section-2.3
          "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
          "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. Includes publishing and validation information. # State common to all model types. Includes publishing and validation information.
            "published": True or False, # Indicates if this model has been published.
            "validationError": { # 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). 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). # 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.
              "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.
                },
              ],
              "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.
            },
          },
          "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
            "automlModel": "A String", # The AutoML model id referencing a model you created with the AutoML API. The name should have format 'projects//locations//models/' (This is the model resource name returned from the AutoML API)
            "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.
            "sizeBytes": "A String", # Output only. The size of the TFLite model
          },
          "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
        },
      ],
      "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.
          "error": { # 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). 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). # The error result of the operation in case of failure or cancellation.
            "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.
              },
            ],
            "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.
          },
          "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.
          },
          "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}`.
          "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.
          },
        },
      ],
      "createTime": "A String", # Output only. Timestamp when this model was created in Firebase ML.
      "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.
      "etag": "A String", # Output only. See RFC7232 https://tools.ietf.org/html/rfc7232#section-2.3
      "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
      "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. Includes publishing and validation information. # State common to all model types. Includes publishing and validation information.
        "published": True or False, # Indicates if this model has been published.
        "validationError": { # 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). 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). # 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.
          "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.
            },
          ],
          "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.
        },
      },
      "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
        "automlModel": "A String", # The AutoML model id referencing a model you created with the AutoML API. The name should have format 'projects//locations//models/' (This is the model resource name returned from the AutoML API)
        "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.
        "sizeBytes": "A String", # Output only. The size of the TFLite model
      },
      "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
    }

      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.
      "error": { # 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). 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). # The error result of the operation in case of failure or cancellation.
        "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.
          },
        ],
        "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.
      },
      "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.
      },
      "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}`.
      "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.
      },
    }