Firebase ML API . projects . models

Instance Methods

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

Creates a model in Firebase ML.

delete(name, x__xgafv=None)

Deletes a model

get(name, x__xgafv=None)

Gets a model resource.

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

Lists the models

list_next(previous_request, previous_response)

Retrieves the next page of results.

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

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
    "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.
    "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
    "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.
    "tags": [ # User defined tags which can be used to group/filter models during listing
      "A String",
    ],
    "createTime": "A String", # Output only. Timestamp when this model was created 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.
        "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.
        },
        "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).
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "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.
            },
          ],
        },
        "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}`.
        "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.
        },
      },
    ],
    "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
    "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).
        "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        "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.
          },
        ],
      },
      "published": True or False, # Indicates if this model has been published.
    },
    "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.
    },
    "etag": "A String", # Output only. See RFC7232
        # https://tools.ietf.org/html/rfc7232#section-2.3
  }

  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.
    "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.
    },
    "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).
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "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.
        },
      ],
    },
    "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}`.
    "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
      "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.
      "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
      "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.
      "tags": [ # User defined tags which can be used to group/filter models during listing
        "A String",
      ],
      "createTime": "A String", # Output only. Timestamp when this model was created 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.
          "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.
          },
          "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).
            "code": 42, # The status code, which should be an enum value of google.rpc.Code.
            "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.
              },
            ],
          },
          "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}`.
          "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.
          },
        },
      ],
      "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
      "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).
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "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.
            },
          ],
        },
        "published": True or False, # Indicates if this model has been published.
      },
      "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.
      },
      "etag": "A String", # Output only. See RFC7232
          # https://tools.ietf.org/html/rfc7232#section-2.3
    }
list(parent, pageToken=None, filter=None, pageSize=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.
  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
  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
          "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.
          "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
          "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.
          "tags": [ # User defined tags which can be used to group/filter models during listing
            "A String",
          ],
          "createTime": "A String", # Output only. Timestamp when this model was created 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.
              "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.
              },
              "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).
                "code": 42, # The status code, which should be an enum value of google.rpc.Code.
                "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.
                  },
                ],
              },
              "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}`.
              "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.
              },
            },
          ],
          "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
          "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).
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "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.
                },
              ],
            },
            "published": True or False, # Indicates if this model has been published.
          },
          "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.
          },
          "etag": "A String", # Output only. See RFC7232
              # https://tools.ietf.org/html/rfc7232#section-2.3
        },
    ],
    "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
    "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.
    "modelHash": "A String", # Output only. The model_hash will change if a new file is available for download.
    "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.
    "tags": [ # User defined tags which can be used to group/filter models during listing
      "A String",
    ],
    "createTime": "A String", # Output only. Timestamp when this model was created 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.
        "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.
        },
        "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).
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "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.
            },
          ],
        },
        "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}`.
        "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.
        },
      },
    ],
    "updateTime": "A String", # Output only. Timestamp when this model was updated in Firebase ML.
    "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).
        "code": 42, # The status code, which should be an enum value of google.rpc.Code.
        "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.
          },
        ],
      },
      "published": True or False, # Indicates if this model has been published.
    },
    "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.
    },
    "etag": "A String", # Output only. See RFC7232
        # https://tools.ietf.org/html/rfc7232#section-2.3
  }

  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.
    "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.
    },
    "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).
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "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.
        },
      ],
    },
    "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}`.
    "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.
    },
  }