google-cloud-alloy_db-v1alpha 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +149 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +144 -0
  6. data/lib/google/cloud/alloy_db/v1alpha/alloy_db_admin/client.rb +3986 -0
  7. data/lib/google/cloud/alloy_db/v1alpha/alloy_db_admin/credentials.rb +47 -0
  8. data/lib/google/cloud/alloy_db/v1alpha/alloy_db_admin/operations.rb +770 -0
  9. data/lib/google/cloud/alloy_db/v1alpha/alloy_db_admin/paths.rb +170 -0
  10. data/lib/google/cloud/alloy_db/v1alpha/alloy_db_admin.rb +50 -0
  11. data/lib/google/cloud/alloy_db/v1alpha/version.rb +28 -0
  12. data/lib/google/cloud/alloy_db/v1alpha.rb +40 -0
  13. data/lib/google/cloud/alloydb/v1alpha/resources_pb.rb +100 -0
  14. data/lib/google/cloud/alloydb/v1alpha/service_pb.rb +102 -0
  15. data/lib/google/cloud/alloydb/v1alpha/service_services_pb.rb +128 -0
  16. data/lib/google-cloud-alloy_db-v1alpha.rb +21 -0
  17. data/proto_docs/README.md +4 -0
  18. data/proto_docs/google/api/client.rb +381 -0
  19. data/proto_docs/google/api/field_behavior.rb +71 -0
  20. data/proto_docs/google/api/launch_stage.rb +71 -0
  21. data/proto_docs/google/api/resource.rb +222 -0
  22. data/proto_docs/google/cloud/alloydb/v1alpha/resources.rb +1227 -0
  23. data/proto_docs/google/cloud/alloydb/v1alpha/service.rb +1206 -0
  24. data/proto_docs/google/longrunning/operations.rb +164 -0
  25. data/proto_docs/google/protobuf/any.rb +144 -0
  26. data/proto_docs/google/protobuf/duration.rb +98 -0
  27. data/proto_docs/google/protobuf/empty.rb +34 -0
  28. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  29. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  30. data/proto_docs/google/protobuf/wrappers.rb +121 -0
  31. data/proto_docs/google/rpc/status.rb +48 -0
  32. data/proto_docs/google/type/dayofweek.rb +49 -0
  33. data/proto_docs/google/type/expr.rb +75 -0
  34. data/proto_docs/google/type/timeofday.rb +45 -0
  35. metadata +281 -0
@@ -0,0 +1,1227 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module AlloyDB
23
+ module V1alpha
24
+ # The username/password for a database user. Used for specifying initial
25
+ # users at cluster creation time.
26
+ # @!attribute [rw] user
27
+ # @return [::String]
28
+ # The database username.
29
+ # @!attribute [rw] password
30
+ # @return [::String]
31
+ # The initial password for the user.
32
+ class UserPassword
33
+ include ::Google::Protobuf::MessageExts
34
+ extend ::Google::Protobuf::MessageExts::ClassMethods
35
+ end
36
+
37
+ # Subset of the source instance configuration that is available when reading
38
+ # the cluster resource.
39
+ # @!attribute [r] host_port
40
+ # @return [::String]
41
+ # Output only. The host and port of the on-premises instance in host:port
42
+ # format
43
+ # @!attribute [r] reference_id
44
+ # @return [::String]
45
+ # Output only. Place holder for the external source identifier(e.g DMS job
46
+ # name) that created the cluster.
47
+ # @!attribute [r] source_type
48
+ # @return [::Google::Cloud::AlloyDB::V1alpha::MigrationSource::MigrationSourceType]
49
+ # Output only. Type of migration source.
50
+ class MigrationSource
51
+ include ::Google::Protobuf::MessageExts
52
+ extend ::Google::Protobuf::MessageExts::ClassMethods
53
+
54
+ # Denote the type of migration source that created this cluster.
55
+ module MigrationSourceType
56
+ # Migration source is unknown.
57
+ MIGRATION_SOURCE_TYPE_UNSPECIFIED = 0
58
+
59
+ # DMS source means the cluster was created via DMS migration job.
60
+ DMS = 1
61
+ end
62
+ end
63
+
64
+ # EncryptionConfig describes the encryption config of a cluster or a backup
65
+ # that is encrypted with a CMEK (customer-managed encryption key).
66
+ # @!attribute [rw] kms_key_name
67
+ # @return [::String]
68
+ # The fully-qualified resource name of the KMS key.
69
+ # Each Cloud KMS key is regionalized and has the following format:
70
+ # projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]
71
+ class EncryptionConfig
72
+ include ::Google::Protobuf::MessageExts
73
+ extend ::Google::Protobuf::MessageExts::ClassMethods
74
+ end
75
+
76
+ # EncryptionInfo describes the encryption information of a cluster or a backup.
77
+ # @!attribute [r] encryption_type
78
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionInfo::Type]
79
+ # Output only. Type of encryption.
80
+ # @!attribute [r] kms_key_versions
81
+ # @return [::Array<::String>]
82
+ # Output only. Cloud KMS key versions that are being used to protect the
83
+ # database or the backup.
84
+ class EncryptionInfo
85
+ include ::Google::Protobuf::MessageExts
86
+ extend ::Google::Protobuf::MessageExts::ClassMethods
87
+
88
+ # Possible encryption types.
89
+ module Type
90
+ # Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.
91
+ TYPE_UNSPECIFIED = 0
92
+
93
+ # The data is encrypted at rest with a key that is fully managed by Google.
94
+ # No key version will be populated. This is the default state.
95
+ GOOGLE_DEFAULT_ENCRYPTION = 1
96
+
97
+ # The data is encrypted at rest with a key that is managed by the customer.
98
+ # KMS key versions will be populated.
99
+ CUSTOMER_MANAGED_ENCRYPTION = 2
100
+ end
101
+ end
102
+
103
+ # SSL configuration.
104
+ # @!attribute [rw] ssl_mode
105
+ # @return [::Google::Cloud::AlloyDB::V1alpha::SslConfig::SslMode]
106
+ # Optional. SSL mode. Specifies client-server SSL/TLS connection behavior.
107
+ # @!attribute [rw] ca_source
108
+ # @return [::Google::Cloud::AlloyDB::V1alpha::SslConfig::CaSource]
109
+ # Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is
110
+ # supported currently, and is the default value.
111
+ class SslConfig
112
+ include ::Google::Protobuf::MessageExts
113
+ extend ::Google::Protobuf::MessageExts::ClassMethods
114
+
115
+ # SSL mode options.
116
+ module SslMode
117
+ # SSL mode not specified. Defaults to ENCRYPTED_ONLY.
118
+ SSL_MODE_UNSPECIFIED = 0
119
+
120
+ # SSL connections are optional. CA verification not enforced.
121
+ SSL_MODE_ALLOW = 1
122
+
123
+ # SSL connections are required. CA verification not enforced.
124
+ # Clients may use locally self-signed certificates (default psql client
125
+ # behavior).
126
+ SSL_MODE_REQUIRE = 2
127
+
128
+ # SSL connections are required. CA verification enforced.
129
+ # Clients must have certificates signed by a Cluster CA, e.g. via
130
+ # GenerateClientCertificate.
131
+ SSL_MODE_VERIFY_CA = 3
132
+
133
+ # SSL connections are optional. CA verification not enforced.
134
+ ALLOW_UNENCRYPTED_AND_ENCRYPTED = 4
135
+
136
+ # SSL connections are required. CA verification not enforced.
137
+ ENCRYPTED_ONLY = 5
138
+ end
139
+
140
+ # Certificate Authority (CA) source for SSL/TLS certificates.
141
+ module CaSource
142
+ # Certificate Authority (CA) source not specified. Defaults to
143
+ # CA_SOURCE_MANAGED.
144
+ CA_SOURCE_UNSPECIFIED = 0
145
+
146
+ # Certificate Authority (CA) managed by the AlloyDB Cluster.
147
+ CA_SOURCE_MANAGED = 1
148
+ end
149
+ end
150
+
151
+ # Message describing the user-specified automated backup policy.
152
+ #
153
+ # All fields in the automated backup policy are optional. Defaults for each
154
+ # field are provided if they are not set.
155
+ # @!attribute [rw] weekly_schedule
156
+ # @return [::Google::Cloud::AlloyDB::V1alpha::AutomatedBackupPolicy::WeeklySchedule]
157
+ # Weekly schedule for the Backup.
158
+ # @!attribute [rw] time_based_retention
159
+ # @return [::Google::Cloud::AlloyDB::V1alpha::AutomatedBackupPolicy::TimeBasedRetention]
160
+ # Time-based Backup retention policy.
161
+ # @!attribute [rw] quantity_based_retention
162
+ # @return [::Google::Cloud::AlloyDB::V1alpha::AutomatedBackupPolicy::QuantityBasedRetention]
163
+ # Quantity-based Backup retention policy to retain recent backups.
164
+ # @!attribute [rw] enabled
165
+ # @return [::Boolean]
166
+ # Whether automated automated backups are enabled. If not set, defaults to
167
+ # true.
168
+ # @!attribute [rw] backup_window
169
+ # @return [::Google::Protobuf::Duration]
170
+ # The length of the time window during which a backup can be
171
+ # taken. If a backup does not succeed within this time window, it will be
172
+ # canceled and considered failed.
173
+ #
174
+ # The backup window must be at least 5 minutes long. There is no upper bound
175
+ # on the window. If not set, it defaults to 1 hour.
176
+ # @!attribute [rw] encryption_config
177
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionConfig]
178
+ # Optional. The encryption config can be specified to encrypt the
179
+ # backups with a customer-managed encryption key (CMEK). When this field is
180
+ # not specified, the backup will then use default encryption scheme to
181
+ # protect the user data.
182
+ # @!attribute [rw] location
183
+ # @return [::String]
184
+ # The location where the backup will be stored. Currently, the only supported
185
+ # option is to store the backup in the same region as the cluster.
186
+ #
187
+ # If empty, defaults to the region of the cluster.
188
+ # @!attribute [rw] labels
189
+ # @return [::Google::Protobuf::Map{::String => ::String}]
190
+ # Labels to apply to backups created using this configuration.
191
+ class AutomatedBackupPolicy
192
+ include ::Google::Protobuf::MessageExts
193
+ extend ::Google::Protobuf::MessageExts::ClassMethods
194
+
195
+ # A weekly schedule starts a backup at prescribed start times within a
196
+ # day, for the specified days of the week.
197
+ #
198
+ # The weekly schedule message is flexible and can be used to create many
199
+ # types of schedules. For example, to have a daily backup that starts at
200
+ # 22:00, configure the `start_times` field to have one element "22:00" and
201
+ # the `days_of_week` field to have all seven days of the week.
202
+ # @!attribute [rw] start_times
203
+ # @return [::Array<::Google::Type::TimeOfDay>]
204
+ # The times during the day to start a backup. The start times are assumed
205
+ # to be in UTC and to be an exact hour (e.g., 04:00:00).
206
+ #
207
+ # If no start times are provided, a single fixed start time is chosen
208
+ # arbitrarily.
209
+ # @!attribute [rw] days_of_week
210
+ # @return [::Array<::Google::Type::DayOfWeek>]
211
+ # The days of the week to perform a backup.
212
+ #
213
+ # If this field is left empty, the default of every day of the week is
214
+ # used.
215
+ class WeeklySchedule
216
+ include ::Google::Protobuf::MessageExts
217
+ extend ::Google::Protobuf::MessageExts::ClassMethods
218
+ end
219
+
220
+ # A time based retention policy specifies that all backups within a certain
221
+ # time period should be retained.
222
+ # @!attribute [rw] retention_period
223
+ # @return [::Google::Protobuf::Duration]
224
+ # The retention period.
225
+ class TimeBasedRetention
226
+ include ::Google::Protobuf::MessageExts
227
+ extend ::Google::Protobuf::MessageExts::ClassMethods
228
+ end
229
+
230
+ # A quantity based policy specifies that a certain number of the most recent
231
+ # successful backups should be retained.
232
+ # @!attribute [rw] count
233
+ # @return [::Integer]
234
+ # The number of backups to retain.
235
+ class QuantityBasedRetention
236
+ include ::Google::Protobuf::MessageExts
237
+ extend ::Google::Protobuf::MessageExts::ClassMethods
238
+ end
239
+
240
+ # @!attribute [rw] key
241
+ # @return [::String]
242
+ # @!attribute [rw] value
243
+ # @return [::String]
244
+ class LabelsEntry
245
+ include ::Google::Protobuf::MessageExts
246
+ extend ::Google::Protobuf::MessageExts::ClassMethods
247
+ end
248
+ end
249
+
250
+ # ContinuousBackupConfig describes the continuous backups recovery
251
+ # configurations of a cluster.
252
+ # @!attribute [rw] enabled
253
+ # @return [::Boolean]
254
+ # Whether ContinuousBackup is enabled.
255
+ # @!attribute [rw] recovery_window_days
256
+ # @return [::Integer]
257
+ # The number of days that are eligible to restore from using PITR. To support
258
+ # the entire recovery window, backups and logs are retained for one day more
259
+ # than the recovery window. If not set, defaults to 14 days.
260
+ # @!attribute [rw] encryption_config
261
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionConfig]
262
+ # The encryption config can be specified to encrypt the
263
+ # backups with a customer-managed encryption key (CMEK). When this field is
264
+ # not specified, the backup will then use default encryption scheme to
265
+ # protect the user data.
266
+ class ContinuousBackupConfig
267
+ include ::Google::Protobuf::MessageExts
268
+ extend ::Google::Protobuf::MessageExts::ClassMethods
269
+ end
270
+
271
+ # ContinuousBackupInfo describes the continuous backup properties of a
272
+ # cluster.
273
+ # @!attribute [r] encryption_info
274
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionInfo]
275
+ # Output only. The encryption information for the WALs and backups required
276
+ # for ContinuousBackup.
277
+ # @!attribute [r] enabled_time
278
+ # @return [::Google::Protobuf::Timestamp]
279
+ # Output only. When ContinuousBackup was most recently enabled. Set to null
280
+ # if ContinuousBackup is not enabled.
281
+ # @!attribute [r] schedule
282
+ # @return [::Array<::Google::Type::DayOfWeek>]
283
+ # Output only. Days of the week on which a continuous backup is taken. Output
284
+ # only field. Ignored if passed into the request.
285
+ # @!attribute [r] earliest_restorable_time
286
+ # @return [::Google::Protobuf::Timestamp]
287
+ # Output only. The earliest restorable time that can be restored to. Output
288
+ # only field.
289
+ class ContinuousBackupInfo
290
+ include ::Google::Protobuf::MessageExts
291
+ extend ::Google::Protobuf::MessageExts::ClassMethods
292
+ end
293
+
294
+ # Message describing a BackupSource.
295
+ # @!attribute [r] backup_uid
296
+ # @return [::String]
297
+ # Output only. The system-generated UID of the backup which was used to
298
+ # create this resource. The UID is generated when the backup is created, and
299
+ # it is retained until the backup is deleted.
300
+ # @!attribute [rw] backup_name
301
+ # @return [::String]
302
+ # Required. The name of the backup resource with the format:
303
+ # * projects/\\{project}/locations/\\{region}/backups/\\{backup_id}
304
+ class BackupSource
305
+ include ::Google::Protobuf::MessageExts
306
+ extend ::Google::Protobuf::MessageExts::ClassMethods
307
+ end
308
+
309
+ # Message describing a ContinuousBackupSource.
310
+ # @!attribute [rw] cluster
311
+ # @return [::String]
312
+ # Required. The source cluster from which to restore. This cluster must have
313
+ # continuous backup enabled for this operation to succeed. For the required
314
+ # format, see the comment on the Cluster.name field.
315
+ # @!attribute [rw] point_in_time
316
+ # @return [::Google::Protobuf::Timestamp]
317
+ # Required. The point in time to restore to.
318
+ class ContinuousBackupSource
319
+ include ::Google::Protobuf::MessageExts
320
+ extend ::Google::Protobuf::MessageExts::ClassMethods
321
+ end
322
+
323
+ # A cluster is a collection of regional AlloyDB resources. It can include a
324
+ # primary instance and one or more read pool instances.
325
+ # All cluster resources share a storage layer, which scales as needed.
326
+ # @!attribute [r] backup_source
327
+ # @return [::Google::Cloud::AlloyDB::V1alpha::BackupSource]
328
+ # Output only. Cluster created from backup.
329
+ # @!attribute [r] migration_source
330
+ # @return [::Google::Cloud::AlloyDB::V1alpha::MigrationSource]
331
+ # Output only. Cluster created via DMS migration.
332
+ # @!attribute [r] name
333
+ # @return [::String]
334
+ # Output only. The name of the cluster resource with the format:
335
+ # * projects/\\{project}/locations/\\{region}/clusters/\\{cluster_id}
336
+ # where the cluster ID segment should satisfy the regex expression
337
+ # `[a-z0-9-]+`. For more details see https://google.aip.dev/122.
338
+ # The prefix of the cluster resource name is the name of the parent resource:
339
+ # * projects/\\{project}/locations/\\{region}
340
+ # @!attribute [rw] display_name
341
+ # @return [::String]
342
+ # User-settable and human-readable display name for the Cluster.
343
+ # @!attribute [r] uid
344
+ # @return [::String]
345
+ # Output only. The system-generated UID of the resource. The UID is assigned
346
+ # when the resource is created, and it is retained until it is deleted.
347
+ # @!attribute [r] create_time
348
+ # @return [::Google::Protobuf::Timestamp]
349
+ # Output only. Create time stamp
350
+ # @!attribute [r] update_time
351
+ # @return [::Google::Protobuf::Timestamp]
352
+ # Output only. Update time stamp
353
+ # @!attribute [r] delete_time
354
+ # @return [::Google::Protobuf::Timestamp]
355
+ # Output only. Delete time stamp
356
+ # @!attribute [rw] labels
357
+ # @return [::Google::Protobuf::Map{::String => ::String}]
358
+ # Labels as key value pairs
359
+ # @!attribute [r] state
360
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Cluster::State]
361
+ # Output only. The current serving state of the cluster.
362
+ # @!attribute [r] cluster_type
363
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Cluster::ClusterType]
364
+ # Output only. The type of the cluster. This is an output-only field and it's
365
+ # populated at the Cluster creation time or the Cluster promotion
366
+ # time. The cluster type is determined by which RPC was used to create
367
+ # the cluster (i.e. `CreateCluster` vs. `CreateSecondaryCluster`
368
+ # @!attribute [rw] database_version
369
+ # @return [::Google::Cloud::AlloyDB::V1alpha::DatabaseVersion]
370
+ # Optional. The database engine major version. This is an optional field and
371
+ # it is populated at the Cluster creation time. If a database version is not
372
+ # supplied at cluster creation time, then a default database version will
373
+ # be used.
374
+ # @!attribute [rw] network_config
375
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Cluster::NetworkConfig]
376
+ # @!attribute [rw] network
377
+ # @return [::String]
378
+ # Required. The resource link for the VPC network in which cluster resources
379
+ # are created and from which they are accessible via Private IP. The network
380
+ # must belong to the same project as the cluster. It is specified in the
381
+ # form: "projects/\\{project_number}/global/networks/\\{network_id}". This is
382
+ # required to create a cluster. It can be updated, but it cannot be removed.
383
+ # @!attribute [rw] etag
384
+ # @return [::String]
385
+ # For Resource freshness validation (https://google.aip.dev/154)
386
+ # @!attribute [rw] annotations
387
+ # @return [::Google::Protobuf::Map{::String => ::String}]
388
+ # Annotations to allow client tools to store small amount of arbitrary data.
389
+ # This is distinct from labels.
390
+ # https://google.aip.dev/128
391
+ # @!attribute [r] reconciling
392
+ # @return [::Boolean]
393
+ # Output only. Reconciling (https://google.aip.dev/128#reconciliation).
394
+ # Set to true if the current state of Cluster does not match the user's
395
+ # intended state, and the service is actively updating the resource to
396
+ # reconcile them. This can happen due to user-triggered updates or
397
+ # system actions like failover or maintenance.
398
+ # @!attribute [rw] initial_user
399
+ # @return [::Google::Cloud::AlloyDB::V1alpha::UserPassword]
400
+ # Input only. Initial user to setup during cluster creation. Required.
401
+ # If used in `RestoreCluster` this is ignored.
402
+ # @!attribute [rw] automated_backup_policy
403
+ # @return [::Google::Cloud::AlloyDB::V1alpha::AutomatedBackupPolicy]
404
+ # The automated backup policy for this cluster.
405
+ #
406
+ # If no policy is provided then the default policy will be used. If backups
407
+ # are supported for the cluster, the default policy takes one backup a day,
408
+ # has a backup window of 1 hour, and retains backups for 14 days.
409
+ # For more information on the defaults, consult the
410
+ # documentation for the message type.
411
+ # @!attribute [rw] ssl_config
412
+ # @return [::Google::Cloud::AlloyDB::V1alpha::SslConfig]
413
+ # SSL configuration for this AlloyDB cluster.
414
+ # @!attribute [rw] encryption_config
415
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionConfig]
416
+ # Optional. The encryption config can be specified to encrypt the data disks
417
+ # and other persistent data resources of a cluster with a
418
+ # customer-managed encryption key (CMEK). When this field is not
419
+ # specified, the cluster will then use default encryption scheme to
420
+ # protect the user data.
421
+ # @!attribute [r] encryption_info
422
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionInfo]
423
+ # Output only. The encryption information for the cluster.
424
+ # @!attribute [rw] continuous_backup_config
425
+ # @return [::Google::Cloud::AlloyDB::V1alpha::ContinuousBackupConfig]
426
+ # Optional. Continuous backup configuration for this cluster.
427
+ # @!attribute [r] continuous_backup_info
428
+ # @return [::Google::Cloud::AlloyDB::V1alpha::ContinuousBackupInfo]
429
+ # Output only. Continuous backup properties for this cluster.
430
+ # @!attribute [rw] secondary_config
431
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Cluster::SecondaryConfig]
432
+ # Cross Region replication config specific to SECONDARY cluster.
433
+ # @!attribute [r] primary_config
434
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Cluster::PrimaryConfig]
435
+ # Output only. Cross Region replication config specific to PRIMARY cluster.
436
+ # @!attribute [rw] satisfies_pzs
437
+ # @return [::Boolean]
438
+ # Reserved for future use.
439
+ class Cluster
440
+ include ::Google::Protobuf::MessageExts
441
+ extend ::Google::Protobuf::MessageExts::ClassMethods
442
+
443
+ # Metadata related to network configuration.
444
+ # @!attribute [rw] network
445
+ # @return [::String]
446
+ # Required. The resource link for the VPC network in which cluster
447
+ # resources are created and from which they are accessible via Private IP.
448
+ # The network must belong to the same project as the cluster. It is
449
+ # specified in the form:
450
+ # "projects/\\{project_number}/global/networks/\\{network_id}". This is
451
+ # required to create a cluster. It can be updated, but it cannot be
452
+ # removed.
453
+ # @!attribute [rw] allocated_ip_range
454
+ # @return [::String]
455
+ # Optional. The name of the allocated IP range for the private IP AlloyDB
456
+ # cluster. For example: "google-managed-services-default". If set, the
457
+ # instance IPs for this cluster will be created in the allocated range. The
458
+ # range name must comply with RFC 1035. Specifically, the name must be 1-63
459
+ # characters long and match the regular expression
460
+ # [a-z]([-a-z0-9]*[a-z0-9])?.
461
+ # Field name is intended to be consistent with CloudSQL.
462
+ class NetworkConfig
463
+ include ::Google::Protobuf::MessageExts
464
+ extend ::Google::Protobuf::MessageExts::ClassMethods
465
+ end
466
+
467
+ # Configuration information for the secondary cluster. This should be set
468
+ # if and only if the cluster is of type SECONDARY.
469
+ # @!attribute [rw] primary_cluster_name
470
+ # @return [::String]
471
+ # The name of the primary cluster name with the format:
472
+ # * projects/\\{project}/locations/\\{region}/clusters/\\{cluster_id}
473
+ class SecondaryConfig
474
+ include ::Google::Protobuf::MessageExts
475
+ extend ::Google::Protobuf::MessageExts::ClassMethods
476
+ end
477
+
478
+ # Configuration for the primary cluster. It has the list of clusters that are
479
+ # replicating from this cluster. This should be set if and only if the
480
+ # cluster is of type PRIMARY.
481
+ # @!attribute [r] secondary_cluster_names
482
+ # @return [::Array<::String>]
483
+ # Output only. Names of the clusters that are replicating from this
484
+ # cluster.
485
+ class PrimaryConfig
486
+ include ::Google::Protobuf::MessageExts
487
+ extend ::Google::Protobuf::MessageExts::ClassMethods
488
+ end
489
+
490
+ # @!attribute [rw] key
491
+ # @return [::String]
492
+ # @!attribute [rw] value
493
+ # @return [::String]
494
+ class LabelsEntry
495
+ include ::Google::Protobuf::MessageExts
496
+ extend ::Google::Protobuf::MessageExts::ClassMethods
497
+ end
498
+
499
+ # @!attribute [rw] key
500
+ # @return [::String]
501
+ # @!attribute [rw] value
502
+ # @return [::String]
503
+ class AnnotationsEntry
504
+ include ::Google::Protobuf::MessageExts
505
+ extend ::Google::Protobuf::MessageExts::ClassMethods
506
+ end
507
+
508
+ # Cluster State
509
+ module State
510
+ # The state of the cluster is unknown.
511
+ STATE_UNSPECIFIED = 0
512
+
513
+ # The cluster is active and running.
514
+ READY = 1
515
+
516
+ # The cluster is stopped. All instances in the cluster are stopped.
517
+ # Customers can start a stopped cluster at any point and all their
518
+ # instances will come back to life with same names and IP resources. In
519
+ # this state, customer pays for storage.
520
+ # Associated backups could also be present in a stopped cluster.
521
+ STOPPED = 2
522
+
523
+ # The cluster is empty and has no associated resources.
524
+ # All instances, associated storage and backups have been deleted.
525
+ EMPTY = 3
526
+
527
+ # The cluster is being created.
528
+ CREATING = 4
529
+
530
+ # The cluster is being deleted.
531
+ DELETING = 5
532
+
533
+ # The creation of the cluster failed.
534
+ FAILED = 6
535
+
536
+ # The cluster is bootstrapping with data from some other source.
537
+ # Direct mutations to the cluster (e.g. adding read pool) are not allowed.
538
+ BOOTSTRAPPING = 7
539
+
540
+ # The cluster is under maintenance. AlloyDB regularly performs maintenance
541
+ # and upgrades on customer clusters. Updates on the cluster are
542
+ # not allowed while the cluster is in this state.
543
+ MAINTENANCE = 8
544
+
545
+ # The cluster is being promoted.
546
+ PROMOTING = 9
547
+ end
548
+
549
+ # Type of Cluster
550
+ module ClusterType
551
+ # The type of the cluster is unknown.
552
+ CLUSTER_TYPE_UNSPECIFIED = 0
553
+
554
+ # Primary cluster that support read and write operations.
555
+ PRIMARY = 1
556
+
557
+ # Secondary cluster that is replicating from another region.
558
+ # This only supports read.
559
+ SECONDARY = 2
560
+ end
561
+ end
562
+
563
+ # An Instance is a computing unit that an end customer can connect to.
564
+ # It's the main unit of computing resources in AlloyDB.
565
+ # @!attribute [r] name
566
+ # @return [::String]
567
+ # Output only. The name of the instance resource with the format:
568
+ # * projects/\\{project}/locations/\\{region}/clusters/\\{cluster_id}/instances/\\{instance_id}
569
+ # where the cluster and instance ID segments should satisfy the regex
570
+ # expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of
571
+ # lowercase letters, numbers, and dashes, starting with a letter, and ending
572
+ # with a letter or number. For more details see https://google.aip.dev/122.
573
+ # The prefix of the instance resource name is the name of the parent
574
+ # resource:
575
+ # * projects/\\{project}/locations/\\{region}/clusters/\\{cluster_id}
576
+ # @!attribute [rw] display_name
577
+ # @return [::String]
578
+ # User-settable and human-readable display name for the Instance.
579
+ # @!attribute [r] uid
580
+ # @return [::String]
581
+ # Output only. The system-generated UID of the resource. The UID is assigned
582
+ # when the resource is created, and it is retained until it is deleted.
583
+ # @!attribute [r] create_time
584
+ # @return [::Google::Protobuf::Timestamp]
585
+ # Output only. Create time stamp
586
+ # @!attribute [r] update_time
587
+ # @return [::Google::Protobuf::Timestamp]
588
+ # Output only. Update time stamp
589
+ # @!attribute [r] delete_time
590
+ # @return [::Google::Protobuf::Timestamp]
591
+ # Output only. Delete time stamp
592
+ # @!attribute [rw] labels
593
+ # @return [::Google::Protobuf::Map{::String => ::String}]
594
+ # Labels as key value pairs
595
+ # @!attribute [r] state
596
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::State]
597
+ # Output only. The current serving state of the instance.
598
+ # @!attribute [rw] instance_type
599
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::InstanceType]
600
+ # Required. The type of the instance. Specified at creation time.
601
+ # @!attribute [rw] machine_config
602
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::MachineConfig]
603
+ # Configurations for the machines that host the underlying
604
+ # database engine.
605
+ # @!attribute [rw] availability_type
606
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::AvailabilityType]
607
+ # Availability type of an Instance.
608
+ # If empty, defaults to REGIONAL for primary instances.
609
+ # For read pools, availability_type is always UNSPECIFIED. Instances in the
610
+ # read pools are evenly distributed across available zones within the region
611
+ # (i.e. read pools with more than one node will have a node in at
612
+ # least two zones).
613
+ # @!attribute [rw] gce_zone
614
+ # @return [::String]
615
+ # The Compute Engine zone that the instance should serve from, per
616
+ # https://cloud.google.com/compute/docs/regions-zones
617
+ # This can ONLY be specified for ZONAL instances.
618
+ # If present for a REGIONAL instance, an error will be thrown.
619
+ # If this is absent for a ZONAL instance, instance is created in a random
620
+ # zone with available capacity.
621
+ # @!attribute [rw] database_flags
622
+ # @return [::Google::Protobuf::Map{::String => ::String}]
623
+ # Database flags. Set at instance level.
624
+ # * They are copied from primary instance on read instance creation.
625
+ # * Read instances can set new or override existing flags that are relevant
626
+ # for reads, e.g. for enabling columnar cache on a read instance. Flags
627
+ # set on read instance may or may not be present on primary.
628
+ #
629
+ #
630
+ # This is a list of "key": "value" pairs.
631
+ # "key": The name of the flag. These flags are passed at instance setup time,
632
+ # so include both server options and system variables for Postgres. Flags are
633
+ # specified with underscores, not hyphens.
634
+ # "value": The value of the flag. Booleans are set to **on** for true
635
+ # and **off** for false. This field must be omitted if the flag
636
+ # doesn't take a value.
637
+ # @!attribute [r] writable_node
638
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::Node]
639
+ # Output only. This is set for the read-write VM of the PRIMARY instance
640
+ # only.
641
+ # @!attribute [r] nodes
642
+ # @return [::Array<::Google::Cloud::AlloyDB::V1alpha::Instance::Node>]
643
+ # Output only. List of available read-only VMs in this instance, including
644
+ # the standby for a PRIMARY instance.
645
+ # @!attribute [rw] query_insights_config
646
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::QueryInsightsInstanceConfig]
647
+ # Configuration for query insights.
648
+ # @!attribute [rw] read_pool_config
649
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::ReadPoolConfig]
650
+ # Read pool specific config.
651
+ # @!attribute [r] ip_address
652
+ # @return [::String]
653
+ # Output only. The IP address for the Instance.
654
+ # This is the connection endpoint for an end-user application.
655
+ # @!attribute [r] reconciling
656
+ # @return [::Boolean]
657
+ # Output only. Reconciling (https://google.aip.dev/128#reconciliation).
658
+ # Set to true if the current state of Instance does not match the user's
659
+ # intended state, and the service is actively updating the resource to
660
+ # reconcile them. This can happen due to user-triggered updates or
661
+ # system actions like failover or maintenance.
662
+ # @!attribute [rw] etag
663
+ # @return [::String]
664
+ # For Resource freshness validation (https://google.aip.dev/154)
665
+ # @!attribute [rw] annotations
666
+ # @return [::Google::Protobuf::Map{::String => ::String}]
667
+ # Annotations to allow client tools to store small amount of arbitrary data.
668
+ # This is distinct from labels.
669
+ # https://google.aip.dev/128
670
+ # @!attribute [rw] update_policy
671
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::UpdatePolicy]
672
+ # Update policy that will be applied during instance update.
673
+ # This field is not persisted when you update the instance.
674
+ # To use a non-default update policy, you must
675
+ # specify explicitly specify the value in each update request.
676
+ # @!attribute [rw] satisfies_pzs
677
+ # @return [::Boolean]
678
+ # Reserved for future use.
679
+ class Instance
680
+ include ::Google::Protobuf::MessageExts
681
+ extend ::Google::Protobuf::MessageExts::ClassMethods
682
+
683
+ # MachineConfig describes the configuration of a machine.
684
+ # @!attribute [rw] cpu_count
685
+ # @return [::Integer]
686
+ # The number of CPU's in the VM instance.
687
+ class MachineConfig
688
+ include ::Google::Protobuf::MessageExts
689
+ extend ::Google::Protobuf::MessageExts::ClassMethods
690
+ end
691
+
692
+ # Details of a single node in the instance.
693
+ # Nodes in an AlloyDB instance are ephemereal, they can change during
694
+ # update, failover, autohealing and resize operations.
695
+ # @!attribute [rw] zone_id
696
+ # @return [::String]
697
+ # The Compute Engine zone of the VM e.g. "us-central1-b".
698
+ # @!attribute [rw] id
699
+ # @return [::String]
700
+ # The identifier of the VM e.g. "test-read-0601-407e52be-ms3l".
701
+ # @!attribute [rw] ip
702
+ # @return [::String]
703
+ # The private IP address of the VM e.g. "10.57.0.34".
704
+ # @!attribute [rw] state
705
+ # @return [::String]
706
+ # Determined by state of the compute VM and postgres-service health.
707
+ # Compute VM state can have values listed in
708
+ # https://cloud.google.com/compute/docs/instances/instance-life-cycle and
709
+ # postgres-service health can have values: HEALTHY and UNHEALTHY.
710
+ class Node
711
+ include ::Google::Protobuf::MessageExts
712
+ extend ::Google::Protobuf::MessageExts::ClassMethods
713
+ end
714
+
715
+ # QueryInsights Instance specific configuration.
716
+ # @!attribute [rw] record_application_tags
717
+ # @return [::Boolean]
718
+ # Record application tags for an instance.
719
+ # This flag is turned "on" by default.
720
+ # @!attribute [rw] record_client_address
721
+ # @return [::Boolean]
722
+ # Record client address for an instance. Client address is PII information.
723
+ # This flag is turned "on" by default.
724
+ # @!attribute [rw] query_string_length
725
+ # @return [::Integer]
726
+ # Query string length. The default value is 1024.
727
+ # Any integer between 256 and 4500 is considered valid.
728
+ # @!attribute [rw] query_plans_per_minute
729
+ # @return [::Integer]
730
+ # Number of query execution plans captured by Insights per minute
731
+ # for all queries combined. The default value is 5.
732
+ # Any integer between 0 and 20 is considered valid.
733
+ class QueryInsightsInstanceConfig
734
+ include ::Google::Protobuf::MessageExts
735
+ extend ::Google::Protobuf::MessageExts::ClassMethods
736
+ end
737
+
738
+ # Configuration for a read pool instance.
739
+ # @!attribute [rw] node_count
740
+ # @return [::Integer]
741
+ # Read capacity, i.e. number of nodes in a read pool instance.
742
+ class ReadPoolConfig
743
+ include ::Google::Protobuf::MessageExts
744
+ extend ::Google::Protobuf::MessageExts::ClassMethods
745
+ end
746
+
747
+ # Policy to be used while updating the instance.
748
+ # @!attribute [rw] mode
749
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Instance::UpdatePolicy::Mode]
750
+ # Mode for updating the instance.
751
+ class UpdatePolicy
752
+ include ::Google::Protobuf::MessageExts
753
+ extend ::Google::Protobuf::MessageExts::ClassMethods
754
+
755
+ # Specifies the available modes of update.
756
+ module Mode
757
+ # Mode is unknown.
758
+ MODE_UNSPECIFIED = 0
759
+
760
+ # Least disruptive way to apply the update.
761
+ DEFAULT = 1
762
+
763
+ # Performs a forced update when applicable. This will be fast but may
764
+ # incur a downtime.
765
+ FORCE_APPLY = 2
766
+ end
767
+ end
768
+
769
+ # @!attribute [rw] key
770
+ # @return [::String]
771
+ # @!attribute [rw] value
772
+ # @return [::String]
773
+ class LabelsEntry
774
+ include ::Google::Protobuf::MessageExts
775
+ extend ::Google::Protobuf::MessageExts::ClassMethods
776
+ end
777
+
778
+ # @!attribute [rw] key
779
+ # @return [::String]
780
+ # @!attribute [rw] value
781
+ # @return [::String]
782
+ class DatabaseFlagsEntry
783
+ include ::Google::Protobuf::MessageExts
784
+ extend ::Google::Protobuf::MessageExts::ClassMethods
785
+ end
786
+
787
+ # @!attribute [rw] key
788
+ # @return [::String]
789
+ # @!attribute [rw] value
790
+ # @return [::String]
791
+ class AnnotationsEntry
792
+ include ::Google::Protobuf::MessageExts
793
+ extend ::Google::Protobuf::MessageExts::ClassMethods
794
+ end
795
+
796
+ # Instance State
797
+ module State
798
+ # The state of the instance is unknown.
799
+ STATE_UNSPECIFIED = 0
800
+
801
+ # The instance is active and running.
802
+ READY = 1
803
+
804
+ # The instance is stopped. Instance name and IP resources are preserved.
805
+ STOPPED = 2
806
+
807
+ # The instance is being created.
808
+ CREATING = 3
809
+
810
+ # The instance is being deleted.
811
+ DELETING = 4
812
+
813
+ # The instance is down for maintenance.
814
+ MAINTENANCE = 5
815
+
816
+ # The creation of the instance failed or a fatal error occurred during
817
+ # an operation on the instance.
818
+ # Note: Instances in this state would tried to be auto-repaired. And
819
+ # Customers should be able to restart, update or delete these instances.
820
+ FAILED = 6
821
+
822
+ # Index 7 is used in the producer apis for ROLLED_BACK state. Keeping that
823
+ # index unused in case that state also needs to exposed via consumer apis
824
+ # in future.
825
+ # The instance has been configured to sync data from some other source.
826
+ BOOTSTRAPPING = 8
827
+
828
+ # The instance is being promoted.
829
+ PROMOTING = 9
830
+ end
831
+
832
+ # Type of an Instance
833
+ module InstanceType
834
+ # The type of the instance is unknown.
835
+ INSTANCE_TYPE_UNSPECIFIED = 0
836
+
837
+ # PRIMARY instances support read and write operations.
838
+ PRIMARY = 1
839
+
840
+ # READ POOL instances support read operations only. Each read pool instance
841
+ # consists of one or more homogeneous nodes.
842
+ # * Read pool of size 1 can only have zonal availability.
843
+ # * Read pools with node count of 2 or more can have regional
844
+ # availability (nodes are present in 2 or more zones in a region).
845
+ READ_POOL = 2
846
+
847
+ # SECONDARY instances support read operations only. SECONDARY instance
848
+ # is a cross-region read replica
849
+ SECONDARY = 3
850
+ end
851
+
852
+ # The Availability type of an instance. Potential values:
853
+ #
854
+ # - ZONAL: The instance serves data from only one zone. Outages in that
855
+ # zone affect instance availability.
856
+ # - REGIONAL: The instance can serve data from more than one zone in a
857
+ # region (it is highly available).
858
+ module AvailabilityType
859
+ # This is an unknown Availability type.
860
+ AVAILABILITY_TYPE_UNSPECIFIED = 0
861
+
862
+ # Zonal available instance.
863
+ ZONAL = 1
864
+
865
+ # Regional (or Highly) available instance.
866
+ REGIONAL = 2
867
+ end
868
+ end
869
+
870
+ # ConnectionInfo singleton resource.
871
+ # https://google.aip.dev/156
872
+ # @!attribute [rw] name
873
+ # @return [::String]
874
+ # The name of the ConnectionInfo singleton resource, e.g.:
875
+ # projects/\\{project}/locations/\\{location}/clusters/*/instances/*/connectionInfo
876
+ # This field currently has no semantic meaning.
877
+ # @!attribute [r] ip_address
878
+ # @return [::String]
879
+ # Output only. The IP address for the Instance.
880
+ # This is the connection endpoint for an end-user application.
881
+ # @!attribute [r] pem_certificate_chain
882
+ # @return [::Array<::String>]
883
+ # Output only. The pem-encoded chain that may be used to verify the X.509
884
+ # certificate. Expected to be in issuer-to-root order according to RFC 5246.
885
+ # @!attribute [r] instance_uid
886
+ # @return [::String]
887
+ # Output only. The unique ID of the Instance.
888
+ class ConnectionInfo
889
+ include ::Google::Protobuf::MessageExts
890
+ extend ::Google::Protobuf::MessageExts::ClassMethods
891
+ end
892
+
893
+ # Message describing Backup object
894
+ # @!attribute [r] name
895
+ # @return [::String]
896
+ # Output only. The name of the backup resource with the format:
897
+ # * projects/\\{project}/locations/\\{region}/backups/\\{backup_id}
898
+ # where the cluster and backup ID segments should satisfy the regex
899
+ # expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of
900
+ # lowercase letters, numbers, and dashes, starting with a letter, and ending
901
+ # with a letter or number. For more details see https://google.aip.dev/122.
902
+ # The prefix of the backup resource name is the name of the parent
903
+ # resource:
904
+ # * projects/\\{project}/locations/\\{region}
905
+ # @!attribute [rw] display_name
906
+ # @return [::String]
907
+ # User-settable and human-readable display name for the Backup.
908
+ # @!attribute [r] uid
909
+ # @return [::String]
910
+ # Output only. The system-generated UID of the resource. The UID is assigned
911
+ # when the resource is created, and it is retained until it is deleted.
912
+ # @!attribute [r] create_time
913
+ # @return [::Google::Protobuf::Timestamp]
914
+ # Output only. Create time stamp
915
+ # @!attribute [r] update_time
916
+ # @return [::Google::Protobuf::Timestamp]
917
+ # Output only. Update time stamp
918
+ # @!attribute [r] delete_time
919
+ # @return [::Google::Protobuf::Timestamp]
920
+ # Output only. Delete time stamp
921
+ # @!attribute [rw] labels
922
+ # @return [::Google::Protobuf::Map{::String => ::String}]
923
+ # Labels as key value pairs
924
+ # @!attribute [r] state
925
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Backup::State]
926
+ # Output only. The current state of the backup.
927
+ # @!attribute [rw] type
928
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Backup::Type]
929
+ # The backup type, which suggests the trigger for the backup.
930
+ # @!attribute [rw] description
931
+ # @return [::String]
932
+ # User-provided description of the backup.
933
+ # @!attribute [r] cluster_uid
934
+ # @return [::String]
935
+ # Output only. The system-generated UID of the cluster which was used to
936
+ # create this resource.
937
+ # @!attribute [rw] cluster_name
938
+ # @return [::String]
939
+ # Required. The full resource name of the backup source cluster
940
+ # (e.g., projects/\\{project}/locations/\\{region}/clusters/\\{cluster_id}).
941
+ # @!attribute [r] reconciling
942
+ # @return [::Boolean]
943
+ # Output only. Reconciling (https://google.aip.dev/128#reconciliation), if
944
+ # true, indicates that the service is actively updating the resource. This
945
+ # can happen due to user-triggered updates or system actions like failover or
946
+ # maintenance.
947
+ # @!attribute [rw] encryption_config
948
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionConfig]
949
+ # Optional. The encryption config can be specified to encrypt the
950
+ # backup with a customer-managed encryption key (CMEK). When this field is
951
+ # not specified, the backup will then use default encryption scheme to
952
+ # protect the user data.
953
+ # @!attribute [r] encryption_info
954
+ # @return [::Google::Cloud::AlloyDB::V1alpha::EncryptionInfo]
955
+ # Output only. The encryption information for the backup.
956
+ # @!attribute [rw] etag
957
+ # @return [::String]
958
+ # For Resource freshness validation (https://google.aip.dev/154)
959
+ # @!attribute [rw] annotations
960
+ # @return [::Google::Protobuf::Map{::String => ::String}]
961
+ # Annotations to allow client tools to store small amount of arbitrary data.
962
+ # This is distinct from labels.
963
+ # https://google.aip.dev/128
964
+ # @!attribute [r] size_bytes
965
+ # @return [::Integer]
966
+ # Output only. The size of the backup in bytes.
967
+ # @!attribute [r] expiry_time
968
+ # @return [::Google::Protobuf::Timestamp]
969
+ # Output only. The time at which after the backup is eligible to be garbage
970
+ # collected. It is the duration specified by the backup's retention policy,
971
+ # added to the backup's create_time.
972
+ # @!attribute [r] expiry_quantity
973
+ # @return [::Google::Cloud::AlloyDB::V1alpha::Backup::QuantityBasedExpiry]
974
+ # Output only. The QuantityBasedExpiry of the backup, specified by the
975
+ # backup's retention policy. Once the expiry quantity is over retention, the
976
+ # backup is eligible to be garbage collected.
977
+ # @!attribute [rw] satisfies_pzs
978
+ # @return [::Boolean]
979
+ # Reserved for future use.
980
+ class Backup
981
+ include ::Google::Protobuf::MessageExts
982
+ extend ::Google::Protobuf::MessageExts::ClassMethods
983
+
984
+ # A backup's position in a quantity-based retention queue, of backups with
985
+ # the same source cluster and type, with length, retention, specified by the
986
+ # backup's retention policy.
987
+ # Once the position is greater than the retention, the backup is eligible to
988
+ # be garbage collected.
989
+ #
990
+ # Example: 5 backups from the same source cluster and type with a
991
+ # quantity-based retention of 3 and denoted by backup_id (position,
992
+ # retention).
993
+ #
994
+ # Safe: backup_5 (1, 3), backup_4, (2, 3), backup_3 (3, 3).
995
+ # Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3)
996
+ # @!attribute [r] retention_count
997
+ # @return [::Integer]
998
+ # Output only. The backup's position among its backups with the same source
999
+ # cluster and type, by descending chronological order create time(i.e.
1000
+ # newest first).
1001
+ # @!attribute [r] total_retention_count
1002
+ # @return [::Integer]
1003
+ # Output only. The length of the quantity-based queue, specified by the
1004
+ # backup's retention policy.
1005
+ class QuantityBasedExpiry
1006
+ include ::Google::Protobuf::MessageExts
1007
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1008
+ end
1009
+
1010
+ # @!attribute [rw] key
1011
+ # @return [::String]
1012
+ # @!attribute [rw] value
1013
+ # @return [::String]
1014
+ class LabelsEntry
1015
+ include ::Google::Protobuf::MessageExts
1016
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1017
+ end
1018
+
1019
+ # @!attribute [rw] key
1020
+ # @return [::String]
1021
+ # @!attribute [rw] value
1022
+ # @return [::String]
1023
+ class AnnotationsEntry
1024
+ include ::Google::Protobuf::MessageExts
1025
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1026
+ end
1027
+
1028
+ # Backup State
1029
+ module State
1030
+ # The state of the backup is unknown.
1031
+ STATE_UNSPECIFIED = 0
1032
+
1033
+ # The backup is ready.
1034
+ READY = 1
1035
+
1036
+ # The backup is creating.
1037
+ CREATING = 2
1038
+
1039
+ # The backup failed.
1040
+ FAILED = 3
1041
+
1042
+ # The backup is being deleted.
1043
+ DELETING = 4
1044
+ end
1045
+
1046
+ # Backup Type
1047
+ module Type
1048
+ # Backup Type is unknown.
1049
+ TYPE_UNSPECIFIED = 0
1050
+
1051
+ # ON_DEMAND backups that were triggered by the customer (e.g., not
1052
+ # AUTOMATED).
1053
+ ON_DEMAND = 1
1054
+
1055
+ # AUTOMATED backups triggered by the automated backups scheduler pursuant
1056
+ # to an automated backup policy.
1057
+ AUTOMATED = 2
1058
+
1059
+ # CONTINUOUS backups triggered by the automated backups scheduler
1060
+ # due to a continuous backup policy.
1061
+ CONTINUOUS = 3
1062
+ end
1063
+ end
1064
+
1065
+ # SupportedDatabaseFlag gives general information about a database flag,
1066
+ # like type and allowed values. This is a static value that is defined
1067
+ # on the server side, and it cannot be modified by callers.
1068
+ # To set the Database flags on a particular Instance, a caller should modify
1069
+ # the Instance.database_flags field.
1070
+ # @!attribute [rw] string_restrictions
1071
+ # @return [::Google::Cloud::AlloyDB::V1alpha::SupportedDatabaseFlag::StringRestrictions]
1072
+ # Restriction on STRING type value.
1073
+ # @!attribute [rw] integer_restrictions
1074
+ # @return [::Google::Cloud::AlloyDB::V1alpha::SupportedDatabaseFlag::IntegerRestrictions]
1075
+ # Restriction on INTEGER type value.
1076
+ # @!attribute [rw] name
1077
+ # @return [::String]
1078
+ # The name of the flag resource, following Google Cloud conventions, e.g.:
1079
+ # * projects/\\{project}/locations/\\{location}/flags/\\{flag}
1080
+ # This field currently has no semantic meaning.
1081
+ # @!attribute [rw] flag_name
1082
+ # @return [::String]
1083
+ # The name of the database flag, e.g. "max_allowed_packets".
1084
+ # The is a possibly key for the Instance.database_flags map field.
1085
+ # @!attribute [rw] value_type
1086
+ # @return [::Google::Cloud::AlloyDB::V1alpha::SupportedDatabaseFlag::ValueType]
1087
+ # @!attribute [rw] accepts_multiple_values
1088
+ # @return [::Boolean]
1089
+ # Whether the database flag accepts multiple values. If true,
1090
+ # a comma-separated list of stringified values may be specified.
1091
+ # @!attribute [rw] supported_db_versions
1092
+ # @return [::Array<::Google::Cloud::AlloyDB::V1alpha::DatabaseVersion>]
1093
+ # Major database engine versions for which this flag is supported.
1094
+ # @!attribute [rw] requires_db_restart
1095
+ # @return [::Boolean]
1096
+ # Whether setting or updating this flag on an Instance requires a database
1097
+ # restart. If a flag that requires database restart is set, the backend
1098
+ # will automatically restart the database (making sure to satisfy any
1099
+ # availability SLO's).
1100
+ class SupportedDatabaseFlag
1101
+ include ::Google::Protobuf::MessageExts
1102
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1103
+
1104
+ # Restrictions on STRING type values
1105
+ # @!attribute [rw] allowed_values
1106
+ # @return [::Array<::String>]
1107
+ # The list of allowed values, if bounded. This field will be empty
1108
+ # if there is a unbounded number of allowed values.
1109
+ class StringRestrictions
1110
+ include ::Google::Protobuf::MessageExts
1111
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1112
+ end
1113
+
1114
+ # Restrictions on INTEGER type values.
1115
+ # @!attribute [rw] min_value
1116
+ # @return [::Google::Protobuf::Int64Value]
1117
+ # The minimum value that can be specified, if applicable.
1118
+ # @!attribute [rw] max_value
1119
+ # @return [::Google::Protobuf::Int64Value]
1120
+ # The maximum value that can be specified, if applicable.
1121
+ class IntegerRestrictions
1122
+ include ::Google::Protobuf::MessageExts
1123
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1124
+ end
1125
+
1126
+ # ValueType describes the semantic type of the value that the flag accepts.
1127
+ # Regardless of the ValueType, the Instance.database_flags field accepts the
1128
+ # stringified version of the value, i.e. "20" or "3.14".
1129
+ module ValueType
1130
+ # This is an unknown flag type.
1131
+ VALUE_TYPE_UNSPECIFIED = 0
1132
+
1133
+ # String type flag.
1134
+ STRING = 1
1135
+
1136
+ # Integer type flag.
1137
+ INTEGER = 2
1138
+
1139
+ # Float type flag.
1140
+ FLOAT = 3
1141
+
1142
+ # Denotes that the flag does not accept any values.
1143
+ NONE = 4
1144
+ end
1145
+ end
1146
+
1147
+ # Message describing User object.
1148
+ # @!attribute [r] name
1149
+ # @return [::String]
1150
+ # Output only. Name of the resource in the form of
1151
+ # projects/\\{project}/locations/\\{location}/cluster/\\{cluster}/users/\\{user}.
1152
+ # @!attribute [rw] password
1153
+ # @return [::String]
1154
+ # Input only. Password for the user.
1155
+ # @!attribute [rw] database_roles
1156
+ # @return [::Array<::String>]
1157
+ # Optional. List of database roles this user has.
1158
+ # The database role strings are subject to the PostgreSQL naming conventions.
1159
+ # @!attribute [rw] user_type
1160
+ # @return [::Google::Cloud::AlloyDB::V1alpha::User::UserType]
1161
+ # Optional. Type of this user.
1162
+ class User
1163
+ include ::Google::Protobuf::MessageExts
1164
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1165
+
1166
+ # Enum that details the user type.
1167
+ module UserType
1168
+ # Unspecified user type.
1169
+ USER_TYPE_UNSPECIFIED = 0
1170
+
1171
+ # The default user type that authenticates via password-based
1172
+ # authentication.
1173
+ ALLOYDB_BUILT_IN = 1
1174
+
1175
+ # Database user that can authenticate via IAM-Based authentication.
1176
+ ALLOYDB_IAM_USER = 2
1177
+ end
1178
+ end
1179
+
1180
+ # View on Instance. Pass this enum to rpcs that returns an Instance message to
1181
+ # control which subsets of fields to get.
1182
+ module InstanceView
1183
+ # INSTANCE_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.
1184
+ INSTANCE_VIEW_UNSPECIFIED = 0
1185
+
1186
+ # BASIC server responses for a primary or read instance include all the
1187
+ # relevant instance details, excluding the details of each node in the
1188
+ # instance. The default value.
1189
+ INSTANCE_VIEW_BASIC = 1
1190
+
1191
+ # FULL response is equivalent to BASIC for primary instance (for now).
1192
+ # For read pool instance, this includes details of each node in the pool.
1193
+ INSTANCE_VIEW_FULL = 2
1194
+ end
1195
+
1196
+ # View on Cluster. Pass this enum to rpcs that returns a cluster message to
1197
+ # control which subsets of fields to get.
1198
+ module ClusterView
1199
+ # CLUSTER_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.
1200
+ CLUSTER_VIEW_UNSPECIFIED = 0
1201
+
1202
+ # BASIC server responses include all the relevant cluster details, excluding
1203
+ # Cluster.ContinuousBackupInfo.EarliestRestorableTime and other view-specific
1204
+ # fields. The default value.
1205
+ CLUSTER_VIEW_BASIC = 1
1206
+
1207
+ # CONTINUOUS_BACKUP response returns all the fields from BASIC plus
1208
+ # the earliest restorable time if continuous backups are enabled.
1209
+ # May increase latency.
1210
+ CLUSTER_VIEW_CONTINUOUS_BACKUP = 2
1211
+ end
1212
+
1213
+ # The supported database engine versions.
1214
+ module DatabaseVersion
1215
+ # This is an unknown database version.
1216
+ DATABASE_VERSION_UNSPECIFIED = 0
1217
+
1218
+ # DEPRECATED - The database version is Postgres 13.
1219
+ POSTGRES_13 = 1
1220
+
1221
+ # The database version is Postgres 14.
1222
+ POSTGRES_14 = 2
1223
+ end
1224
+ end
1225
+ end
1226
+ end
1227
+ end