@@ -20,7 +20,6 @@ import "google/api/field_behavior.proto";
2020import "google/api/resource.proto" ;
2121import "google/bigtable/admin/v2/common.proto" ;
2222import "google/protobuf/timestamp.proto" ;
23- import "google/api/annotations.proto" ;
2423
2524option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2" ;
2625option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin" ;
@@ -69,19 +68,14 @@ message Instance {
6968 // on the cluster.
7069 PRODUCTION = 1 ;
7170
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.
71+ // DEPRECATED: Prefer PRODUCTION for all use cases, as it no longer enforces
72+ // a higher minimum node count than DEVELOPMENT.
7973 DEVELOPMENT = 2 ;
8074 }
8175
8276 // The unique name of the instance. Values are of the form
8377 // `projects/{project}/instances/[a-z][a-z0-9\\-]+[a-z0-9]`.
84- string name = 1 [ (google.api .field_behavior ) = OUTPUT_ONLY ] ;
78+ string name = 1 ;
8579
8680 // Required. The descriptive name for this instance as it appears in UIs.
8781 // Can be changed at any time, but should be kept globally unique
@@ -141,6 +135,31 @@ message Cluster {
141135 pattern : "projects/{project}/instances/{instance}/clusters/{cluster}"
142136 };
143137
138+ // Possible states of a cluster.
139+ enum State {
140+ // The state of the cluster could not be determined.
141+ STATE_NOT_KNOWN = 0 ;
142+
143+ // The cluster has been successfully created and is ready to serve requests.
144+ READY = 1 ;
145+
146+ // The cluster is currently being created, and may be destroyed
147+ // if the creation process encounters an error.
148+ // A cluster may not be able to serve requests while being created.
149+ CREATING = 2 ;
150+
151+ // The cluster is currently being resized, and may revert to its previous
152+ // node count if the process encounters an error.
153+ // A cluster is still capable of serving requests while being resized,
154+ // but may exhibit performance as if its number of allocated nodes is
155+ // between the starting and requested states.
156+ RESIZING = 3 ;
157+
158+ // The cluster has no backing nodes. The data (tables) still
159+ // exist, but no operations can be performed on the cluster.
160+ DISABLED = 4 ;
161+ }
162+
144163 // Autoscaling config for a cluster.
145164 message ClusterAutoscalingConfig {
146165 // Required. Autoscaling limits for this cluster.
@@ -166,50 +185,30 @@ message Cluster {
166185 // `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key.
167186 // 2) Only regional keys can be used and the region of the CMEK key must
168187 // match the region of the cluster.
188+ // 3) All clusters within an instance must use the same CMEK key.
189+ // Values are of the form
190+ // `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
169191 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 ;
192+ type : "cloudkms.googleapis.com/CryptoKey"
193+ }];
197194 }
198195
199196 // The unique name of the cluster. Values are of the form
200197 // `projects/{project}/instances/{instance}/clusters/[a-z][-a-z0-9]*`.
201- string name = 1 [ (google.api .field_behavior ) = OUTPUT_ONLY ] ;
198+ string name = 1 ;
202199
203- // (`CreationOnly`)
204- // The location where this cluster's nodes and storage reside. For best
200+ // Immutable. The location where this cluster's nodes and storage reside. For best
205201 // performance, clients should be located as close as possible to this
206202 // cluster. Currently only zones are supported, so values should be of the
207203 // 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.
204+ string location = 2 [
205+ (google.api.field_behavior ) = IMMUTABLE ,
206+ (google.api.resource_reference ) = {
207+ type : "locations.googleapis.com/Location"
208+ }
209+ ];
210+
211+ // Output only. The current state of the cluster.
213212 State state = 3 [(google.api.field_behavior ) = OUTPUT_ONLY ];
214213
215214 // The number of nodes allocated to this cluster. More nodes enable higher
@@ -221,14 +220,12 @@ message Cluster {
221220 ClusterConfig cluster_config = 7 ;
222221 }
223222
224- // (`CreationOnly`)
225- // The type of storage used by this cluster to serve its
223+ // Immutable. The type of storage used by this cluster to serve its
226224 // parent instance's tables, unless explicitly overridden.
227- StorageType default_storage_type = 5 ;
225+ StorageType default_storage_type = 5 [ (google.api .field_behavior ) = IMMUTABLE ] ;
228226
229227 // Immutable. The encryption configuration for CMEK-protected clusters.
230- EncryptionConfig encryption_config = 6
231- [(google.api.field_behavior ) = IMMUTABLE ];
228+ EncryptionConfig encryption_config = 6 [(google.api.field_behavior ) = IMMUTABLE ];
232229}
233230
234231// A configuration object describing how Cloud Bigtable should treat traffic
@@ -263,7 +260,6 @@ message AppProfile {
263260 bool allow_transactional_writes = 2 ;
264261 }
265262
266- // (`OutputOnly`)
267263 // The unique name of the app profile. Values are of the form
268264 // `projects/{project}/instances/{instance}/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
269265 string name = 1 ;
@@ -278,7 +274,7 @@ message AppProfile {
278274 // details.
279275 string etag = 2 ;
280276
281- // Optional long form description of the use case for this AppProfile.
277+ // Long form description of the use case for this AppProfile.
282278 string description = 3 ;
283279
284280 // The routing policy for all read/write requests that use this app profile.
0 commit comments