Cloud Bigtable Admin API . projects . instances . clusters

Instance Methods

backups()

Returns the backups Resource.

hotTablets()

Returns the hotTablets Resource.

close()

Close httplib2 connections.

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

Creates a cluster within an instance. Note that exactly one of Cluster.serve_nodes and Cluster.cluster_config.cluster_autoscaling_config can be set. If serve_nodes is set to non-zero, then the cluster is manually scaled. If cluster_config.cluster_autoscaling_config is non-empty, then autoscaling is enabled.

delete(name, x__xgafv=None)

Deletes a cluster from an instance.

get(name, x__xgafv=None)

Gets information about a cluster.

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

Lists information about clusters in an instance.

list_next()

Retrieves the next page of results.

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

Partially updates a cluster within a project. This method is the preferred way to update a Cluster. To enable and update autoscaling, set cluster_config.cluster_autoscaling_config. When autoscaling is enabled, serve_nodes is treated as an OUTPUT_ONLY field, meaning that updates to it are ignored. Note that an update cannot simultaneously set serve_nodes to non-zero and cluster_config.cluster_autoscaling_config to non-empty, and also specify both in the update_mask. To disable autoscaling, clear cluster_config.cluster_autoscaling_config, and explicitly set a serve_node count via the update_mask.

update(name, body=None, x__xgafv=None)

Updates a cluster within an instance. Note that UpdateCluster does not support updating cluster_config.cluster_autoscaling_config. In order to update it, you must use PartialUpdateCluster.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, clusterId=None, x__xgafv=None)
Creates a cluster within an instance. Note that exactly one of Cluster.serve_nodes and Cluster.cluster_config.cluster_autoscaling_config can be set. If serve_nodes is set to non-zero, then the cluster is manually scaled. If cluster_config.cluster_autoscaling_config is non-empty, then autoscaling is enabled.

Args:
  parent: string, Required. The unique name of the instance in which to create the new cluster. Values are of the form `projects/{project}/instances/{instance}`. (required)
  body: object, The request body.
    The object takes the form of:

{ # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
  "clusterConfig": { # Configuration for a cluster. # Configuration for this cluster.
    "clusterAutoscalingConfig": { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
      "autoscalingLimits": { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
        "maxServeNodes": 42, # Required. Maximum number of nodes to scale up to.
        "minServeNodes": 42, # Required. Minimum number of nodes to scale down to.
      },
      "autoscalingTargets": { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
        "cpuUtilizationPercent": 42, # The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error.
        "storageUtilizationGibPerNode": 42, # The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD.
      },
    },
  },
  "defaultStorageType": "A String", # Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.
  "encryptionConfig": { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
    "kmsKeyName": "A String", # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
  },
  "location": "A String", # Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
  "name": "A String", # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
  "serveNodes": 42, # The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.
  "state": "A String", # Output only. The current state of the cluster.
}

  clusterId: string, Required. The ID to be used when referring to the new cluster within its instance, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`.
  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, successful response of the operation. 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 cluster from an instance.

Args:
  name: string, Required. The unique name of the cluster to be deleted. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`. (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); }
}
get(name, x__xgafv=None)
Gets information about a cluster.

Args:
  name: string, Required. The unique name of the requested cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
  "clusterConfig": { # Configuration for a cluster. # Configuration for this cluster.
    "clusterAutoscalingConfig": { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
      "autoscalingLimits": { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
        "maxServeNodes": 42, # Required. Maximum number of nodes to scale up to.
        "minServeNodes": 42, # Required. Minimum number of nodes to scale down to.
      },
      "autoscalingTargets": { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
        "cpuUtilizationPercent": 42, # The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error.
        "storageUtilizationGibPerNode": 42, # The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD.
      },
    },
  },
  "defaultStorageType": "A String", # Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.
  "encryptionConfig": { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
    "kmsKeyName": "A String", # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
  },
  "location": "A String", # Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
  "name": "A String", # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
  "serveNodes": 42, # The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.
  "state": "A String", # Output only. The current state of the cluster.
}
list(parent, pageToken=None, x__xgafv=None)
Lists information about clusters in an instance.

Args:
  parent: string, Required. The unique name of the instance for which a list of clusters is requested. Values are of the form `projects/{project}/instances/{instance}`. Use `{instance} = '-'` to list Clusters for all Instances in a project, e.g., `projects/myproject/instances/-`. (required)
  pageToken: string, DEPRECATED: This field is unused and ignored.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for BigtableInstanceAdmin.ListClusters.
  "clusters": [ # The list of requested clusters.
    { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
      "clusterConfig": { # Configuration for a cluster. # Configuration for this cluster.
        "clusterAutoscalingConfig": { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
          "autoscalingLimits": { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
            "maxServeNodes": 42, # Required. Maximum number of nodes to scale up to.
            "minServeNodes": 42, # Required. Minimum number of nodes to scale down to.
          },
          "autoscalingTargets": { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
            "cpuUtilizationPercent": 42, # The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error.
            "storageUtilizationGibPerNode": 42, # The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD.
          },
        },
      },
      "defaultStorageType": "A String", # Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.
      "encryptionConfig": { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
        "kmsKeyName": "A String", # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
      },
      "location": "A String", # Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
      "name": "A String", # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
      "serveNodes": 42, # The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.
      "state": "A String", # Output only. The current state of the cluster.
    },
  ],
  "failedLocations": [ # Locations from which Cluster information could not be retrieved, due to an outage or some other transient condition. Clusters from these locations may be missing from `clusters`, or may only have partial information returned. Values are of the form `projects//locations/`
    "A String",
  ],
  "nextPageToken": "A String", # DEPRECATED: This field is unused and ignored.
}
list_next()
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.
        
partialUpdateCluster(name, body=None, updateMask=None, x__xgafv=None)
Partially updates a cluster within a project. This method is the preferred way to update a Cluster. To enable and update autoscaling, set cluster_config.cluster_autoscaling_config. When autoscaling is enabled, serve_nodes is treated as an OUTPUT_ONLY field, meaning that updates to it are ignored. Note that an update cannot simultaneously set serve_nodes to non-zero and cluster_config.cluster_autoscaling_config to non-empty, and also specify both in the update_mask. To disable autoscaling, clear cluster_config.cluster_autoscaling_config, and explicitly set a serve_node count via the update_mask.

Args:
  name: string, The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
  "clusterConfig": { # Configuration for a cluster. # Configuration for this cluster.
    "clusterAutoscalingConfig": { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
      "autoscalingLimits": { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
        "maxServeNodes": 42, # Required. Maximum number of nodes to scale up to.
        "minServeNodes": 42, # Required. Minimum number of nodes to scale down to.
      },
      "autoscalingTargets": { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
        "cpuUtilizationPercent": 42, # The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error.
        "storageUtilizationGibPerNode": 42, # The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD.
      },
    },
  },
  "defaultStorageType": "A String", # Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.
  "encryptionConfig": { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
    "kmsKeyName": "A String", # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
  },
  "location": "A String", # Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
  "name": "A String", # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
  "serveNodes": 42, # The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.
  "state": "A String", # Output only. The current state of the cluster.
}

  updateMask: string, Required. The subset of Cluster fields which should be replaced.
  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, successful response of the operation. 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.
  },
}
update(name, body=None, x__xgafv=None)
Updates a cluster within an instance. Note that UpdateCluster does not support updating cluster_config.cluster_autoscaling_config. In order to update it, you must use PartialUpdateCluster.

Args:
  name: string, The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
  "clusterConfig": { # Configuration for a cluster. # Configuration for this cluster.
    "clusterAutoscalingConfig": { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
      "autoscalingLimits": { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
        "maxServeNodes": 42, # Required. Maximum number of nodes to scale up to.
        "minServeNodes": 42, # Required. Minimum number of nodes to scale down to.
      },
      "autoscalingTargets": { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
        "cpuUtilizationPercent": 42, # The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error.
        "storageUtilizationGibPerNode": 42, # The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD.
      },
    },
  },
  "defaultStorageType": "A String", # Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.
  "encryptionConfig": { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
    "kmsKeyName": "A String", # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
  },
  "location": "A String", # Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
  "name": "A String", # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
  "serveNodes": 42, # The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.
  "state": "A String", # Output only. The current state of the cluster.
}

  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, successful response of the operation. 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.
  },
}