@@ -16,11 +16,11 @@ syntax = "proto3";
1616
1717package google.bigtable.admin.v2 ;
1818
19+ import "google/api/annotations.proto" ;
1920import "google/api/field_behavior.proto" ;
2021import "google/api/resource.proto" ;
2122import "google/bigtable/admin/v2/common.proto" ;
2223import "google/protobuf/timestamp.proto" ;
23- import "google/api/annotations.proto" ;
2424
2525option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2" ;
2626option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin" ;
@@ -69,19 +69,14 @@ message Instance {
6969 // on the cluster.
7070 PRODUCTION = 1 ;
7171
72- // The instance is meant for development and testing purposes only; it has
73- // no performance or uptime guarantees and is not covered by SLA.
74- // After a development instance is created, it can be upgraded by
75- // updating the instance to type `PRODUCTION`. An instance created
76- // as a production instance cannot be changed to a development instance.
77- // When creating a development instance, `serve_nodes` on the cluster must
78- // not be set.
72+ // DEPRECATED: Prefer PRODUCTION for all use cases, as it no longer enforces
73+ // a higher minimum node count than DEVELOPMENT.
7974 DEVELOPMENT = 2 ;
8075 }
8176
8277 // The unique name of the instance. Values are of the form
8378 // `projects/{project}/instances/[a-z][a-z0-9\\-]+[a-z0-9]`.
84- string name = 1 [ (google.api .field_behavior ) = OUTPUT_ONLY ] ;
79+ string name = 1 ;
8580
8681 // Required. The descriptive name for this instance as it appears in UIs.
8782 // Can be changed at any time, but should be kept globally unique
@@ -141,6 +136,31 @@ message Cluster {
141136 pattern : "projects/{project}/instances/{instance}/clusters/{cluster}"
142137 };
143138
139+ // Possible states of a cluster.
140+ enum State {
141+ // The state of the cluster could not be determined.
142+ STATE_NOT_KNOWN = 0 ;
143+
144+ // The cluster has been successfully created and is ready to serve requests.
145+ READY = 1 ;
146+
147+ // The cluster is currently being created, and may be destroyed
148+ // if the creation process encounters an error.
149+ // A cluster may not be able to serve requests while being created.
150+ CREATING = 2 ;
151+
152+ // The cluster is currently being resized, and may revert to its previous
153+ // node count if the process encounters an error.
154+ // A cluster is still capable of serving requests while being resized,
155+ // but may exhibit performance as if its number of allocated nodes is
156+ // between the starting and requested states.
157+ RESIZING = 3 ;
158+
159+ // The cluster has no backing nodes. The data (tables) still
160+ // exist, but no operations can be performed on the cluster.
161+ DISABLED = 4 ;
162+ }
163+
144164 // Autoscaling config for a cluster.
145165 message ClusterAutoscalingConfig {
146166 // Required. Autoscaling limits for this cluster.
@@ -166,50 +186,30 @@ message Cluster {
166186 // `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key.
167187 // 2) Only regional keys can be used and the region of the CMEK key must
168188 // match the region of the cluster.
189+ // 3) All clusters within an instance must use the same CMEK key.
190+ // Values are of the form
191+ // `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
169192 string kms_key_name = 1 [(google.api.resource_reference ) = {
170- type : "cloudkms.googleapis.com/CryptoKey"
171- }];
172- }
173-
174- // Possible states of a cluster.
175- enum State {
176- // The state of the cluster could not be determined.
177- STATE_NOT_KNOWN = 0 ;
178-
179- // The cluster has been successfully created and is ready to serve requests.
180- READY = 1 ;
181-
182- // The cluster is currently being created, and may be destroyed
183- // if the creation process encounters an error.
184- // A cluster may not be able to serve requests while being created.
185- CREATING = 2 ;
186-
187- // The cluster is currently being resized, and may revert to its previous
188- // node count if the process encounters an error.
189- // A cluster is still capable of serving requests while being resized,
190- // but may exhibit performance as if its number of allocated nodes is
191- // between the starting and requested states.
192- RESIZING = 3 ;
193-
194- // The cluster has no backing nodes. The data (tables) still
195- // exist, but no operations can be performed on the cluster.
196- DISABLED = 4 ;
193+ type : "cloudkms.googleapis.com/CryptoKey"
194+ }];
197195 }
198196
199197 // The unique name of the cluster. Values are of the form
200198 // `projects/{project}/instances/{instance}/clusters/[a-z][-a-z0-9]*`.
201- string name = 1 [ (google.api .field_behavior ) = OUTPUT_ONLY ] ;
199+ string name = 1 ;
202200
203- // (`CreationOnly`)
204- // The location where this cluster's nodes and storage reside. For best
201+ // Immutable. The location where this cluster's nodes and storage reside. For best
205202 // performance, clients should be located as close as possible to this
206203 // cluster. Currently only zones are supported, so values should be of the
207204 // form `projects/{project}/locations/{zone}`.
208- string location = 2 [(google.api.resource_reference ) = {
209- type : "locations.googleapis.com/Location"
210- }];
211-
212- // The current state of the cluster.
205+ string location = 2 [
206+ (google.api.field_behavior ) = IMMUTABLE ,
207+ (google.api.resource_reference ) = {
208+ type : "locations.googleapis.com/Location"
209+ }
210+ ];
211+
212+ // Output only. The current state of the cluster.
213213 State state = 3 [(google.api.field_behavior ) = OUTPUT_ONLY ];
214214
215215 // The number of nodes allocated to this cluster. More nodes enable higher
@@ -221,14 +221,12 @@ message Cluster {
221221 ClusterConfig cluster_config = 7 ;
222222 }
223223
224- // (`CreationOnly`)
225- // The type of storage used by this cluster to serve its
224+ // Immutable. The type of storage used by this cluster to serve its
226225 // parent instance's tables, unless explicitly overridden.
227- StorageType default_storage_type = 5 ;
226+ StorageType default_storage_type = 5 [ (google.api .field_behavior ) = IMMUTABLE ] ;
228227
229228 // Immutable. The encryption configuration for CMEK-protected clusters.
230- EncryptionConfig encryption_config = 6
231- [(google.api.field_behavior ) = IMMUTABLE ];
229+ EncryptionConfig encryption_config = 6 [(google.api.field_behavior ) = IMMUTABLE ];
232230}
233231
234232// A configuration object describing how Cloud Bigtable should treat traffic
@@ -263,7 +261,6 @@ message AppProfile {
263261 bool allow_transactional_writes = 2 ;
264262 }
265263
266- // (`OutputOnly`)
267264 // The unique name of the app profile. Values are of the form
268265 // `projects/{project}/instances/{instance}/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
269266 string name = 1 ;
@@ -278,7 +275,7 @@ message AppProfile {
278275 // details.
279276 string etag = 2 ;
280277
281- // Optional long form description of the use case for this AppProfile.
278+ // Long form description of the use case for this AppProfile.
282279 string description = 3 ;
283280
284281 // The routing policy for all read/write requests that use this app profile.
0 commit comments