1<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5  margin: 0;
6  padding: 0;
7  border: 0;
8  font-weight: inherit;
9  font-style: inherit;
10  font-size: 100%;
11  font-family: inherit;
12  vertical-align: baseline;
13}
14
15body {
16  font-size: 13px;
17  padding: 1em;
18}
19
20h1 {
21  font-size: 26px;
22  margin-bottom: 1em;
23}
24
25h2 {
26  font-size: 24px;
27  margin-bottom: 1em;
28}
29
30h3 {
31  font-size: 20px;
32  margin-bottom: 1em;
33  margin-top: 1em;
34}
35
36pre, code {
37  line-height: 1.5;
38  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42  margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46  font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50  border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54  margin-top: 0.5em;
55}
56
57.firstline {
58  margin-left: 2 em;
59}
60
61.method  {
62  margin-top: 1em;
63  border: solid 1px #CCC;
64  padding: 1em;
65  background: #EEE;
66}
67
68.details {
69  font-weight: bold;
70  font-size: 14px;
71}
72
73</style>
74
75<h1><a href="bigtableadmin_v2.html">Cloud Bigtable Admin API</a> . <a href="bigtableadmin_v2.projects.html">projects</a> . <a href="bigtableadmin_v2.projects.instances.html">instances</a> . <a href="bigtableadmin_v2.projects.instances.clusters.html">clusters</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78  <code><a href="bigtableadmin_v2.projects.instances.clusters.backups.html">backups()</a></code>
79</p>
80<p class="firstline">Returns the backups Resource.</p>
81
82<p class="toc_element">
83  <code><a href="#close">close()</a></code></p>
84<p class="firstline">Close httplib2 connections.</p>
85<p class="toc_element">
86  <code><a href="#create">create(parent, body=None, clusterId=None, x__xgafv=None)</a></code></p>
87<p class="firstline">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.</p>
88<p class="toc_element">
89  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
90<p class="firstline">Deletes a cluster from an instance.</p>
91<p class="toc_element">
92  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
93<p class="firstline">Gets information about a cluster.</p>
94<p class="toc_element">
95  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None)</a></code></p>
96<p class="firstline">Lists information about clusters in an instance.</p>
97<p class="toc_element">
98  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
99<p class="firstline">Retrieves the next page of results.</p>
100<p class="toc_element">
101  <code><a href="#partialUpdateCluster">partialUpdateCluster(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
102<p class="firstline">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.</p>
103<p class="toc_element">
104  <code><a href="#update">update(name, body=None, x__xgafv=None)</a></code></p>
105<p class="firstline">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.</p>
106<h3>Method Details</h3>
107<div class="method">
108    <code class="details" id="close">close()</code>
109  <pre>Close httplib2 connections.</pre>
110</div>
111
112<div class="method">
113    <code class="details" id="create">create(parent, body=None, clusterId=None, x__xgafv=None)</code>
114  <pre>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.
115
116Args:
117  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)
118  body: object, The request body.
119    The object takes the form of:
120
121{ # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
122  &quot;clusterConfig&quot;: { # Configuration for a cluster. # Configuration for this cluster.
123    &quot;clusterAutoscalingConfig&quot;: { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
124      &quot;autoscalingLimits&quot;: { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
125        &quot;maxServeNodes&quot;: 42, # Required. Maximum number of nodes to scale up to.
126        &quot;minServeNodes&quot;: 42, # Required. Minimum number of nodes to scale down to.
127      },
128      &quot;autoscalingTargets&quot;: { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
129        &quot;cpuUtilizationPercent&quot;: 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).
130      },
131    },
132  },
133  &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
134  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
135    &quot;kmsKeyName&quot;: &quot;A String&quot;, # 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. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
136  },
137  &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;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}`.
138  &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
139  &quot;serveNodes&quot;: 42, # The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
140  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the cluster.
141}
142
143  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`.
144  x__xgafv: string, V1 error format.
145    Allowed values
146      1 - v1 error format
147      2 - v2 error format
148
149Returns:
150  An object of the form:
151
152    { # This resource represents a long-running operation that is the result of a network API call.
153  &quot;done&quot;: 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.
154  &quot;error&quot;: { # 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.
155    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
156    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
157      {
158        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
159      },
160    ],
161    &quot;message&quot;: &quot;A String&quot;, # 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.
162  },
163  &quot;metadata&quot;: { # 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.
164    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
165  },
166  &quot;name&quot;: &quot;A String&quot;, # 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}`.
167  &quot;response&quot;: { # 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`.
168    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
169  },
170}</pre>
171</div>
172
173<div class="method">
174    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
175  <pre>Deletes a cluster from an instance.
176
177Args:
178  name: string, Required. The unique name of the cluster to be deleted. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`. (required)
179  x__xgafv: string, V1 error format.
180    Allowed values
181      1 - v1 error format
182      2 - v2 error format
183
184Returns:
185  An object of the form:
186
187    { # 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 `{}`.
188}</pre>
189</div>
190
191<div class="method">
192    <code class="details" id="get">get(name, x__xgafv=None)</code>
193  <pre>Gets information about a cluster.
194
195Args:
196  name: string, Required. The unique name of the requested cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`. (required)
197  x__xgafv: string, V1 error format.
198    Allowed values
199      1 - v1 error format
200      2 - v2 error format
201
202Returns:
203  An object of the form:
204
205    { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
206  &quot;clusterConfig&quot;: { # Configuration for a cluster. # Configuration for this cluster.
207    &quot;clusterAutoscalingConfig&quot;: { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
208      &quot;autoscalingLimits&quot;: { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
209        &quot;maxServeNodes&quot;: 42, # Required. Maximum number of nodes to scale up to.
210        &quot;minServeNodes&quot;: 42, # Required. Minimum number of nodes to scale down to.
211      },
212      &quot;autoscalingTargets&quot;: { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
213        &quot;cpuUtilizationPercent&quot;: 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).
214      },
215    },
216  },
217  &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
218  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
219    &quot;kmsKeyName&quot;: &quot;A String&quot;, # 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. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
220  },
221  &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;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}`.
222  &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
223  &quot;serveNodes&quot;: 42, # The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
224  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the cluster.
225}</pre>
226</div>
227
228<div class="method">
229    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None)</code>
230  <pre>Lists information about clusters in an instance.
231
232Args:
233  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} = &#x27;-&#x27;` to list Clusters for all Instances in a project, e.g., `projects/myproject/instances/-`. (required)
234  pageToken: string, DEPRECATED: This field is unused and ignored.
235  x__xgafv: string, V1 error format.
236    Allowed values
237      1 - v1 error format
238      2 - v2 error format
239
240Returns:
241  An object of the form:
242
243    { # Response message for BigtableInstanceAdmin.ListClusters.
244  &quot;clusters&quot;: [ # The list of requested clusters.
245    { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
246      &quot;clusterConfig&quot;: { # Configuration for a cluster. # Configuration for this cluster.
247        &quot;clusterAutoscalingConfig&quot;: { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
248          &quot;autoscalingLimits&quot;: { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
249            &quot;maxServeNodes&quot;: 42, # Required. Maximum number of nodes to scale up to.
250            &quot;minServeNodes&quot;: 42, # Required. Minimum number of nodes to scale down to.
251          },
252          &quot;autoscalingTargets&quot;: { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
253            &quot;cpuUtilizationPercent&quot;: 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).
254          },
255        },
256      },
257      &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
258      &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
259        &quot;kmsKeyName&quot;: &quot;A String&quot;, # 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. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
260      },
261      &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;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}`.
262      &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
263      &quot;serveNodes&quot;: 42, # The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
264      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the cluster.
265    },
266  ],
267  &quot;failedLocations&quot;: [ # 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/`
268    &quot;A String&quot;,
269  ],
270  &quot;nextPageToken&quot;: &quot;A String&quot;, # DEPRECATED: This field is unused and ignored.
271}</pre>
272</div>
273
274<div class="method">
275    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
276  <pre>Retrieves the next page of results.
277
278Args:
279  previous_request: The request for the previous page. (required)
280  previous_response: The response from the request for the previous page. (required)
281
282Returns:
283  A request object that you can call &#x27;execute()&#x27; on to request the next
284  page. Returns None if there are no more items in the collection.
285    </pre>
286</div>
287
288<div class="method">
289    <code class="details" id="partialUpdateCluster">partialUpdateCluster(name, body=None, updateMask=None, x__xgafv=None)</code>
290  <pre>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.
291
292Args:
293  name: string, The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`. (required)
294  body: object, The request body.
295    The object takes the form of:
296
297{ # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
298  &quot;clusterConfig&quot;: { # Configuration for a cluster. # Configuration for this cluster.
299    &quot;clusterAutoscalingConfig&quot;: { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
300      &quot;autoscalingLimits&quot;: { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
301        &quot;maxServeNodes&quot;: 42, # Required. Maximum number of nodes to scale up to.
302        &quot;minServeNodes&quot;: 42, # Required. Minimum number of nodes to scale down to.
303      },
304      &quot;autoscalingTargets&quot;: { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
305        &quot;cpuUtilizationPercent&quot;: 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).
306      },
307    },
308  },
309  &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
310  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
311    &quot;kmsKeyName&quot;: &quot;A String&quot;, # 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. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
312  },
313  &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;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}`.
314  &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
315  &quot;serveNodes&quot;: 42, # The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
316  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the cluster.
317}
318
319  updateMask: string, Required. The subset of Cluster fields which should be replaced.
320  x__xgafv: string, V1 error format.
321    Allowed values
322      1 - v1 error format
323      2 - v2 error format
324
325Returns:
326  An object of the form:
327
328    { # This resource represents a long-running operation that is the result of a network API call.
329  &quot;done&quot;: 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.
330  &quot;error&quot;: { # 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.
331    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
332    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
333      {
334        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
335      },
336    ],
337    &quot;message&quot;: &quot;A String&quot;, # 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.
338  },
339  &quot;metadata&quot;: { # 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.
340    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
341  },
342  &quot;name&quot;: &quot;A String&quot;, # 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}`.
343  &quot;response&quot;: { # 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`.
344    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
345  },
346}</pre>
347</div>
348
349<div class="method">
350    <code class="details" id="update">update(name, body=None, x__xgafv=None)</code>
351  <pre>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.
352
353Args:
354  name: string, The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`. (required)
355  body: object, The request body.
356    The object takes the form of:
357
358{ # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
359  &quot;clusterConfig&quot;: { # Configuration for a cluster. # Configuration for this cluster.
360    &quot;clusterAutoscalingConfig&quot;: { # Autoscaling config for a cluster. # Autoscaling configuration for this cluster.
361      &quot;autoscalingLimits&quot;: { # Limits for the number of nodes a Cluster can autoscale up/down to. # Required. Autoscaling limits for this cluster.
362        &quot;maxServeNodes&quot;: 42, # Required. Maximum number of nodes to scale up to.
363        &quot;minServeNodes&quot;: 42, # Required. Minimum number of nodes to scale down to.
364      },
365      &quot;autoscalingTargets&quot;: { # The Autoscaling targets for a Cluster. These determine the recommended nodes. # Required. Autoscaling targets for this cluster.
366        &quot;cpuUtilizationPercent&quot;: 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).
367      },
368    },
369  },
370  &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
371  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
372    &quot;kmsKeyName&quot;: &quot;A String&quot;, # 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. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
373  },
374  &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;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}`.
375  &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
376  &quot;serveNodes&quot;: 42, # The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
377  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the cluster.
378}
379
380  x__xgafv: string, V1 error format.
381    Allowed values
382      1 - v1 error format
383      2 - v2 error format
384
385Returns:
386  An object of the form:
387
388    { # This resource represents a long-running operation that is the result of a network API call.
389  &quot;done&quot;: 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.
390  &quot;error&quot;: { # 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.
391    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
392    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
393      {
394        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
395      },
396    ],
397    &quot;message&quot;: &quot;A String&quot;, # 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.
398  },
399  &quot;metadata&quot;: { # 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.
400    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
401  },
402  &quot;name&quot;: &quot;A String&quot;, # 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}`.
403  &quot;response&quot;: { # 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`.
404    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
405  },
406}</pre>
407</div>
408
409</body></html>