google-apis-alloydb_v1beta 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2801 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module AlloydbV1beta
24
+
25
+ # Message describing the user-specified automated backup policy. All fields in
26
+ # the automated backup policy are optional. Defaults for each field are provided
27
+ # if they are not set.
28
+ class AutomatedBackupPolicy
29
+ include Google::Apis::Core::Hashable
30
+
31
+ # The length of the time window during which a backup can be taken. If a backup
32
+ # does not succeed within this time window, it will be canceled and considered
33
+ # failed. The backup window must be at least 5 minutes long. There is no upper
34
+ # bound on the window. If not set, it defaults to 1 hour.
35
+ # Corresponds to the JSON property `backupWindow`
36
+ # @return [String]
37
+ attr_accessor :backup_window
38
+
39
+ # Whether automated automated backups are enabled. If not set, defaults to true.
40
+ # Corresponds to the JSON property `enabled`
41
+ # @return [Boolean]
42
+ attr_accessor :enabled
43
+ alias_method :enabled?, :enabled
44
+
45
+ # EncryptionConfig describes the encryption config of a cluster or a backup that
46
+ # is encrypted with a CMEK (customer-managed encryption key).
47
+ # Corresponds to the JSON property `encryptionConfig`
48
+ # @return [Google::Apis::AlloydbV1beta::EncryptionConfig]
49
+ attr_accessor :encryption_config
50
+
51
+ # Labels to apply to backups created using this configuration.
52
+ # Corresponds to the JSON property `labels`
53
+ # @return [Hash<String,String>]
54
+ attr_accessor :labels
55
+
56
+ # The location where the backup will be stored. Currently, the only supported
57
+ # option is to store the backup in the same region as the cluster. If empty,
58
+ # defaults to the region of the cluster.
59
+ # Corresponds to the JSON property `location`
60
+ # @return [String]
61
+ attr_accessor :location
62
+
63
+ # A quantity based policy specifies that a certain number of the most recent
64
+ # successful backups should be retained.
65
+ # Corresponds to the JSON property `quantityBasedRetention`
66
+ # @return [Google::Apis::AlloydbV1beta::QuantityBasedRetention]
67
+ attr_accessor :quantity_based_retention
68
+
69
+ # A time based retention policy specifies that all backups within a certain time
70
+ # period should be retained.
71
+ # Corresponds to the JSON property `timeBasedRetention`
72
+ # @return [Google::Apis::AlloydbV1beta::TimeBasedRetention]
73
+ attr_accessor :time_based_retention
74
+
75
+ # A weekly schedule starts a backup at prescribed start times within a day, for
76
+ # the specified days of the week. The weekly schedule message is flexible and
77
+ # can be used to create many types of schedules. For example, to have a daily
78
+ # backup that starts at 22:00, configure the `start_times` field to have one
79
+ # element "22:00" and the `days_of_week` field to have all seven days of the
80
+ # week.
81
+ # Corresponds to the JSON property `weeklySchedule`
82
+ # @return [Google::Apis::AlloydbV1beta::WeeklySchedule]
83
+ attr_accessor :weekly_schedule
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @backup_window = args[:backup_window] if args.key?(:backup_window)
92
+ @enabled = args[:enabled] if args.key?(:enabled)
93
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
94
+ @labels = args[:labels] if args.key?(:labels)
95
+ @location = args[:location] if args.key?(:location)
96
+ @quantity_based_retention = args[:quantity_based_retention] if args.key?(:quantity_based_retention)
97
+ @time_based_retention = args[:time_based_retention] if args.key?(:time_based_retention)
98
+ @weekly_schedule = args[:weekly_schedule] if args.key?(:weekly_schedule)
99
+ end
100
+ end
101
+
102
+ # Message describing Backup object
103
+ class Backup
104
+ include Google::Apis::Core::Hashable
105
+
106
+ # Annotations to allow client tools to store small amount of arbitrary data.
107
+ # This is distinct from labels. https://google.aip.dev/128
108
+ # Corresponds to the JSON property `annotations`
109
+ # @return [Hash<String,String>]
110
+ attr_accessor :annotations
111
+
112
+ # Required. The full resource name of the backup source cluster (e.g., projects/`
113
+ # project`/locations/`region`/clusters/`cluster_id`).
114
+ # Corresponds to the JSON property `clusterName`
115
+ # @return [String]
116
+ attr_accessor :cluster_name
117
+
118
+ # Output only. The system-generated UID of the cluster which was used to create
119
+ # this resource.
120
+ # Corresponds to the JSON property `clusterUid`
121
+ # @return [String]
122
+ attr_accessor :cluster_uid
123
+
124
+ # Output only. Create time stamp
125
+ # Corresponds to the JSON property `createTime`
126
+ # @return [String]
127
+ attr_accessor :create_time
128
+
129
+ # Output only. The database engine major version of the cluster this backup was
130
+ # created from. Any restored cluster created from this backup will have the same
131
+ # database version.
132
+ # Corresponds to the JSON property `databaseVersion`
133
+ # @return [String]
134
+ attr_accessor :database_version
135
+
136
+ # Output only. Delete time stamp
137
+ # Corresponds to the JSON property `deleteTime`
138
+ # @return [String]
139
+ attr_accessor :delete_time
140
+
141
+ # User-provided description of the backup.
142
+ # Corresponds to the JSON property `description`
143
+ # @return [String]
144
+ attr_accessor :description
145
+
146
+ # User-settable and human-readable display name for the Backup.
147
+ # Corresponds to the JSON property `displayName`
148
+ # @return [String]
149
+ attr_accessor :display_name
150
+
151
+ # EncryptionConfig describes the encryption config of a cluster or a backup that
152
+ # is encrypted with a CMEK (customer-managed encryption key).
153
+ # Corresponds to the JSON property `encryptionConfig`
154
+ # @return [Google::Apis::AlloydbV1beta::EncryptionConfig]
155
+ attr_accessor :encryption_config
156
+
157
+ # EncryptionInfo describes the encryption information of a cluster or a backup.
158
+ # Corresponds to the JSON property `encryptionInfo`
159
+ # @return [Google::Apis::AlloydbV1beta::EncryptionInfo]
160
+ attr_accessor :encryption_info
161
+
162
+ # For Resource freshness validation (https://google.aip.dev/154)
163
+ # Corresponds to the JSON property `etag`
164
+ # @return [String]
165
+ attr_accessor :etag
166
+
167
+ # A backup's position in a quantity-based retention queue, of backups with the
168
+ # same source cluster and type, with length, retention, specified by the backup'
169
+ # s retention policy. Once the position is greater than the retention, the
170
+ # backup is eligible to be garbage collected. Example: 5 backups from the same
171
+ # source cluster and type with a quantity-based retention of 3 and denoted by
172
+ # backup_id (position, retention). Safe: backup_5 (1, 3), backup_4, (2, 3),
173
+ # backup_3 (3, 3). Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3)
174
+ # Corresponds to the JSON property `expiryQuantity`
175
+ # @return [Google::Apis::AlloydbV1beta::QuantityBasedExpiry]
176
+ attr_accessor :expiry_quantity
177
+
178
+ # Output only. The time at which after the backup is eligible to be garbage
179
+ # collected. It is the duration specified by the backup's retention policy,
180
+ # added to the backup's create_time.
181
+ # Corresponds to the JSON property `expiryTime`
182
+ # @return [String]
183
+ attr_accessor :expiry_time
184
+
185
+ # Labels as key value pairs
186
+ # Corresponds to the JSON property `labels`
187
+ # @return [Hash<String,String>]
188
+ attr_accessor :labels
189
+
190
+ # Output only. The name of the backup resource with the format: * projects/`
191
+ # project`/locations/`region`/backups/`backup_id` where the cluster and backup
192
+ # ID segments should satisfy the regex expression `[a-z]([a-z0-9-]`0,61`[a-z0-9])
193
+ # ?`, e.g. 1-63 characters of lowercase letters, numbers, and dashes, starting
194
+ # with a letter, and ending with a letter or number. For more details see https:/
195
+ # /google.aip.dev/122. The prefix of the backup resource name is the name of the
196
+ # parent resource: * projects/`project`/locations/`region`
197
+ # Corresponds to the JSON property `name`
198
+ # @return [String]
199
+ attr_accessor :name
200
+
201
+ # Output only. Reconciling (https://google.aip.dev/128#reconciliation), if true,
202
+ # indicates that the service is actively updating the resource. This can happen
203
+ # due to user-triggered updates or system actions like failover or maintenance.
204
+ # Corresponds to the JSON property `reconciling`
205
+ # @return [Boolean]
206
+ attr_accessor :reconciling
207
+ alias_method :reconciling?, :reconciling
208
+
209
+ # Output only. The size of the backup in bytes.
210
+ # Corresponds to the JSON property `sizeBytes`
211
+ # @return [Fixnum]
212
+ attr_accessor :size_bytes
213
+
214
+ # Output only. The current state of the backup.
215
+ # Corresponds to the JSON property `state`
216
+ # @return [String]
217
+ attr_accessor :state
218
+
219
+ # The backup type, which suggests the trigger for the backup.
220
+ # Corresponds to the JSON property `type`
221
+ # @return [String]
222
+ attr_accessor :type
223
+
224
+ # Output only. The system-generated UID of the resource. The UID is assigned
225
+ # when the resource is created, and it is retained until it is deleted.
226
+ # Corresponds to the JSON property `uid`
227
+ # @return [String]
228
+ attr_accessor :uid
229
+
230
+ # Output only. Update time stamp
231
+ # Corresponds to the JSON property `updateTime`
232
+ # @return [String]
233
+ attr_accessor :update_time
234
+
235
+ def initialize(**args)
236
+ update!(**args)
237
+ end
238
+
239
+ # Update properties of this object
240
+ def update!(**args)
241
+ @annotations = args[:annotations] if args.key?(:annotations)
242
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
243
+ @cluster_uid = args[:cluster_uid] if args.key?(:cluster_uid)
244
+ @create_time = args[:create_time] if args.key?(:create_time)
245
+ @database_version = args[:database_version] if args.key?(:database_version)
246
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
247
+ @description = args[:description] if args.key?(:description)
248
+ @display_name = args[:display_name] if args.key?(:display_name)
249
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
250
+ @encryption_info = args[:encryption_info] if args.key?(:encryption_info)
251
+ @etag = args[:etag] if args.key?(:etag)
252
+ @expiry_quantity = args[:expiry_quantity] if args.key?(:expiry_quantity)
253
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
254
+ @labels = args[:labels] if args.key?(:labels)
255
+ @name = args[:name] if args.key?(:name)
256
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
257
+ @size_bytes = args[:size_bytes] if args.key?(:size_bytes)
258
+ @state = args[:state] if args.key?(:state)
259
+ @type = args[:type] if args.key?(:type)
260
+ @uid = args[:uid] if args.key?(:uid)
261
+ @update_time = args[:update_time] if args.key?(:update_time)
262
+ end
263
+ end
264
+
265
+ # Message describing a BackupSource.
266
+ class BackupSource
267
+ include Google::Apis::Core::Hashable
268
+
269
+ # Required. The name of the backup resource with the format: * projects/`project`
270
+ # /locations/`region`/backups/`backup_id`
271
+ # Corresponds to the JSON property `backupName`
272
+ # @return [String]
273
+ attr_accessor :backup_name
274
+
275
+ # Output only. The system-generated UID of the backup which was used to create
276
+ # this resource. The UID is generated when the backup is created, and it is
277
+ # retained until the backup is deleted.
278
+ # Corresponds to the JSON property `backupUid`
279
+ # @return [String]
280
+ attr_accessor :backup_uid
281
+
282
+ def initialize(**args)
283
+ update!(**args)
284
+ end
285
+
286
+ # Update properties of this object
287
+ def update!(**args)
288
+ @backup_name = args[:backup_name] if args.key?(:backup_name)
289
+ @backup_uid = args[:backup_uid] if args.key?(:backup_uid)
290
+ end
291
+ end
292
+
293
+ # Client connection configuration
294
+ class ClientConnectionConfig
295
+ include Google::Apis::Core::Hashable
296
+
297
+ # Optional. Configuration to enforce connectors only (ex: AuthProxy) connections
298
+ # to the database.
299
+ # Corresponds to the JSON property `requireConnectors`
300
+ # @return [Boolean]
301
+ attr_accessor :require_connectors
302
+ alias_method :require_connectors?, :require_connectors
303
+
304
+ # SSL configuration.
305
+ # Corresponds to the JSON property `sslConfig`
306
+ # @return [Google::Apis::AlloydbV1beta::SslConfig]
307
+ attr_accessor :ssl_config
308
+
309
+ def initialize(**args)
310
+ update!(**args)
311
+ end
312
+
313
+ # Update properties of this object
314
+ def update!(**args)
315
+ @require_connectors = args[:require_connectors] if args.key?(:require_connectors)
316
+ @ssl_config = args[:ssl_config] if args.key?(:ssl_config)
317
+ end
318
+ end
319
+
320
+ # Operation metadata returned by the CLH during resource state reconciliation.
321
+ class CloudControl2SharedOperationsReconciliationOperationMetadata
322
+ include Google::Apis::Core::Hashable
323
+
324
+ # DEPRECATED. Use exclusive_action instead.
325
+ # Corresponds to the JSON property `deleteResource`
326
+ # @return [Boolean]
327
+ attr_accessor :delete_resource
328
+ alias_method :delete_resource?, :delete_resource
329
+
330
+ # Excluisive action returned by the CLH.
331
+ # Corresponds to the JSON property `exclusiveAction`
332
+ # @return [String]
333
+ attr_accessor :exclusive_action
334
+
335
+ def initialize(**args)
336
+ update!(**args)
337
+ end
338
+
339
+ # Update properties of this object
340
+ def update!(**args)
341
+ @delete_resource = args[:delete_resource] if args.key?(:delete_resource)
342
+ @exclusive_action = args[:exclusive_action] if args.key?(:exclusive_action)
343
+ end
344
+ end
345
+
346
+ # A cluster is a collection of regional AlloyDB resources. It can include a
347
+ # primary instance and one or more read pool instances. All cluster resources
348
+ # share a storage layer, which scales as needed.
349
+ class Cluster
350
+ include Google::Apis::Core::Hashable
351
+
352
+ # Annotations to allow client tools to store small amount of arbitrary data.
353
+ # This is distinct from labels. https://google.aip.dev/128
354
+ # Corresponds to the JSON property `annotations`
355
+ # @return [Hash<String,String>]
356
+ attr_accessor :annotations
357
+
358
+ # Message describing the user-specified automated backup policy. All fields in
359
+ # the automated backup policy are optional. Defaults for each field are provided
360
+ # if they are not set.
361
+ # Corresponds to the JSON property `automatedBackupPolicy`
362
+ # @return [Google::Apis::AlloydbV1beta::AutomatedBackupPolicy]
363
+ attr_accessor :automated_backup_policy
364
+
365
+ # Message describing a BackupSource.
366
+ # Corresponds to the JSON property `backupSource`
367
+ # @return [Google::Apis::AlloydbV1beta::BackupSource]
368
+ attr_accessor :backup_source
369
+
370
+ # Output only. The type of the cluster. This is an output-only field and it's
371
+ # populated at the Cluster creation time or the Cluster promotion time. The
372
+ # cluster type is determined by which RPC was used to create the cluster (i.e. `
373
+ # CreateCluster` vs. `CreateSecondaryCluster`
374
+ # Corresponds to the JSON property `clusterType`
375
+ # @return [String]
376
+ attr_accessor :cluster_type
377
+
378
+ # ContinuousBackupConfig describes the continuous backups recovery
379
+ # configurations of a cluster.
380
+ # Corresponds to the JSON property `continuousBackupConfig`
381
+ # @return [Google::Apis::AlloydbV1beta::ContinuousBackupConfig]
382
+ attr_accessor :continuous_backup_config
383
+
384
+ # ContinuousBackupInfo describes the continuous backup properties of a cluster.
385
+ # Corresponds to the JSON property `continuousBackupInfo`
386
+ # @return [Google::Apis::AlloydbV1beta::ContinuousBackupInfo]
387
+ attr_accessor :continuous_backup_info
388
+
389
+ # Output only. Create time stamp
390
+ # Corresponds to the JSON property `createTime`
391
+ # @return [String]
392
+ attr_accessor :create_time
393
+
394
+ # Optional. The database engine major version. This is an optional field and it
395
+ # is populated at the Cluster creation time. If a database version is not
396
+ # supplied at cluster creation time, then a default database version will be
397
+ # used.
398
+ # Corresponds to the JSON property `databaseVersion`
399
+ # @return [String]
400
+ attr_accessor :database_version
401
+
402
+ # Output only. Delete time stamp
403
+ # Corresponds to the JSON property `deleteTime`
404
+ # @return [String]
405
+ attr_accessor :delete_time
406
+
407
+ # User-settable and human-readable display name for the Cluster.
408
+ # Corresponds to the JSON property `displayName`
409
+ # @return [String]
410
+ attr_accessor :display_name
411
+
412
+ # EncryptionConfig describes the encryption config of a cluster or a backup that
413
+ # is encrypted with a CMEK (customer-managed encryption key).
414
+ # Corresponds to the JSON property `encryptionConfig`
415
+ # @return [Google::Apis::AlloydbV1beta::EncryptionConfig]
416
+ attr_accessor :encryption_config
417
+
418
+ # EncryptionInfo describes the encryption information of a cluster or a backup.
419
+ # Corresponds to the JSON property `encryptionInfo`
420
+ # @return [Google::Apis::AlloydbV1beta::EncryptionInfo]
421
+ attr_accessor :encryption_info
422
+
423
+ # For Resource freshness validation (https://google.aip.dev/154)
424
+ # Corresponds to the JSON property `etag`
425
+ # @return [String]
426
+ attr_accessor :etag
427
+
428
+ # The username/password for a database user. Used for specifying initial users
429
+ # at cluster creation time.
430
+ # Corresponds to the JSON property `initialUser`
431
+ # @return [Google::Apis::AlloydbV1beta::UserPassword]
432
+ attr_accessor :initial_user
433
+
434
+ # Labels as key value pairs
435
+ # Corresponds to the JSON property `labels`
436
+ # @return [Hash<String,String>]
437
+ attr_accessor :labels
438
+
439
+ # Subset of the source instance configuration that is available when reading the
440
+ # cluster resource.
441
+ # Corresponds to the JSON property `migrationSource`
442
+ # @return [Google::Apis::AlloydbV1beta::MigrationSource]
443
+ attr_accessor :migration_source
444
+
445
+ # Output only. The name of the cluster resource with the format: * projects/`
446
+ # project`/locations/`region`/clusters/`cluster_id` where the cluster ID segment
447
+ # should satisfy the regex expression `[a-z0-9-]+`. For more details see https://
448
+ # google.aip.dev/122. The prefix of the cluster resource name is the name of the
449
+ # parent resource: * projects/`project`/locations/`region`
450
+ # Corresponds to the JSON property `name`
451
+ # @return [String]
452
+ attr_accessor :name
453
+
454
+ # Required. The resource link for the VPC network in which cluster resources are
455
+ # created and from which they are accessible via Private IP. The network must
456
+ # belong to the same project as the cluster. It is specified in the form: "
457
+ # projects/`project`/global/networks/`network_id`". This is required to create a
458
+ # cluster. Deprecated, use network_config.network instead.
459
+ # Corresponds to the JSON property `network`
460
+ # @return [String]
461
+ attr_accessor :network
462
+
463
+ # Metadata related to network configuration.
464
+ # Corresponds to the JSON property `networkConfig`
465
+ # @return [Google::Apis::AlloydbV1beta::NetworkConfig]
466
+ attr_accessor :network_config
467
+
468
+ # Configuration for the primary cluster. It has the list of clusters that are
469
+ # replicating from this cluster. This should be set if and only if the cluster
470
+ # is of type PRIMARY.
471
+ # Corresponds to the JSON property `primaryConfig`
472
+ # @return [Google::Apis::AlloydbV1beta::PrimaryConfig]
473
+ attr_accessor :primary_config
474
+
475
+ # Output only. Reconciling (https://google.aip.dev/128#reconciliation). Set to
476
+ # true if the current state of Cluster does not match the user's intended state,
477
+ # and the service is actively updating the resource to reconcile them. This can
478
+ # happen due to user-triggered updates or system actions like failover or
479
+ # maintenance.
480
+ # Corresponds to the JSON property `reconciling`
481
+ # @return [Boolean]
482
+ attr_accessor :reconciling
483
+ alias_method :reconciling?, :reconciling
484
+
485
+ # Configuration information for the secondary cluster. This should be set if and
486
+ # only if the cluster is of type SECONDARY.
487
+ # Corresponds to the JSON property `secondaryConfig`
488
+ # @return [Google::Apis::AlloydbV1beta::SecondaryConfig]
489
+ attr_accessor :secondary_config
490
+
491
+ # SSL configuration.
492
+ # Corresponds to the JSON property `sslConfig`
493
+ # @return [Google::Apis::AlloydbV1beta::SslConfig]
494
+ attr_accessor :ssl_config
495
+
496
+ # Output only. The current serving state of the cluster.
497
+ # Corresponds to the JSON property `state`
498
+ # @return [String]
499
+ attr_accessor :state
500
+
501
+ # Output only. The system-generated UID of the resource. The UID is assigned
502
+ # when the resource is created, and it is retained until it is deleted.
503
+ # Corresponds to the JSON property `uid`
504
+ # @return [String]
505
+ attr_accessor :uid
506
+
507
+ # Output only. Update time stamp
508
+ # Corresponds to the JSON property `updateTime`
509
+ # @return [String]
510
+ attr_accessor :update_time
511
+
512
+ def initialize(**args)
513
+ update!(**args)
514
+ end
515
+
516
+ # Update properties of this object
517
+ def update!(**args)
518
+ @annotations = args[:annotations] if args.key?(:annotations)
519
+ @automated_backup_policy = args[:automated_backup_policy] if args.key?(:automated_backup_policy)
520
+ @backup_source = args[:backup_source] if args.key?(:backup_source)
521
+ @cluster_type = args[:cluster_type] if args.key?(:cluster_type)
522
+ @continuous_backup_config = args[:continuous_backup_config] if args.key?(:continuous_backup_config)
523
+ @continuous_backup_info = args[:continuous_backup_info] if args.key?(:continuous_backup_info)
524
+ @create_time = args[:create_time] if args.key?(:create_time)
525
+ @database_version = args[:database_version] if args.key?(:database_version)
526
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
527
+ @display_name = args[:display_name] if args.key?(:display_name)
528
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
529
+ @encryption_info = args[:encryption_info] if args.key?(:encryption_info)
530
+ @etag = args[:etag] if args.key?(:etag)
531
+ @initial_user = args[:initial_user] if args.key?(:initial_user)
532
+ @labels = args[:labels] if args.key?(:labels)
533
+ @migration_source = args[:migration_source] if args.key?(:migration_source)
534
+ @name = args[:name] if args.key?(:name)
535
+ @network = args[:network] if args.key?(:network)
536
+ @network_config = args[:network_config] if args.key?(:network_config)
537
+ @primary_config = args[:primary_config] if args.key?(:primary_config)
538
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
539
+ @secondary_config = args[:secondary_config] if args.key?(:secondary_config)
540
+ @ssl_config = args[:ssl_config] if args.key?(:ssl_config)
541
+ @state = args[:state] if args.key?(:state)
542
+ @uid = args[:uid] if args.key?(:uid)
543
+ @update_time = args[:update_time] if args.key?(:update_time)
544
+ end
545
+ end
546
+
547
+ # ConnectionInfo singleton resource. https://google.aip.dev/156
548
+ class ConnectionInfo
549
+ include Google::Apis::Core::Hashable
550
+
551
+ # Output only. The unique ID of the Instance.
552
+ # Corresponds to the JSON property `instanceUid`
553
+ # @return [String]
554
+ attr_accessor :instance_uid
555
+
556
+ # Output only. The private network IP address for the Instance. This is the
557
+ # default IP for the instance and is always created (even if enable_public_ip is
558
+ # set). This is the connection endpoint for an end-user application.
559
+ # Corresponds to the JSON property `ipAddress`
560
+ # @return [String]
561
+ attr_accessor :ip_address
562
+
563
+ # The name of the ConnectionInfo singleton resource, e.g.: projects/`project`/
564
+ # locations/`location`/clusters/*/instances/*/connectionInfo This field
565
+ # currently has no semantic meaning.
566
+ # Corresponds to the JSON property `name`
567
+ # @return [String]
568
+ attr_accessor :name
569
+
570
+ # Output only. The pem-encoded chain that may be used to verify the X.509
571
+ # certificate. Expected to be in issuer-to-root order according to RFC 5246.
572
+ # Corresponds to the JSON property `pemCertificateChain`
573
+ # @return [Array<String>]
574
+ attr_accessor :pem_certificate_chain
575
+
576
+ def initialize(**args)
577
+ update!(**args)
578
+ end
579
+
580
+ # Update properties of this object
581
+ def update!(**args)
582
+ @instance_uid = args[:instance_uid] if args.key?(:instance_uid)
583
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
584
+ @name = args[:name] if args.key?(:name)
585
+ @pem_certificate_chain = args[:pem_certificate_chain] if args.key?(:pem_certificate_chain)
586
+ end
587
+ end
588
+
589
+ # ContinuousBackupConfig describes the continuous backups recovery
590
+ # configurations of a cluster.
591
+ class ContinuousBackupConfig
592
+ include Google::Apis::Core::Hashable
593
+
594
+ # Whether ContinuousBackup is enabled.
595
+ # Corresponds to the JSON property `enabled`
596
+ # @return [Boolean]
597
+ attr_accessor :enabled
598
+ alias_method :enabled?, :enabled
599
+
600
+ # EncryptionConfig describes the encryption config of a cluster or a backup that
601
+ # is encrypted with a CMEK (customer-managed encryption key).
602
+ # Corresponds to the JSON property `encryptionConfig`
603
+ # @return [Google::Apis::AlloydbV1beta::EncryptionConfig]
604
+ attr_accessor :encryption_config
605
+
606
+ # The number of days that are eligible to restore from using PITR. To support
607
+ # the entire recovery window, backups and logs are retained for one day more
608
+ # than the recovery window. If not set, defaults to 14 days.
609
+ # Corresponds to the JSON property `recoveryWindowDays`
610
+ # @return [Fixnum]
611
+ attr_accessor :recovery_window_days
612
+
613
+ def initialize(**args)
614
+ update!(**args)
615
+ end
616
+
617
+ # Update properties of this object
618
+ def update!(**args)
619
+ @enabled = args[:enabled] if args.key?(:enabled)
620
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
621
+ @recovery_window_days = args[:recovery_window_days] if args.key?(:recovery_window_days)
622
+ end
623
+ end
624
+
625
+ # ContinuousBackupInfo describes the continuous backup properties of a cluster.
626
+ class ContinuousBackupInfo
627
+ include Google::Apis::Core::Hashable
628
+
629
+ # Output only. The earliest restorable time that can be restored to. Output only
630
+ # field.
631
+ # Corresponds to the JSON property `earliestRestorableTime`
632
+ # @return [String]
633
+ attr_accessor :earliest_restorable_time
634
+
635
+ # Output only. When ContinuousBackup was most recently enabled. Set to null if
636
+ # ContinuousBackup is not enabled.
637
+ # Corresponds to the JSON property `enabledTime`
638
+ # @return [String]
639
+ attr_accessor :enabled_time
640
+
641
+ # EncryptionInfo describes the encryption information of a cluster or a backup.
642
+ # Corresponds to the JSON property `encryptionInfo`
643
+ # @return [Google::Apis::AlloydbV1beta::EncryptionInfo]
644
+ attr_accessor :encryption_info
645
+
646
+ # Output only. Days of the week on which a continuous backup is taken. Output
647
+ # only field. Ignored if passed into the request.
648
+ # Corresponds to the JSON property `schedule`
649
+ # @return [Array<String>]
650
+ attr_accessor :schedule
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @earliest_restorable_time = args[:earliest_restorable_time] if args.key?(:earliest_restorable_time)
659
+ @enabled_time = args[:enabled_time] if args.key?(:enabled_time)
660
+ @encryption_info = args[:encryption_info] if args.key?(:encryption_info)
661
+ @schedule = args[:schedule] if args.key?(:schedule)
662
+ end
663
+ end
664
+
665
+ # Message describing a ContinuousBackupSource.
666
+ class ContinuousBackupSource
667
+ include Google::Apis::Core::Hashable
668
+
669
+ # Required. The source cluster from which to restore. This cluster must have
670
+ # continuous backup enabled for this operation to succeed. For the required
671
+ # format, see the comment on the Cluster.name field.
672
+ # Corresponds to the JSON property `cluster`
673
+ # @return [String]
674
+ attr_accessor :cluster
675
+
676
+ # Required. The point in time to restore to.
677
+ # Corresponds to the JSON property `pointInTime`
678
+ # @return [String]
679
+ attr_accessor :point_in_time
680
+
681
+ def initialize(**args)
682
+ update!(**args)
683
+ end
684
+
685
+ # Update properties of this object
686
+ def update!(**args)
687
+ @cluster = args[:cluster] if args.key?(:cluster)
688
+ @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
689
+ end
690
+ end
691
+
692
+ # A generic empty message that you can re-use to avoid defining duplicated empty
693
+ # messages in your APIs. A typical example is to use it as the request or the
694
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
695
+ # protobuf.Empty) returns (google.protobuf.Empty); `
696
+ class Empty
697
+ include Google::Apis::Core::Hashable
698
+
699
+ def initialize(**args)
700
+ update!(**args)
701
+ end
702
+
703
+ # Update properties of this object
704
+ def update!(**args)
705
+ end
706
+ end
707
+
708
+ # EncryptionConfig describes the encryption config of a cluster or a backup that
709
+ # is encrypted with a CMEK (customer-managed encryption key).
710
+ class EncryptionConfig
711
+ include Google::Apis::Core::Hashable
712
+
713
+ # The fully-qualified resource name of the KMS key. Each Cloud KMS key is
714
+ # regionalized and has the following format: projects/[PROJECT]/locations/[
715
+ # REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]
716
+ # Corresponds to the JSON property `kmsKeyName`
717
+ # @return [String]
718
+ attr_accessor :kms_key_name
719
+
720
+ def initialize(**args)
721
+ update!(**args)
722
+ end
723
+
724
+ # Update properties of this object
725
+ def update!(**args)
726
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
727
+ end
728
+ end
729
+
730
+ # EncryptionInfo describes the encryption information of a cluster or a backup.
731
+ class EncryptionInfo
732
+ include Google::Apis::Core::Hashable
733
+
734
+ # Output only. Type of encryption.
735
+ # Corresponds to the JSON property `encryptionType`
736
+ # @return [String]
737
+ attr_accessor :encryption_type
738
+
739
+ # Output only. Cloud KMS key versions that are being used to protect the
740
+ # database or the backup.
741
+ # Corresponds to the JSON property `kmsKeyVersions`
742
+ # @return [Array<String>]
743
+ attr_accessor :kms_key_versions
744
+
745
+ def initialize(**args)
746
+ update!(**args)
747
+ end
748
+
749
+ # Update properties of this object
750
+ def update!(**args)
751
+ @encryption_type = args[:encryption_type] if args.key?(:encryption_type)
752
+ @kms_key_versions = args[:kms_key_versions] if args.key?(:kms_key_versions)
753
+ end
754
+ end
755
+
756
+ # Message for triggering failover on an Instance
757
+ class FailoverInstanceRequest
758
+ include Google::Apis::Core::Hashable
759
+
760
+ # Optional. An optional request ID to identify requests. Specify a unique
761
+ # request ID so that if you must retry your request, the server will know to
762
+ # ignore the request if it has already been completed. The server will guarantee
763
+ # that for at least 60 minutes after the first request. For example, consider a
764
+ # situation where you make an initial request and the request times out. If you
765
+ # make the request again with the same request ID, the server can check if
766
+ # original operation with the same request ID was received, and if so, will
767
+ # ignore the second request. This prevents clients from accidentally creating
768
+ # duplicate commitments. The request ID must be a valid UUID with the exception
769
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
770
+ # Corresponds to the JSON property `requestId`
771
+ # @return [String]
772
+ attr_accessor :request_id
773
+
774
+ # Optional. If set, performs request validation (e.g. permission checks and any
775
+ # other type of validation), but do not actually execute the failover.
776
+ # Corresponds to the JSON property `validateOnly`
777
+ # @return [Boolean]
778
+ attr_accessor :validate_only
779
+ alias_method :validate_only?, :validate_only
780
+
781
+ def initialize(**args)
782
+ update!(**args)
783
+ end
784
+
785
+ # Update properties of this object
786
+ def update!(**args)
787
+ @request_id = args[:request_id] if args.key?(:request_id)
788
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
789
+ end
790
+ end
791
+
792
+ # Message for requests to generate a client certificate signed by the Cluster CA.
793
+ class GenerateClientCertificateRequest
794
+ include Google::Apis::Core::Hashable
795
+
796
+ # Optional. An optional hint to the endpoint to generate the client certificate
797
+ # with the requested duration. The duration can be from 1 hour to 24 hours. The
798
+ # endpoint may or may not honor the hint. If the hint is left unspecified or is
799
+ # not honored, then the endpoint will pick an appropriate default duration.
800
+ # Corresponds to the JSON property `certDuration`
801
+ # @return [String]
802
+ attr_accessor :cert_duration
803
+
804
+ # Optional. A pem-encoded X.509 certificate signing request (CSR). It is
805
+ # recommended to use public_key instead.
806
+ # Corresponds to the JSON property `pemCsr`
807
+ # @return [String]
808
+ attr_accessor :pem_csr
809
+
810
+ # Optional. The public key from the client.
811
+ # Corresponds to the JSON property `publicKey`
812
+ # @return [String]
813
+ attr_accessor :public_key
814
+
815
+ # Optional. An optional request ID to identify requests. Specify a unique
816
+ # request ID so that if you must retry your request, the server will know to
817
+ # ignore the request if it has already been completed. The server will guarantee
818
+ # that for at least 60 minutes after the first request. For example, consider a
819
+ # situation where you make an initial request and the request times out. If you
820
+ # make the request again with the same request ID, the server can check if
821
+ # original operation with the same request ID was received, and if so, will
822
+ # ignore the second request. This prevents clients from accidentally creating
823
+ # duplicate commitments. The request ID must be a valid UUID with the exception
824
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
825
+ # Corresponds to the JSON property `requestId`
826
+ # @return [String]
827
+ attr_accessor :request_id
828
+
829
+ # Optional. An optional hint to the endpoint to generate a client ceritificate
830
+ # that can be used by AlloyDB connectors to exchange additional metadata with
831
+ # the server after TLS handshake.
832
+ # Corresponds to the JSON property `useMetadataExchange`
833
+ # @return [Boolean]
834
+ attr_accessor :use_metadata_exchange
835
+ alias_method :use_metadata_exchange?, :use_metadata_exchange
836
+
837
+ def initialize(**args)
838
+ update!(**args)
839
+ end
840
+
841
+ # Update properties of this object
842
+ def update!(**args)
843
+ @cert_duration = args[:cert_duration] if args.key?(:cert_duration)
844
+ @pem_csr = args[:pem_csr] if args.key?(:pem_csr)
845
+ @public_key = args[:public_key] if args.key?(:public_key)
846
+ @request_id = args[:request_id] if args.key?(:request_id)
847
+ @use_metadata_exchange = args[:use_metadata_exchange] if args.key?(:use_metadata_exchange)
848
+ end
849
+ end
850
+
851
+ # Message returned by a GenerateClientCertificate operation.
852
+ class GenerateClientCertificateResponse
853
+ include Google::Apis::Core::Hashable
854
+
855
+ # Optional. The pem-encoded cluster ca X.509 certificate.
856
+ # Corresponds to the JSON property `caCert`
857
+ # @return [String]
858
+ attr_accessor :ca_cert
859
+
860
+ # Output only. The pem-encoded, signed X.509 certificate.
861
+ # Corresponds to the JSON property `pemCertificate`
862
+ # @return [String]
863
+ attr_accessor :pem_certificate
864
+
865
+ # Output only. The pem-encoded chain that may be used to verify the X.509
866
+ # certificate. Expected to be in issuer-to-root order according to RFC 5246.
867
+ # Corresponds to the JSON property `pemCertificateChain`
868
+ # @return [Array<String>]
869
+ attr_accessor :pem_certificate_chain
870
+
871
+ def initialize(**args)
872
+ update!(**args)
873
+ end
874
+
875
+ # Update properties of this object
876
+ def update!(**args)
877
+ @ca_cert = args[:ca_cert] if args.key?(:ca_cert)
878
+ @pem_certificate = args[:pem_certificate] if args.key?(:pem_certificate)
879
+ @pem_certificate_chain = args[:pem_certificate_chain] if args.key?(:pem_certificate_chain)
880
+ end
881
+ end
882
+
883
+ # The response message for Locations.ListLocations.
884
+ class GoogleCloudLocationListLocationsResponse
885
+ include Google::Apis::Core::Hashable
886
+
887
+ # A list of locations that matches the specified filter in the request.
888
+ # Corresponds to the JSON property `locations`
889
+ # @return [Array<Google::Apis::AlloydbV1beta::GoogleCloudLocationLocation>]
890
+ attr_accessor :locations
891
+
892
+ # The standard List next-page token.
893
+ # Corresponds to the JSON property `nextPageToken`
894
+ # @return [String]
895
+ attr_accessor :next_page_token
896
+
897
+ def initialize(**args)
898
+ update!(**args)
899
+ end
900
+
901
+ # Update properties of this object
902
+ def update!(**args)
903
+ @locations = args[:locations] if args.key?(:locations)
904
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
905
+ end
906
+ end
907
+
908
+ # A resource that represents a Google Cloud location.
909
+ class GoogleCloudLocationLocation
910
+ include Google::Apis::Core::Hashable
911
+
912
+ # The friendly name for this location, typically a nearby city name. For example,
913
+ # "Tokyo".
914
+ # Corresponds to the JSON property `displayName`
915
+ # @return [String]
916
+ attr_accessor :display_name
917
+
918
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
919
+ # region": "us-east1"`
920
+ # Corresponds to the JSON property `labels`
921
+ # @return [Hash<String,String>]
922
+ attr_accessor :labels
923
+
924
+ # The canonical id for this location. For example: `"us-east1"`.
925
+ # Corresponds to the JSON property `locationId`
926
+ # @return [String]
927
+ attr_accessor :location_id
928
+
929
+ # Service-specific metadata. For example the available capacity at the given
930
+ # location.
931
+ # Corresponds to the JSON property `metadata`
932
+ # @return [Hash<String,Object>]
933
+ attr_accessor :metadata
934
+
935
+ # Resource name for the location, which may vary between implementations. For
936
+ # example: `"projects/example-project/locations/us-east1"`
937
+ # Corresponds to the JSON property `name`
938
+ # @return [String]
939
+ attr_accessor :name
940
+
941
+ def initialize(**args)
942
+ update!(**args)
943
+ end
944
+
945
+ # Update properties of this object
946
+ def update!(**args)
947
+ @display_name = args[:display_name] if args.key?(:display_name)
948
+ @labels = args[:labels] if args.key?(:labels)
949
+ @location_id = args[:location_id] if args.key?(:location_id)
950
+ @metadata = args[:metadata] if args.key?(:metadata)
951
+ @name = args[:name] if args.key?(:name)
952
+ end
953
+ end
954
+
955
+ # Represents a time of day. The date and time zone are either not significant or
956
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
957
+ # types are google.type.Date and `google.protobuf.Timestamp`.
958
+ class GoogleTypeTimeOfDay
959
+ include Google::Apis::Core::Hashable
960
+
961
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
962
+ # allow the value "24:00:00" for scenarios like business closing time.
963
+ # Corresponds to the JSON property `hours`
964
+ # @return [Fixnum]
965
+ attr_accessor :hours
966
+
967
+ # Minutes of hour of day. Must be from 0 to 59.
968
+ # Corresponds to the JSON property `minutes`
969
+ # @return [Fixnum]
970
+ attr_accessor :minutes
971
+
972
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
973
+ # Corresponds to the JSON property `nanos`
974
+ # @return [Fixnum]
975
+ attr_accessor :nanos
976
+
977
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
978
+ # allow the value 60 if it allows leap-seconds.
979
+ # Corresponds to the JSON property `seconds`
980
+ # @return [Fixnum]
981
+ attr_accessor :seconds
982
+
983
+ def initialize(**args)
984
+ update!(**args)
985
+ end
986
+
987
+ # Update properties of this object
988
+ def update!(**args)
989
+ @hours = args[:hours] if args.key?(:hours)
990
+ @minutes = args[:minutes] if args.key?(:minutes)
991
+ @nanos = args[:nanos] if args.key?(:nanos)
992
+ @seconds = args[:seconds] if args.key?(:seconds)
993
+ end
994
+ end
995
+
996
+ # Message for triggering fault injection on an instance
997
+ class InjectFaultRequest
998
+ include Google::Apis::Core::Hashable
999
+
1000
+ # Required. The type of fault to be injected in an instance.
1001
+ # Corresponds to the JSON property `faultType`
1002
+ # @return [String]
1003
+ attr_accessor :fault_type
1004
+
1005
+ # Optional. An optional request ID to identify requests. Specify a unique
1006
+ # request ID so that if you must retry your request, the server will know to
1007
+ # ignore the request if it has already been completed. The server will guarantee
1008
+ # that for at least 60 minutes after the first request. For example, consider a
1009
+ # situation where you make an initial request and the request times out. If you
1010
+ # make the request again with the same request ID, the server can check if
1011
+ # original operation with the same request ID was received, and if so, will
1012
+ # ignore the second request. This prevents clients from accidentally creating
1013
+ # duplicate commitments. The request ID must be a valid UUID with the exception
1014
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1015
+ # Corresponds to the JSON property `requestId`
1016
+ # @return [String]
1017
+ attr_accessor :request_id
1018
+
1019
+ # Optional. If set, performs request validation (e.g. permission checks and any
1020
+ # other type of validation), but do not actually execute the fault injection.
1021
+ # Corresponds to the JSON property `validateOnly`
1022
+ # @return [Boolean]
1023
+ attr_accessor :validate_only
1024
+ alias_method :validate_only?, :validate_only
1025
+
1026
+ def initialize(**args)
1027
+ update!(**args)
1028
+ end
1029
+
1030
+ # Update properties of this object
1031
+ def update!(**args)
1032
+ @fault_type = args[:fault_type] if args.key?(:fault_type)
1033
+ @request_id = args[:request_id] if args.key?(:request_id)
1034
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
1035
+ end
1036
+ end
1037
+
1038
+ # An Instance is a computing unit that an end customer can connect to. It's the
1039
+ # main unit of computing resources in AlloyDB.
1040
+ class Instance
1041
+ include Google::Apis::Core::Hashable
1042
+
1043
+ # Annotations to allow client tools to store small amount of arbitrary data.
1044
+ # This is distinct from labels. https://google.aip.dev/128
1045
+ # Corresponds to the JSON property `annotations`
1046
+ # @return [Hash<String,String>]
1047
+ attr_accessor :annotations
1048
+
1049
+ # Availability type of an Instance. If empty, defaults to REGIONAL for primary
1050
+ # instances. For read pools, availability_type is always UNSPECIFIED. Instances
1051
+ # in the read pools are evenly distributed across available zones within the
1052
+ # region (i.e. read pools with more than one node will have a node in at least
1053
+ # two zones).
1054
+ # Corresponds to the JSON property `availabilityType`
1055
+ # @return [String]
1056
+ attr_accessor :availability_type
1057
+
1058
+ # Client connection configuration
1059
+ # Corresponds to the JSON property `clientConnectionConfig`
1060
+ # @return [Google::Apis::AlloydbV1beta::ClientConnectionConfig]
1061
+ attr_accessor :client_connection_config
1062
+
1063
+ # Output only. Create time stamp
1064
+ # Corresponds to the JSON property `createTime`
1065
+ # @return [String]
1066
+ attr_accessor :create_time
1067
+
1068
+ # Database flags. Set at instance level. * They are copied from primary instance
1069
+ # on read instance creation. * Read instances can set new or override existing
1070
+ # flags that are relevant for reads, e.g. for enabling columnar cache on a read
1071
+ # instance. Flags set on read instance may or may not be present on primary.
1072
+ # This is a list of "key": "value" pairs. "key": The name of the flag. These
1073
+ # flags are passed at instance setup time, so include both server options and
1074
+ # system variables for Postgres. Flags are specified with underscores, not
1075
+ # hyphens. "value": The value of the flag. Booleans are set to **on** for true
1076
+ # and **off** for false. This field must be omitted if the flag doesn't take a
1077
+ # value.
1078
+ # Corresponds to the JSON property `databaseFlags`
1079
+ # @return [Hash<String,String>]
1080
+ attr_accessor :database_flags
1081
+
1082
+ # Output only. Delete time stamp
1083
+ # Corresponds to the JSON property `deleteTime`
1084
+ # @return [String]
1085
+ attr_accessor :delete_time
1086
+
1087
+ # User-settable and human-readable display name for the Instance.
1088
+ # Corresponds to the JSON property `displayName`
1089
+ # @return [String]
1090
+ attr_accessor :display_name
1091
+
1092
+ # For Resource freshness validation (https://google.aip.dev/154)
1093
+ # Corresponds to the JSON property `etag`
1094
+ # @return [String]
1095
+ attr_accessor :etag
1096
+
1097
+ # The Compute Engine zone that the instance should serve from, per https://cloud.
1098
+ # google.com/compute/docs/regions-zones This can ONLY be specified for ZONAL
1099
+ # instances. If present for a REGIONAL instance, an error will be thrown. If
1100
+ # this is absent for a ZONAL instance, instance is created in a random zone with
1101
+ # available capacity.
1102
+ # Corresponds to the JSON property `gceZone`
1103
+ # @return [String]
1104
+ attr_accessor :gce_zone
1105
+
1106
+ # Required. The type of the instance. Specified at creation time.
1107
+ # Corresponds to the JSON property `instanceType`
1108
+ # @return [String]
1109
+ attr_accessor :instance_type
1110
+
1111
+ # Output only. The IP address for the Instance. This is the connection endpoint
1112
+ # for an end-user application.
1113
+ # Corresponds to the JSON property `ipAddress`
1114
+ # @return [String]
1115
+ attr_accessor :ip_address
1116
+
1117
+ # Labels as key value pairs
1118
+ # Corresponds to the JSON property `labels`
1119
+ # @return [Hash<String,String>]
1120
+ attr_accessor :labels
1121
+
1122
+ # MachineConfig describes the configuration of a machine.
1123
+ # Corresponds to the JSON property `machineConfig`
1124
+ # @return [Google::Apis::AlloydbV1beta::MachineConfig]
1125
+ attr_accessor :machine_config
1126
+
1127
+ # Output only. The name of the instance resource with the format: * projects/`
1128
+ # project`/locations/`region`/clusters/`cluster_id`/instances/`instance_id`
1129
+ # where the cluster and instance ID segments should satisfy the regex expression
1130
+ # `[a-z]([a-z0-9-]`0,61`[a-z0-9])?`, e.g. 1-63 characters of lowercase letters,
1131
+ # numbers, and dashes, starting with a letter, and ending with a letter or
1132
+ # number. For more details see https://google.aip.dev/122. The prefix of the
1133
+ # instance resource name is the name of the parent resource: * projects/`project`
1134
+ # /locations/`region`/clusters/`cluster_id`
1135
+ # Corresponds to the JSON property `name`
1136
+ # @return [String]
1137
+ attr_accessor :name
1138
+
1139
+ # Output only. List of available read-only VMs in this instance, including the
1140
+ # standby for a PRIMARY instance.
1141
+ # Corresponds to the JSON property `nodes`
1142
+ # @return [Array<Google::Apis::AlloydbV1beta::Node>]
1143
+ attr_accessor :nodes
1144
+
1145
+ # QueryInsights Instance specific configuration.
1146
+ # Corresponds to the JSON property `queryInsightsConfig`
1147
+ # @return [Google::Apis::AlloydbV1beta::QueryInsightsInstanceConfig]
1148
+ attr_accessor :query_insights_config
1149
+
1150
+ # Configuration for a read pool instance.
1151
+ # Corresponds to the JSON property `readPoolConfig`
1152
+ # @return [Google::Apis::AlloydbV1beta::ReadPoolConfig]
1153
+ attr_accessor :read_pool_config
1154
+
1155
+ # Output only. Reconciling (https://google.aip.dev/128#reconciliation). Set to
1156
+ # true if the current state of Instance does not match the user's intended state,
1157
+ # and the service is actively updating the resource to reconcile them. This can
1158
+ # happen due to user-triggered updates or system actions like failover or
1159
+ # maintenance.
1160
+ # Corresponds to the JSON property `reconciling`
1161
+ # @return [Boolean]
1162
+ attr_accessor :reconciling
1163
+ alias_method :reconciling?, :reconciling
1164
+
1165
+ # Output only. The current serving state of the instance.
1166
+ # Corresponds to the JSON property `state`
1167
+ # @return [String]
1168
+ attr_accessor :state
1169
+
1170
+ # Output only. The system-generated UID of the resource. The UID is assigned
1171
+ # when the resource is created, and it is retained until it is deleted.
1172
+ # Corresponds to the JSON property `uid`
1173
+ # @return [String]
1174
+ attr_accessor :uid
1175
+
1176
+ # Policy to be used while updating the instance.
1177
+ # Corresponds to the JSON property `updatePolicy`
1178
+ # @return [Google::Apis::AlloydbV1beta::UpdatePolicy]
1179
+ attr_accessor :update_policy
1180
+
1181
+ # Output only. Update time stamp
1182
+ # Corresponds to the JSON property `updateTime`
1183
+ # @return [String]
1184
+ attr_accessor :update_time
1185
+
1186
+ # Details of a single node in the instance. Nodes in an AlloyDB instance are
1187
+ # ephemereal, they can change during update, failover, autohealing and resize
1188
+ # operations.
1189
+ # Corresponds to the JSON property `writableNode`
1190
+ # @return [Google::Apis::AlloydbV1beta::Node]
1191
+ attr_accessor :writable_node
1192
+
1193
+ def initialize(**args)
1194
+ update!(**args)
1195
+ end
1196
+
1197
+ # Update properties of this object
1198
+ def update!(**args)
1199
+ @annotations = args[:annotations] if args.key?(:annotations)
1200
+ @availability_type = args[:availability_type] if args.key?(:availability_type)
1201
+ @client_connection_config = args[:client_connection_config] if args.key?(:client_connection_config)
1202
+ @create_time = args[:create_time] if args.key?(:create_time)
1203
+ @database_flags = args[:database_flags] if args.key?(:database_flags)
1204
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
1205
+ @display_name = args[:display_name] if args.key?(:display_name)
1206
+ @etag = args[:etag] if args.key?(:etag)
1207
+ @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
1208
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
1209
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
1210
+ @labels = args[:labels] if args.key?(:labels)
1211
+ @machine_config = args[:machine_config] if args.key?(:machine_config)
1212
+ @name = args[:name] if args.key?(:name)
1213
+ @nodes = args[:nodes] if args.key?(:nodes)
1214
+ @query_insights_config = args[:query_insights_config] if args.key?(:query_insights_config)
1215
+ @read_pool_config = args[:read_pool_config] if args.key?(:read_pool_config)
1216
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
1217
+ @state = args[:state] if args.key?(:state)
1218
+ @uid = args[:uid] if args.key?(:uid)
1219
+ @update_policy = args[:update_policy] if args.key?(:update_policy)
1220
+ @update_time = args[:update_time] if args.key?(:update_time)
1221
+ @writable_node = args[:writable_node] if args.key?(:writable_node)
1222
+ end
1223
+ end
1224
+
1225
+ # Restrictions on INTEGER type values.
1226
+ class IntegerRestrictions
1227
+ include Google::Apis::Core::Hashable
1228
+
1229
+ # The maximum value that can be specified, if applicable.
1230
+ # Corresponds to the JSON property `maxValue`
1231
+ # @return [Fixnum]
1232
+ attr_accessor :max_value
1233
+
1234
+ # The minimum value that can be specified, if applicable.
1235
+ # Corresponds to the JSON property `minValue`
1236
+ # @return [Fixnum]
1237
+ attr_accessor :min_value
1238
+
1239
+ def initialize(**args)
1240
+ update!(**args)
1241
+ end
1242
+
1243
+ # Update properties of this object
1244
+ def update!(**args)
1245
+ @max_value = args[:max_value] if args.key?(:max_value)
1246
+ @min_value = args[:min_value] if args.key?(:min_value)
1247
+ end
1248
+ end
1249
+
1250
+ # Message for response to listing Backups
1251
+ class ListBackupsResponse
1252
+ include Google::Apis::Core::Hashable
1253
+
1254
+ # The list of Backup
1255
+ # Corresponds to the JSON property `backups`
1256
+ # @return [Array<Google::Apis::AlloydbV1beta::Backup>]
1257
+ attr_accessor :backups
1258
+
1259
+ # A token identifying a page of results the server should return.
1260
+ # Corresponds to the JSON property `nextPageToken`
1261
+ # @return [String]
1262
+ attr_accessor :next_page_token
1263
+
1264
+ # Locations that could not be reached.
1265
+ # Corresponds to the JSON property `unreachable`
1266
+ # @return [Array<String>]
1267
+ attr_accessor :unreachable
1268
+
1269
+ def initialize(**args)
1270
+ update!(**args)
1271
+ end
1272
+
1273
+ # Update properties of this object
1274
+ def update!(**args)
1275
+ @backups = args[:backups] if args.key?(:backups)
1276
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1277
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1278
+ end
1279
+ end
1280
+
1281
+ # Message for response to listing Clusters
1282
+ class ListClustersResponse
1283
+ include Google::Apis::Core::Hashable
1284
+
1285
+ # The list of Cluster
1286
+ # Corresponds to the JSON property `clusters`
1287
+ # @return [Array<Google::Apis::AlloydbV1beta::Cluster>]
1288
+ attr_accessor :clusters
1289
+
1290
+ # A token identifying a page of results the server should return.
1291
+ # Corresponds to the JSON property `nextPageToken`
1292
+ # @return [String]
1293
+ attr_accessor :next_page_token
1294
+
1295
+ # Locations that could not be reached.
1296
+ # Corresponds to the JSON property `unreachable`
1297
+ # @return [Array<String>]
1298
+ attr_accessor :unreachable
1299
+
1300
+ def initialize(**args)
1301
+ update!(**args)
1302
+ end
1303
+
1304
+ # Update properties of this object
1305
+ def update!(**args)
1306
+ @clusters = args[:clusters] if args.key?(:clusters)
1307
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1308
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1309
+ end
1310
+ end
1311
+
1312
+ # Message for response to listing Instances
1313
+ class ListInstancesResponse
1314
+ include Google::Apis::Core::Hashable
1315
+
1316
+ # The list of Instance
1317
+ # Corresponds to the JSON property `instances`
1318
+ # @return [Array<Google::Apis::AlloydbV1beta::Instance>]
1319
+ attr_accessor :instances
1320
+
1321
+ # A token identifying a page of results the server should return.
1322
+ # Corresponds to the JSON property `nextPageToken`
1323
+ # @return [String]
1324
+ attr_accessor :next_page_token
1325
+
1326
+ # Locations that could not be reached.
1327
+ # Corresponds to the JSON property `unreachable`
1328
+ # @return [Array<String>]
1329
+ attr_accessor :unreachable
1330
+
1331
+ def initialize(**args)
1332
+ update!(**args)
1333
+ end
1334
+
1335
+ # Update properties of this object
1336
+ def update!(**args)
1337
+ @instances = args[:instances] if args.key?(:instances)
1338
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1339
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1340
+ end
1341
+ end
1342
+
1343
+ # The response message for Operations.ListOperations.
1344
+ class ListOperationsResponse
1345
+ include Google::Apis::Core::Hashable
1346
+
1347
+ # The standard List next-page token.
1348
+ # Corresponds to the JSON property `nextPageToken`
1349
+ # @return [String]
1350
+ attr_accessor :next_page_token
1351
+
1352
+ # A list of operations that matches the specified filter in the request.
1353
+ # Corresponds to the JSON property `operations`
1354
+ # @return [Array<Google::Apis::AlloydbV1beta::Operation>]
1355
+ attr_accessor :operations
1356
+
1357
+ def initialize(**args)
1358
+ update!(**args)
1359
+ end
1360
+
1361
+ # Update properties of this object
1362
+ def update!(**args)
1363
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1364
+ @operations = args[:operations] if args.key?(:operations)
1365
+ end
1366
+ end
1367
+
1368
+ # Message for response to listing SupportedDatabaseFlags.
1369
+ class ListSupportedDatabaseFlagsResponse
1370
+ include Google::Apis::Core::Hashable
1371
+
1372
+ # A token identifying a page of results the server should return.
1373
+ # Corresponds to the JSON property `nextPageToken`
1374
+ # @return [String]
1375
+ attr_accessor :next_page_token
1376
+
1377
+ # The list of SupportedDatabaseFlags.
1378
+ # Corresponds to the JSON property `supportedDatabaseFlags`
1379
+ # @return [Array<Google::Apis::AlloydbV1beta::SupportedDatabaseFlag>]
1380
+ attr_accessor :supported_database_flags
1381
+
1382
+ def initialize(**args)
1383
+ update!(**args)
1384
+ end
1385
+
1386
+ # Update properties of this object
1387
+ def update!(**args)
1388
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1389
+ @supported_database_flags = args[:supported_database_flags] if args.key?(:supported_database_flags)
1390
+ end
1391
+ end
1392
+
1393
+ # Message for response to listing Users
1394
+ class ListUsersResponse
1395
+ include Google::Apis::Core::Hashable
1396
+
1397
+ # A token identifying a page of results the server should return.
1398
+ # Corresponds to the JSON property `nextPageToken`
1399
+ # @return [String]
1400
+ attr_accessor :next_page_token
1401
+
1402
+ # Locations that could not be reached.
1403
+ # Corresponds to the JSON property `unreachable`
1404
+ # @return [Array<String>]
1405
+ attr_accessor :unreachable
1406
+
1407
+ # The list of User
1408
+ # Corresponds to the JSON property `users`
1409
+ # @return [Array<Google::Apis::AlloydbV1beta::User>]
1410
+ attr_accessor :users
1411
+
1412
+ def initialize(**args)
1413
+ update!(**args)
1414
+ end
1415
+
1416
+ # Update properties of this object
1417
+ def update!(**args)
1418
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1419
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1420
+ @users = args[:users] if args.key?(:users)
1421
+ end
1422
+ end
1423
+
1424
+ # MachineConfig describes the configuration of a machine.
1425
+ class MachineConfig
1426
+ include Google::Apis::Core::Hashable
1427
+
1428
+ # The number of CPU's in the VM instance.
1429
+ # Corresponds to the JSON property `cpuCount`
1430
+ # @return [Fixnum]
1431
+ attr_accessor :cpu_count
1432
+
1433
+ def initialize(**args)
1434
+ update!(**args)
1435
+ end
1436
+
1437
+ # Update properties of this object
1438
+ def update!(**args)
1439
+ @cpu_count = args[:cpu_count] if args.key?(:cpu_count)
1440
+ end
1441
+ end
1442
+
1443
+ # Subset of the source instance configuration that is available when reading the
1444
+ # cluster resource.
1445
+ class MigrationSource
1446
+ include Google::Apis::Core::Hashable
1447
+
1448
+ # Output only. The host and port of the on-premises instance in host:port format
1449
+ # Corresponds to the JSON property `hostPort`
1450
+ # @return [String]
1451
+ attr_accessor :host_port
1452
+
1453
+ # Output only. Place holder for the external source identifier(e.g DMS job name)
1454
+ # that created the cluster.
1455
+ # Corresponds to the JSON property `referenceId`
1456
+ # @return [String]
1457
+ attr_accessor :reference_id
1458
+
1459
+ # Output only. Type of migration source.
1460
+ # Corresponds to the JSON property `sourceType`
1461
+ # @return [String]
1462
+ attr_accessor :source_type
1463
+
1464
+ def initialize(**args)
1465
+ update!(**args)
1466
+ end
1467
+
1468
+ # Update properties of this object
1469
+ def update!(**args)
1470
+ @host_port = args[:host_port] if args.key?(:host_port)
1471
+ @reference_id = args[:reference_id] if args.key?(:reference_id)
1472
+ @source_type = args[:source_type] if args.key?(:source_type)
1473
+ end
1474
+ end
1475
+
1476
+ # Metadata related to network configuration.
1477
+ class NetworkConfig
1478
+ include Google::Apis::Core::Hashable
1479
+
1480
+ # Optional. Name of the allocated IP range for the private IP AlloyDB cluster,
1481
+ # for example: "google-managed-services-default". If set, the instance IPs for
1482
+ # this cluster will be created in the allocated range. The range name must
1483
+ # comply with RFC 1035. Specifically, the name must be 1-63 characters long and
1484
+ # match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. Field name is
1485
+ # intended to be consistent with Cloud SQL.
1486
+ # Corresponds to the JSON property `allocatedIpRange`
1487
+ # @return [String]
1488
+ attr_accessor :allocated_ip_range
1489
+
1490
+ # Required. The resource link for the VPC network in which cluster resources are
1491
+ # created and from which they are accessible via Private IP. The network must
1492
+ # belong to the same project as the cluster. It is specified in the form: "
1493
+ # projects/`project_number`/global/networks/`network_id`". This is required to
1494
+ # create a cluster.
1495
+ # Corresponds to the JSON property `network`
1496
+ # @return [String]
1497
+ attr_accessor :network
1498
+
1499
+ def initialize(**args)
1500
+ update!(**args)
1501
+ end
1502
+
1503
+ # Update properties of this object
1504
+ def update!(**args)
1505
+ @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
1506
+ @network = args[:network] if args.key?(:network)
1507
+ end
1508
+ end
1509
+
1510
+ # Details of a single node in the instance. Nodes in an AlloyDB instance are
1511
+ # ephemereal, they can change during update, failover, autohealing and resize
1512
+ # operations.
1513
+ class Node
1514
+ include Google::Apis::Core::Hashable
1515
+
1516
+ # The identifier of the VM e.g. "test-read-0601-407e52be-ms3l".
1517
+ # Corresponds to the JSON property `id`
1518
+ # @return [String]
1519
+ attr_accessor :id
1520
+
1521
+ # The private IP address of the VM e.g. "10.57.0.34".
1522
+ # Corresponds to the JSON property `ip`
1523
+ # @return [String]
1524
+ attr_accessor :ip
1525
+
1526
+ # Determined by state of the compute VM and postgres-service health. Compute VM
1527
+ # state can have values listed in https://cloud.google.com/compute/docs/
1528
+ # instances/instance-life-cycle and postgres-service health can have values:
1529
+ # HEALTHY and UNHEALTHY.
1530
+ # Corresponds to the JSON property `state`
1531
+ # @return [String]
1532
+ attr_accessor :state
1533
+
1534
+ # The Compute Engine zone of the VM e.g. "us-central1-b".
1535
+ # Corresponds to the JSON property `zoneId`
1536
+ # @return [String]
1537
+ attr_accessor :zone_id
1538
+
1539
+ def initialize(**args)
1540
+ update!(**args)
1541
+ end
1542
+
1543
+ # Update properties of this object
1544
+ def update!(**args)
1545
+ @id = args[:id] if args.key?(:id)
1546
+ @ip = args[:ip] if args.key?(:ip)
1547
+ @state = args[:state] if args.key?(:state)
1548
+ @zone_id = args[:zone_id] if args.key?(:zone_id)
1549
+ end
1550
+ end
1551
+
1552
+ # This resource represents a long-running operation that is the result of a
1553
+ # network API call.
1554
+ class Operation
1555
+ include Google::Apis::Core::Hashable
1556
+
1557
+ # If the value is `false`, it means the operation is still in progress. If `true`
1558
+ # , the operation is completed, and either `error` or `response` is available.
1559
+ # Corresponds to the JSON property `done`
1560
+ # @return [Boolean]
1561
+ attr_accessor :done
1562
+ alias_method :done?, :done
1563
+
1564
+ # The `Status` type defines a logical error model that is suitable for different
1565
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1566
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1567
+ # data: error code, error message, and error details. You can find out more
1568
+ # about this error model and how to work with it in the [API Design Guide](https:
1569
+ # //cloud.google.com/apis/design/errors).
1570
+ # Corresponds to the JSON property `error`
1571
+ # @return [Google::Apis::AlloydbV1beta::Status]
1572
+ attr_accessor :error
1573
+
1574
+ # Service-specific metadata associated with the operation. It typically contains
1575
+ # progress information and common metadata such as create time. Some services
1576
+ # might not provide such metadata. Any method that returns a long-running
1577
+ # operation should document the metadata type, if any.
1578
+ # Corresponds to the JSON property `metadata`
1579
+ # @return [Hash<String,Object>]
1580
+ attr_accessor :metadata
1581
+
1582
+ # The server-assigned name, which is only unique within the same service that
1583
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1584
+ # be a resource name ending with `operations/`unique_id``.
1585
+ # Corresponds to the JSON property `name`
1586
+ # @return [String]
1587
+ attr_accessor :name
1588
+
1589
+ # The normal, successful response of the operation. If the original method
1590
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
1591
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
1592
+ # response should be the resource. For other methods, the response should have
1593
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
1594
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
1595
+ # `TakeSnapshotResponse`.
1596
+ # Corresponds to the JSON property `response`
1597
+ # @return [Hash<String,Object>]
1598
+ attr_accessor :response
1599
+
1600
+ def initialize(**args)
1601
+ update!(**args)
1602
+ end
1603
+
1604
+ # Update properties of this object
1605
+ def update!(**args)
1606
+ @done = args[:done] if args.key?(:done)
1607
+ @error = args[:error] if args.key?(:error)
1608
+ @metadata = args[:metadata] if args.key?(:metadata)
1609
+ @name = args[:name] if args.key?(:name)
1610
+ @response = args[:response] if args.key?(:response)
1611
+ end
1612
+ end
1613
+
1614
+ # Represents the metadata of the long-running operation.
1615
+ class OperationMetadata
1616
+ include Google::Apis::Core::Hashable
1617
+
1618
+ # Output only. API version used to start the operation.
1619
+ # Corresponds to the JSON property `apiVersion`
1620
+ # @return [String]
1621
+ attr_accessor :api_version
1622
+
1623
+ # Output only. The time the operation was created.
1624
+ # Corresponds to the JSON property `createTime`
1625
+ # @return [String]
1626
+ attr_accessor :create_time
1627
+
1628
+ # Output only. The time the operation finished running.
1629
+ # Corresponds to the JSON property `endTime`
1630
+ # @return [String]
1631
+ attr_accessor :end_time
1632
+
1633
+ # Output only. Identifies whether the user has requested cancellation of the
1634
+ # operation. Operations that have successfully been cancelled have Operation.
1635
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1636
+ # CANCELLED`.
1637
+ # Corresponds to the JSON property `requestedCancellation`
1638
+ # @return [Boolean]
1639
+ attr_accessor :requested_cancellation
1640
+ alias_method :requested_cancellation?, :requested_cancellation
1641
+
1642
+ # Output only. Human-readable status of the operation, if any.
1643
+ # Corresponds to the JSON property `statusMessage`
1644
+ # @return [String]
1645
+ attr_accessor :status_message
1646
+
1647
+ # Output only. Server-defined resource path for the target of the operation.
1648
+ # Corresponds to the JSON property `target`
1649
+ # @return [String]
1650
+ attr_accessor :target
1651
+
1652
+ # Output only. Name of the verb executed by the operation.
1653
+ # Corresponds to the JSON property `verb`
1654
+ # @return [String]
1655
+ attr_accessor :verb
1656
+
1657
+ def initialize(**args)
1658
+ update!(**args)
1659
+ end
1660
+
1661
+ # Update properties of this object
1662
+ def update!(**args)
1663
+ @api_version = args[:api_version] if args.key?(:api_version)
1664
+ @create_time = args[:create_time] if args.key?(:create_time)
1665
+ @end_time = args[:end_time] if args.key?(:end_time)
1666
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1667
+ @status_message = args[:status_message] if args.key?(:status_message)
1668
+ @target = args[:target] if args.key?(:target)
1669
+ @verb = args[:verb] if args.key?(:verb)
1670
+ end
1671
+ end
1672
+
1673
+ # Configuration for the primary cluster. It has the list of clusters that are
1674
+ # replicating from this cluster. This should be set if and only if the cluster
1675
+ # is of type PRIMARY.
1676
+ class PrimaryConfig
1677
+ include Google::Apis::Core::Hashable
1678
+
1679
+ # Output only. Names of the clusters that are replicating from this cluster.
1680
+ # Corresponds to the JSON property `secondaryClusterNames`
1681
+ # @return [Array<String>]
1682
+ attr_accessor :secondary_cluster_names
1683
+
1684
+ def initialize(**args)
1685
+ update!(**args)
1686
+ end
1687
+
1688
+ # Update properties of this object
1689
+ def update!(**args)
1690
+ @secondary_cluster_names = args[:secondary_cluster_names] if args.key?(:secondary_cluster_names)
1691
+ end
1692
+ end
1693
+
1694
+ # Message for promoting a Cluster
1695
+ class PromoteClusterRequest
1696
+ include Google::Apis::Core::Hashable
1697
+
1698
+ # Optional. The current etag of the Cluster. If an etag is provided and does not
1699
+ # match the current etag of the Cluster, deletion will be blocked and an ABORTED
1700
+ # error will be returned.
1701
+ # Corresponds to the JSON property `etag`
1702
+ # @return [String]
1703
+ attr_accessor :etag
1704
+
1705
+ # Optional. An optional request ID to identify requests. Specify a unique
1706
+ # request ID so that if you must retry your request, the server will know to
1707
+ # ignore the request if it has already been completed. The server will guarantee
1708
+ # that for at least 60 minutes after the first request. For example, consider a
1709
+ # situation where you make an initial request and the request times out. If you
1710
+ # make the request again with the same request ID, the server can check if
1711
+ # original operation with the same request ID was received, and if so, will
1712
+ # ignore the second request. This prevents clients from accidentally creating
1713
+ # duplicate commitments. The request ID must be a valid UUID with the exception
1714
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1715
+ # Corresponds to the JSON property `requestId`
1716
+ # @return [String]
1717
+ attr_accessor :request_id
1718
+
1719
+ # Optional. If set, performs request validation (e.g. permission checks and any
1720
+ # other type of validation), but do not actually execute the delete.
1721
+ # Corresponds to the JSON property `validateOnly`
1722
+ # @return [Boolean]
1723
+ attr_accessor :validate_only
1724
+ alias_method :validate_only?, :validate_only
1725
+
1726
+ def initialize(**args)
1727
+ update!(**args)
1728
+ end
1729
+
1730
+ # Update properties of this object
1731
+ def update!(**args)
1732
+ @etag = args[:etag] if args.key?(:etag)
1733
+ @request_id = args[:request_id] if args.key?(:request_id)
1734
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
1735
+ end
1736
+ end
1737
+
1738
+ # A backup's position in a quantity-based retention queue, of backups with the
1739
+ # same source cluster and type, with length, retention, specified by the backup'
1740
+ # s retention policy. Once the position is greater than the retention, the
1741
+ # backup is eligible to be garbage collected. Example: 5 backups from the same
1742
+ # source cluster and type with a quantity-based retention of 3 and denoted by
1743
+ # backup_id (position, retention). Safe: backup_5 (1, 3), backup_4, (2, 3),
1744
+ # backup_3 (3, 3). Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3)
1745
+ class QuantityBasedExpiry
1746
+ include Google::Apis::Core::Hashable
1747
+
1748
+ # Output only. The backup's position among its backups with the same source
1749
+ # cluster and type, by descending chronological order create time(i.e. newest
1750
+ # first).
1751
+ # Corresponds to the JSON property `retentionCount`
1752
+ # @return [Fixnum]
1753
+ attr_accessor :retention_count
1754
+
1755
+ # Output only. The length of the quantity-based queue, specified by the backup's
1756
+ # retention policy.
1757
+ # Corresponds to the JSON property `totalRetentionCount`
1758
+ # @return [Fixnum]
1759
+ attr_accessor :total_retention_count
1760
+
1761
+ def initialize(**args)
1762
+ update!(**args)
1763
+ end
1764
+
1765
+ # Update properties of this object
1766
+ def update!(**args)
1767
+ @retention_count = args[:retention_count] if args.key?(:retention_count)
1768
+ @total_retention_count = args[:total_retention_count] if args.key?(:total_retention_count)
1769
+ end
1770
+ end
1771
+
1772
+ # A quantity based policy specifies that a certain number of the most recent
1773
+ # successful backups should be retained.
1774
+ class QuantityBasedRetention
1775
+ include Google::Apis::Core::Hashable
1776
+
1777
+ # The number of backups to retain.
1778
+ # Corresponds to the JSON property `count`
1779
+ # @return [Fixnum]
1780
+ attr_accessor :count
1781
+
1782
+ def initialize(**args)
1783
+ update!(**args)
1784
+ end
1785
+
1786
+ # Update properties of this object
1787
+ def update!(**args)
1788
+ @count = args[:count] if args.key?(:count)
1789
+ end
1790
+ end
1791
+
1792
+ # QueryInsights Instance specific configuration.
1793
+ class QueryInsightsInstanceConfig
1794
+ include Google::Apis::Core::Hashable
1795
+
1796
+ # Number of query execution plans captured by Insights per minute for all
1797
+ # queries combined. The default value is 5. Any integer between 0 and 20 is
1798
+ # considered valid.
1799
+ # Corresponds to the JSON property `queryPlansPerMinute`
1800
+ # @return [Fixnum]
1801
+ attr_accessor :query_plans_per_minute
1802
+
1803
+ # Query string length. The default value is 1024. Any integer between 256 and
1804
+ # 4500 is considered valid.
1805
+ # Corresponds to the JSON property `queryStringLength`
1806
+ # @return [Fixnum]
1807
+ attr_accessor :query_string_length
1808
+
1809
+ # Record application tags for an instance. This flag is turned "on" by default.
1810
+ # Corresponds to the JSON property `recordApplicationTags`
1811
+ # @return [Boolean]
1812
+ attr_accessor :record_application_tags
1813
+ alias_method :record_application_tags?, :record_application_tags
1814
+
1815
+ # Record client address for an instance. Client address is PII information. This
1816
+ # flag is turned "on" by default.
1817
+ # Corresponds to the JSON property `recordClientAddress`
1818
+ # @return [Boolean]
1819
+ attr_accessor :record_client_address
1820
+ alias_method :record_client_address?, :record_client_address
1821
+
1822
+ def initialize(**args)
1823
+ update!(**args)
1824
+ end
1825
+
1826
+ # Update properties of this object
1827
+ def update!(**args)
1828
+ @query_plans_per_minute = args[:query_plans_per_minute] if args.key?(:query_plans_per_minute)
1829
+ @query_string_length = args[:query_string_length] if args.key?(:query_string_length)
1830
+ @record_application_tags = args[:record_application_tags] if args.key?(:record_application_tags)
1831
+ @record_client_address = args[:record_client_address] if args.key?(:record_client_address)
1832
+ end
1833
+ end
1834
+
1835
+ # Configuration for a read pool instance.
1836
+ class ReadPoolConfig
1837
+ include Google::Apis::Core::Hashable
1838
+
1839
+ # Read capacity, i.e. number of nodes in a read pool instance.
1840
+ # Corresponds to the JSON property `nodeCount`
1841
+ # @return [Fixnum]
1842
+ attr_accessor :node_count
1843
+
1844
+ def initialize(**args)
1845
+ update!(**args)
1846
+ end
1847
+
1848
+ # Update properties of this object
1849
+ def update!(**args)
1850
+ @node_count = args[:node_count] if args.key?(:node_count)
1851
+ end
1852
+ end
1853
+
1854
+ #
1855
+ class RestartInstanceRequest
1856
+ include Google::Apis::Core::Hashable
1857
+
1858
+ # Optional. An optional request ID to identify requests. Specify a unique
1859
+ # request ID so that if you must retry your request, the server will know to
1860
+ # ignore the request if it has already been completed. The server will guarantee
1861
+ # that for at least 60 minutes after the first request. For example, consider a
1862
+ # situation where you make an initial request and the request times out. If you
1863
+ # make the request again with the same request ID, the server can check if
1864
+ # original operation with the same request ID was received, and if so, will
1865
+ # ignore the second request. This prevents clients from accidentally creating
1866
+ # duplicate commitments. The request ID must be a valid UUID with the exception
1867
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1868
+ # Corresponds to the JSON property `requestId`
1869
+ # @return [String]
1870
+ attr_accessor :request_id
1871
+
1872
+ # Optional. If set, performs request validation (e.g. permission checks and any
1873
+ # other type of validation), but do not actually execute the restart.
1874
+ # Corresponds to the JSON property `validateOnly`
1875
+ # @return [Boolean]
1876
+ attr_accessor :validate_only
1877
+ alias_method :validate_only?, :validate_only
1878
+
1879
+ def initialize(**args)
1880
+ update!(**args)
1881
+ end
1882
+
1883
+ # Update properties of this object
1884
+ def update!(**args)
1885
+ @request_id = args[:request_id] if args.key?(:request_id)
1886
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
1887
+ end
1888
+ end
1889
+
1890
+ # Message for restoring a Cluster from a backup or another cluster at a given
1891
+ # point in time.
1892
+ class RestoreClusterRequest
1893
+ include Google::Apis::Core::Hashable
1894
+
1895
+ # Message describing a BackupSource.
1896
+ # Corresponds to the JSON property `backupSource`
1897
+ # @return [Google::Apis::AlloydbV1beta::BackupSource]
1898
+ attr_accessor :backup_source
1899
+
1900
+ # A cluster is a collection of regional AlloyDB resources. It can include a
1901
+ # primary instance and one or more read pool instances. All cluster resources
1902
+ # share a storage layer, which scales as needed.
1903
+ # Corresponds to the JSON property `cluster`
1904
+ # @return [Google::Apis::AlloydbV1beta::Cluster]
1905
+ attr_accessor :cluster
1906
+
1907
+ # Required. ID of the requesting object.
1908
+ # Corresponds to the JSON property `clusterId`
1909
+ # @return [String]
1910
+ attr_accessor :cluster_id
1911
+
1912
+ # Message describing a ContinuousBackupSource.
1913
+ # Corresponds to the JSON property `continuousBackupSource`
1914
+ # @return [Google::Apis::AlloydbV1beta::ContinuousBackupSource]
1915
+ attr_accessor :continuous_backup_source
1916
+
1917
+ # Optional. An optional request ID to identify requests. Specify a unique
1918
+ # request ID so that if you must retry your request, the server will know to
1919
+ # ignore the request if it has already been completed. The server will guarantee
1920
+ # that for at least 60 minutes since the first request. For example, consider a
1921
+ # situation where you make an initial request and the request times out. If you
1922
+ # make the request again with the same request ID, the server can check if
1923
+ # original operation with the same request ID was received, and if so, will
1924
+ # ignore the second request. This prevents clients from accidentally creating
1925
+ # duplicate commitments. The request ID must be a valid UUID with the exception
1926
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1927
+ # Corresponds to the JSON property `requestId`
1928
+ # @return [String]
1929
+ attr_accessor :request_id
1930
+
1931
+ # Optional. If set, performs request validation (e.g. permission checks and any
1932
+ # other type of validation), but do not actually execute the import request.
1933
+ # Corresponds to the JSON property `validateOnly`
1934
+ # @return [Boolean]
1935
+ attr_accessor :validate_only
1936
+ alias_method :validate_only?, :validate_only
1937
+
1938
+ def initialize(**args)
1939
+ update!(**args)
1940
+ end
1941
+
1942
+ # Update properties of this object
1943
+ def update!(**args)
1944
+ @backup_source = args[:backup_source] if args.key?(:backup_source)
1945
+ @cluster = args[:cluster] if args.key?(:cluster)
1946
+ @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
1947
+ @continuous_backup_source = args[:continuous_backup_source] if args.key?(:continuous_backup_source)
1948
+ @request_id = args[:request_id] if args.key?(:request_id)
1949
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
1950
+ end
1951
+ end
1952
+
1953
+ # Configuration information for the secondary cluster. This should be set if and
1954
+ # only if the cluster is of type SECONDARY.
1955
+ class SecondaryConfig
1956
+ include Google::Apis::Core::Hashable
1957
+
1958
+ # The name of the primary cluster name with the format: * projects/`project`/
1959
+ # locations/`region`/clusters/`cluster_id`
1960
+ # Corresponds to the JSON property `primaryClusterName`
1961
+ # @return [String]
1962
+ attr_accessor :primary_cluster_name
1963
+
1964
+ def initialize(**args)
1965
+ update!(**args)
1966
+ end
1967
+
1968
+ # Update properties of this object
1969
+ def update!(**args)
1970
+ @primary_cluster_name = args[:primary_cluster_name] if args.key?(:primary_cluster_name)
1971
+ end
1972
+ end
1973
+
1974
+ # SSL configuration.
1975
+ class SslConfig
1976
+ include Google::Apis::Core::Hashable
1977
+
1978
+ # Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is
1979
+ # supported currently, and is the default value.
1980
+ # Corresponds to the JSON property `caSource`
1981
+ # @return [String]
1982
+ attr_accessor :ca_source
1983
+
1984
+ # Optional. SSL mode. Specifies client-server SSL/TLS connection behavior.
1985
+ # Corresponds to the JSON property `sslMode`
1986
+ # @return [String]
1987
+ attr_accessor :ssl_mode
1988
+
1989
+ def initialize(**args)
1990
+ update!(**args)
1991
+ end
1992
+
1993
+ # Update properties of this object
1994
+ def update!(**args)
1995
+ @ca_source = args[:ca_source] if args.key?(:ca_source)
1996
+ @ssl_mode = args[:ssl_mode] if args.key?(:ssl_mode)
1997
+ end
1998
+ end
1999
+
2000
+ # The `Status` type defines a logical error model that is suitable for different
2001
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2002
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2003
+ # data: error code, error message, and error details. You can find out more
2004
+ # about this error model and how to work with it in the [API Design Guide](https:
2005
+ # //cloud.google.com/apis/design/errors).
2006
+ class Status
2007
+ include Google::Apis::Core::Hashable
2008
+
2009
+ # The status code, which should be an enum value of google.rpc.Code.
2010
+ # Corresponds to the JSON property `code`
2011
+ # @return [Fixnum]
2012
+ attr_accessor :code
2013
+
2014
+ # A list of messages that carry the error details. There is a common set of
2015
+ # message types for APIs to use.
2016
+ # Corresponds to the JSON property `details`
2017
+ # @return [Array<Hash<String,Object>>]
2018
+ attr_accessor :details
2019
+
2020
+ # A developer-facing error message, which should be in English. Any user-facing
2021
+ # error message should be localized and sent in the google.rpc.Status.details
2022
+ # field, or localized by the client.
2023
+ # Corresponds to the JSON property `message`
2024
+ # @return [String]
2025
+ attr_accessor :message
2026
+
2027
+ def initialize(**args)
2028
+ update!(**args)
2029
+ end
2030
+
2031
+ # Update properties of this object
2032
+ def update!(**args)
2033
+ @code = args[:code] if args.key?(:code)
2034
+ @details = args[:details] if args.key?(:details)
2035
+ @message = args[:message] if args.key?(:message)
2036
+ end
2037
+ end
2038
+
2039
+ # Configuration for availability of database instance
2040
+ class StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration
2041
+ include Google::Apis::Core::Hashable
2042
+
2043
+ # Availability type. Potential values: * `ZONAL`: The instance serves data from
2044
+ # only one zone. Outages in that zone affect data accessibility. * `REGIONAL`:
2045
+ # The instance can serve data from more than one zone in a region (it is highly
2046
+ # available).
2047
+ # Corresponds to the JSON property `availabilityType`
2048
+ # @return [String]
2049
+ attr_accessor :availability_type
2050
+
2051
+ #
2052
+ # Corresponds to the JSON property `externalReplicaConfigured`
2053
+ # @return [Boolean]
2054
+ attr_accessor :external_replica_configured
2055
+ alias_method :external_replica_configured?, :external_replica_configured
2056
+
2057
+ #
2058
+ # Corresponds to the JSON property `promotableReplicaConfigured`
2059
+ # @return [Boolean]
2060
+ attr_accessor :promotable_replica_configured
2061
+ alias_method :promotable_replica_configured?, :promotable_replica_configured
2062
+
2063
+ def initialize(**args)
2064
+ update!(**args)
2065
+ end
2066
+
2067
+ # Update properties of this object
2068
+ def update!(**args)
2069
+ @availability_type = args[:availability_type] if args.key?(:availability_type)
2070
+ @external_replica_configured = args[:external_replica_configured] if args.key?(:external_replica_configured)
2071
+ @promotable_replica_configured = args[:promotable_replica_configured] if args.key?(:promotable_replica_configured)
2072
+ end
2073
+ end
2074
+
2075
+ # Configuration for automatic backups
2076
+ class StorageDatabasecenterPartnerapiV1mainBackupConfiguration
2077
+ include Google::Apis::Core::Hashable
2078
+
2079
+ # Whether customer visible automated backups are enabled on the instance.
2080
+ # Corresponds to the JSON property `automatedBackupEnabled`
2081
+ # @return [Boolean]
2082
+ attr_accessor :automated_backup_enabled
2083
+ alias_method :automated_backup_enabled?, :automated_backup_enabled
2084
+
2085
+ # Backup retention settings.
2086
+ # Corresponds to the JSON property `backupRetentionSettings`
2087
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainRetentionSettings]
2088
+ attr_accessor :backup_retention_settings
2089
+
2090
+ # Whether point-in-time recovery is enabled. This is optional field, if the
2091
+ # database service does not have this feature or metadata is not available in
2092
+ # control plane, this can be omitted.
2093
+ # Corresponds to the JSON property `pointInTimeRecoveryEnabled`
2094
+ # @return [Boolean]
2095
+ attr_accessor :point_in_time_recovery_enabled
2096
+ alias_method :point_in_time_recovery_enabled?, :point_in_time_recovery_enabled
2097
+
2098
+ def initialize(**args)
2099
+ update!(**args)
2100
+ end
2101
+
2102
+ # Update properties of this object
2103
+ def update!(**args)
2104
+ @automated_backup_enabled = args[:automated_backup_enabled] if args.key?(:automated_backup_enabled)
2105
+ @backup_retention_settings = args[:backup_retention_settings] if args.key?(:backup_retention_settings)
2106
+ @point_in_time_recovery_enabled = args[:point_in_time_recovery_enabled] if args.key?(:point_in_time_recovery_enabled)
2107
+ end
2108
+ end
2109
+
2110
+ # A backup run.
2111
+ class StorageDatabasecenterPartnerapiV1mainBackupRun
2112
+ include Google::Apis::Core::Hashable
2113
+
2114
+ # The time the backup operation completed. REQUIRED
2115
+ # Corresponds to the JSON property `endTime`
2116
+ # @return [String]
2117
+ attr_accessor :end_time
2118
+
2119
+ # An error that occurred during a backup creation operation.
2120
+ # Corresponds to the JSON property `error`
2121
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainOperationError]
2122
+ attr_accessor :error
2123
+
2124
+ # The time the backup operation started. REQUIRED
2125
+ # Corresponds to the JSON property `startTime`
2126
+ # @return [String]
2127
+ attr_accessor :start_time
2128
+
2129
+ # The status of this run. REQUIRED
2130
+ # Corresponds to the JSON property `status`
2131
+ # @return [String]
2132
+ attr_accessor :status
2133
+
2134
+ def initialize(**args)
2135
+ update!(**args)
2136
+ end
2137
+
2138
+ # Update properties of this object
2139
+ def update!(**args)
2140
+ @end_time = args[:end_time] if args.key?(:end_time)
2141
+ @error = args[:error] if args.key?(:error)
2142
+ @start_time = args[:start_time] if args.key?(:start_time)
2143
+ @status = args[:status] if args.key?(:status)
2144
+ end
2145
+ end
2146
+
2147
+ # Contains compliance information about a security standard indicating unmet
2148
+ # recommendations.
2149
+ class StorageDatabasecenterPartnerapiV1mainCompliance
2150
+ include Google::Apis::Core::Hashable
2151
+
2152
+ # Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.
2153
+ # Corresponds to the JSON property `standard`
2154
+ # @return [String]
2155
+ attr_accessor :standard
2156
+
2157
+ # Version of the standard or benchmark, for example, 1.1
2158
+ # Corresponds to the JSON property `version`
2159
+ # @return [String]
2160
+ attr_accessor :version
2161
+
2162
+ def initialize(**args)
2163
+ update!(**args)
2164
+ end
2165
+
2166
+ # Update properties of this object
2167
+ def update!(**args)
2168
+ @standard = args[:standard] if args.key?(:standard)
2169
+ @version = args[:version] if args.key?(:version)
2170
+ end
2171
+ end
2172
+
2173
+ # DatabaseResourceFeed is the top level proto to be used to ingest different
2174
+ # database resource level events into Condor platform.
2175
+ class StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed
2176
+ include Google::Apis::Core::Hashable
2177
+
2178
+ # Required. Timestamp when feed is generated.
2179
+ # Corresponds to the JSON property `feedTimestamp`
2180
+ # @return [String]
2181
+ attr_accessor :feed_timestamp
2182
+
2183
+ # Required. Type feed to be ingested into condor
2184
+ # Corresponds to the JSON property `feedType`
2185
+ # @return [String]
2186
+ attr_accessor :feed_type
2187
+
2188
+ # Common model for database resource health signal data.
2189
+ # Corresponds to the JSON property `resourceHealthSignalData`
2190
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData]
2191
+ attr_accessor :resource_health_signal_data
2192
+
2193
+ # DatabaseResourceId will serve as primary key for any resource ingestion event.
2194
+ # Corresponds to the JSON property `resourceId`
2195
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainDatabaseResourceId]
2196
+ attr_accessor :resource_id
2197
+
2198
+ # Common model for database resource instance metadata.
2199
+ # Corresponds to the JSON property `resourceMetadata`
2200
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata]
2201
+ attr_accessor :resource_metadata
2202
+
2203
+ def initialize(**args)
2204
+ update!(**args)
2205
+ end
2206
+
2207
+ # Update properties of this object
2208
+ def update!(**args)
2209
+ @feed_timestamp = args[:feed_timestamp] if args.key?(:feed_timestamp)
2210
+ @feed_type = args[:feed_type] if args.key?(:feed_type)
2211
+ @resource_health_signal_data = args[:resource_health_signal_data] if args.key?(:resource_health_signal_data)
2212
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
2213
+ @resource_metadata = args[:resource_metadata] if args.key?(:resource_metadata)
2214
+ end
2215
+ end
2216
+
2217
+ # Common model for database resource health signal data.
2218
+ class StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData
2219
+ include Google::Apis::Core::Hashable
2220
+
2221
+ # Any other additional metadata
2222
+ # Corresponds to the JSON property `additionalMetadata`
2223
+ # @return [Hash<String,Object>]
2224
+ attr_accessor :additional_metadata
2225
+
2226
+ # Industry standards associated with this signal; if this signal is an issue,
2227
+ # that could be a violation of the associated industry standard(s). For example,
2228
+ # AUTO_BACKUP_DISABLED signal is associated with CIS GCP 1.1, CIS GCP 1.2, CIS
2229
+ # GCP 1.3, NIST 800-53 and ISO-27001 compliance standards. If a database
2230
+ # resource does not have automated backup enable, it will violate these
2231
+ # following industry standards.
2232
+ # Corresponds to the JSON property `compliance`
2233
+ # @return [Array<Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainCompliance>]
2234
+ attr_accessor :compliance
2235
+
2236
+ # Description associated with signal
2237
+ # Corresponds to the JSON property `description`
2238
+ # @return [String]
2239
+ attr_accessor :description
2240
+
2241
+ # Required. The last time at which the event described by this signal took place
2242
+ # Corresponds to the JSON property `eventTime`
2243
+ # @return [String]
2244
+ attr_accessor :event_time
2245
+
2246
+ # The external-uri of the signal, using which more information about this signal
2247
+ # can be obtained. In GCP, this will take user to SCC page to get more details
2248
+ # about signals.
2249
+ # Corresponds to the JSON property `externalUri`
2250
+ # @return [String]
2251
+ attr_accessor :external_uri
2252
+
2253
+ # Required. The name of the signal, ex: PUBLIC_SQL_INSTANCE,
2254
+ # SQL_LOG_ERROR_VERBOSITY etc.
2255
+ # Corresponds to the JSON property `name`
2256
+ # @return [String]
2257
+ attr_accessor :name
2258
+
2259
+ # Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged
2260
+ # Corresponds to the JSON property `provider`
2261
+ # @return [String]
2262
+ attr_accessor :provider
2263
+
2264
+ # Closest parent container of this resource. In GCP, 'container' refers to a
2265
+ # Cloud Resource Manager project. It must be resource name of a Cloud Resource
2266
+ # Manager project with the format of "provider//", such as "gcp/projects/123".
2267
+ # For GCP provided resources, number should be project number.
2268
+ # Corresponds to the JSON property `resourceContainer`
2269
+ # @return [String]
2270
+ attr_accessor :resource_container
2271
+
2272
+ # Required. Database resource name associated with the signal. Resource name to
2273
+ # follow CAIS resource_name format as noted here go/condor-common-datamodel
2274
+ # Corresponds to the JSON property `resourceName`
2275
+ # @return [String]
2276
+ attr_accessor :resource_name
2277
+
2278
+ # Required. The class of the signal, such as if it's a THREAT or VULNERABILITY.
2279
+ # Corresponds to the JSON property `signalClass`
2280
+ # @return [String]
2281
+ attr_accessor :signal_class
2282
+
2283
+ # Required. Unique identifier for the signal. This is an unique id which would
2284
+ # be mainatined by partner to identify a signal.
2285
+ # Corresponds to the JSON property `signalId`
2286
+ # @return [String]
2287
+ attr_accessor :signal_id
2288
+
2289
+ # Required. Type of signal, for example, `AVAILABLE_IN_MULTIPLE_ZONES`, `
2290
+ # LOGGING_MOST_ERRORS`, etc.
2291
+ # Corresponds to the JSON property `signalType`
2292
+ # @return [String]
2293
+ attr_accessor :signal_type
2294
+
2295
+ #
2296
+ # Corresponds to the JSON property `state`
2297
+ # @return [String]
2298
+ attr_accessor :state
2299
+
2300
+ def initialize(**args)
2301
+ update!(**args)
2302
+ end
2303
+
2304
+ # Update properties of this object
2305
+ def update!(**args)
2306
+ @additional_metadata = args[:additional_metadata] if args.key?(:additional_metadata)
2307
+ @compliance = args[:compliance] if args.key?(:compliance)
2308
+ @description = args[:description] if args.key?(:description)
2309
+ @event_time = args[:event_time] if args.key?(:event_time)
2310
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
2311
+ @name = args[:name] if args.key?(:name)
2312
+ @provider = args[:provider] if args.key?(:provider)
2313
+ @resource_container = args[:resource_container] if args.key?(:resource_container)
2314
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2315
+ @signal_class = args[:signal_class] if args.key?(:signal_class)
2316
+ @signal_id = args[:signal_id] if args.key?(:signal_id)
2317
+ @signal_type = args[:signal_type] if args.key?(:signal_type)
2318
+ @state = args[:state] if args.key?(:state)
2319
+ end
2320
+ end
2321
+
2322
+ # DatabaseResourceId will serve as primary key for any resource ingestion event.
2323
+ class StorageDatabasecenterPartnerapiV1mainDatabaseResourceId
2324
+ include Google::Apis::Core::Hashable
2325
+
2326
+ # Required. Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged
2327
+ # Corresponds to the JSON property `provider`
2328
+ # @return [String]
2329
+ attr_accessor :provider
2330
+
2331
+ # Optional. Needs to be used only when the provider is PROVIDER_OTHER.
2332
+ # Corresponds to the JSON property `providerDescription`
2333
+ # @return [String]
2334
+ attr_accessor :provider_description
2335
+
2336
+ # Required. The type of resource this ID is identifying. Ex alloydb.googleapis.
2337
+ # com/Cluster, alloydb.googleapis.com/Instance, spanner.googleapis.com/Instance
2338
+ # REQUIRED Please refer go/condor-common-datamodel
2339
+ # Corresponds to the JSON property `resourceType`
2340
+ # @return [String]
2341
+ attr_accessor :resource_type
2342
+
2343
+ # Required. A service-local token that distinguishes this resource from other
2344
+ # resources within the same service.
2345
+ # Corresponds to the JSON property `uniqueId`
2346
+ # @return [String]
2347
+ attr_accessor :unique_id
2348
+
2349
+ def initialize(**args)
2350
+ update!(**args)
2351
+ end
2352
+
2353
+ # Update properties of this object
2354
+ def update!(**args)
2355
+ @provider = args[:provider] if args.key?(:provider)
2356
+ @provider_description = args[:provider_description] if args.key?(:provider_description)
2357
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
2358
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
2359
+ end
2360
+ end
2361
+
2362
+ # Common model for database resource instance metadata.
2363
+ class StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata
2364
+ include Google::Apis::Core::Hashable
2365
+
2366
+ # Configuration for availability of database instance
2367
+ # Corresponds to the JSON property `availabilityConfiguration`
2368
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainAvailabilityConfiguration]
2369
+ attr_accessor :availability_configuration
2370
+
2371
+ # Configuration for automatic backups
2372
+ # Corresponds to the JSON property `backupConfiguration`
2373
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainBackupConfiguration]
2374
+ attr_accessor :backup_configuration
2375
+
2376
+ # A backup run.
2377
+ # Corresponds to the JSON property `backupRun`
2378
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainBackupRun]
2379
+ attr_accessor :backup_run
2380
+
2381
+ # The creation time of the resource, i.e. the time when resource is created and
2382
+ # recorded in partner service.
2383
+ # Corresponds to the JSON property `creationTime`
2384
+ # @return [String]
2385
+ attr_accessor :creation_time
2386
+
2387
+ # Current state of the instance.
2388
+ # Corresponds to the JSON property `currentState`
2389
+ # @return [String]
2390
+ attr_accessor :current_state
2391
+
2392
+ # Any custom metadata associated with the resource (a JSON field)
2393
+ # Corresponds to the JSON property `customMetadata`
2394
+ # @return [Hash<String,Object>]
2395
+ attr_accessor :custom_metadata
2396
+
2397
+ # The state that the instance is expected to be in. For example, an instance
2398
+ # state can transition to UNHEALTHY due to wrong patch update, while the
2399
+ # expected state will remain at the HEALTHY.
2400
+ # Corresponds to the JSON property `expectedState`
2401
+ # @return [String]
2402
+ attr_accessor :expected_state
2403
+
2404
+ # DatabaseResourceId will serve as primary key for any resource ingestion event.
2405
+ # Corresponds to the JSON property `id`
2406
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainDatabaseResourceId]
2407
+ attr_accessor :id
2408
+
2409
+ # The type of the instance. Specified at creation time.
2410
+ # Corresponds to the JSON property `instanceType`
2411
+ # @return [String]
2412
+ attr_accessor :instance_type
2413
+
2414
+ # The resource location. REQUIRED
2415
+ # Corresponds to the JSON property `location`
2416
+ # @return [String]
2417
+ attr_accessor :location
2418
+
2419
+ # DatabaseResourceId will serve as primary key for any resource ingestion event.
2420
+ # Corresponds to the JSON property `primaryResourceId`
2421
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterPartnerapiV1mainDatabaseResourceId]
2422
+ attr_accessor :primary_resource_id
2423
+
2424
+ # Product specification for Condor resources.
2425
+ # Corresponds to the JSON property `product`
2426
+ # @return [Google::Apis::AlloydbV1beta::StorageDatabasecenterProtoCommonProduct]
2427
+ attr_accessor :product
2428
+
2429
+ # Closest parent Cloud Resource Manager container of this resource. It must be
2430
+ # resource name of a Cloud Resource Manager project with the format of "provider/
2431
+ # /", such as "gcp/projects/123". For GCP provided resources, number should be
2432
+ # project number.
2433
+ # Corresponds to the JSON property `resourceContainer`
2434
+ # @return [String]
2435
+ attr_accessor :resource_container
2436
+
2437
+ # Required. Different from DatabaseResourceId.unique_id, a resource name can be
2438
+ # reused over time. That is, after a resource named "ABC" is deleted, the name "
2439
+ # ABC" can be used to to create a new resource within the same source. Resource
2440
+ # name to follow CAIS resource_name format as noted here go/condor-common-
2441
+ # datamodel
2442
+ # Corresponds to the JSON property `resourceName`
2443
+ # @return [String]
2444
+ attr_accessor :resource_name
2445
+
2446
+ # The time at which the resource was updated and recorded at partner service.
2447
+ # Corresponds to the JSON property `updationTime`
2448
+ # @return [String]
2449
+ attr_accessor :updation_time
2450
+
2451
+ # User-provided labels, represented as a dictionary where each label is a single
2452
+ # key value pair.
2453
+ # Corresponds to the JSON property `userLabels`
2454
+ # @return [Hash<String,String>]
2455
+ attr_accessor :user_labels
2456
+
2457
+ def initialize(**args)
2458
+ update!(**args)
2459
+ end
2460
+
2461
+ # Update properties of this object
2462
+ def update!(**args)
2463
+ @availability_configuration = args[:availability_configuration] if args.key?(:availability_configuration)
2464
+ @backup_configuration = args[:backup_configuration] if args.key?(:backup_configuration)
2465
+ @backup_run = args[:backup_run] if args.key?(:backup_run)
2466
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
2467
+ @current_state = args[:current_state] if args.key?(:current_state)
2468
+ @custom_metadata = args[:custom_metadata] if args.key?(:custom_metadata)
2469
+ @expected_state = args[:expected_state] if args.key?(:expected_state)
2470
+ @id = args[:id] if args.key?(:id)
2471
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
2472
+ @location = args[:location] if args.key?(:location)
2473
+ @primary_resource_id = args[:primary_resource_id] if args.key?(:primary_resource_id)
2474
+ @product = args[:product] if args.key?(:product)
2475
+ @resource_container = args[:resource_container] if args.key?(:resource_container)
2476
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2477
+ @updation_time = args[:updation_time] if args.key?(:updation_time)
2478
+ @user_labels = args[:user_labels] if args.key?(:user_labels)
2479
+ end
2480
+ end
2481
+
2482
+ # An error that occurred during a backup creation operation.
2483
+ class StorageDatabasecenterPartnerapiV1mainOperationError
2484
+ include Google::Apis::Core::Hashable
2485
+
2486
+ # Identifies the specific error that occurred. REQUIRED
2487
+ # Corresponds to the JSON property `code`
2488
+ # @return [String]
2489
+ attr_accessor :code
2490
+
2491
+ # Additional information about the error encountered. REQUIRED
2492
+ # Corresponds to the JSON property `message`
2493
+ # @return [String]
2494
+ attr_accessor :message
2495
+
2496
+ def initialize(**args)
2497
+ update!(**args)
2498
+ end
2499
+
2500
+ # Update properties of this object
2501
+ def update!(**args)
2502
+ @code = args[:code] if args.key?(:code)
2503
+ @message = args[:message] if args.key?(:message)
2504
+ end
2505
+ end
2506
+
2507
+ #
2508
+ class StorageDatabasecenterPartnerapiV1mainRetentionSettings
2509
+ include Google::Apis::Core::Hashable
2510
+
2511
+ #
2512
+ # Corresponds to the JSON property `quantityBasedRetention`
2513
+ # @return [Fixnum]
2514
+ attr_accessor :quantity_based_retention
2515
+
2516
+ # The unit that 'retained_backups' represents.
2517
+ # Corresponds to the JSON property `retentionUnit`
2518
+ # @return [String]
2519
+ attr_accessor :retention_unit
2520
+
2521
+ #
2522
+ # Corresponds to the JSON property `timeBasedRetention`
2523
+ # @return [String]
2524
+ attr_accessor :time_based_retention
2525
+
2526
+ def initialize(**args)
2527
+ update!(**args)
2528
+ end
2529
+
2530
+ # Update properties of this object
2531
+ def update!(**args)
2532
+ @quantity_based_retention = args[:quantity_based_retention] if args.key?(:quantity_based_retention)
2533
+ @retention_unit = args[:retention_unit] if args.key?(:retention_unit)
2534
+ @time_based_retention = args[:time_based_retention] if args.key?(:time_based_retention)
2535
+ end
2536
+ end
2537
+
2538
+ # Product specification for Condor resources.
2539
+ class StorageDatabasecenterProtoCommonProduct
2540
+ include Google::Apis::Core::Hashable
2541
+
2542
+ # The specific engine that the underlying database is running.
2543
+ # Corresponds to the JSON property `engine`
2544
+ # @return [String]
2545
+ attr_accessor :engine
2546
+
2547
+ # Type of specific database product. It could be CloudSQL, AlloyDB etc..
2548
+ # Corresponds to the JSON property `type`
2549
+ # @return [String]
2550
+ attr_accessor :type
2551
+
2552
+ # Version of the underlying database engine. Example values: For MySQL, it could
2553
+ # be "8.0", "5.7" etc.. For Postgres, it could be "14", "15" etc..
2554
+ # Corresponds to the JSON property `version`
2555
+ # @return [String]
2556
+ attr_accessor :version
2557
+
2558
+ def initialize(**args)
2559
+ update!(**args)
2560
+ end
2561
+
2562
+ # Update properties of this object
2563
+ def update!(**args)
2564
+ @engine = args[:engine] if args.key?(:engine)
2565
+ @type = args[:type] if args.key?(:type)
2566
+ @version = args[:version] if args.key?(:version)
2567
+ end
2568
+ end
2569
+
2570
+ # Restrictions on STRING type values
2571
+ class StringRestrictions
2572
+ include Google::Apis::Core::Hashable
2573
+
2574
+ # The list of allowed values, if bounded. This field will be empty if there is a
2575
+ # unbounded number of allowed values.
2576
+ # Corresponds to the JSON property `allowedValues`
2577
+ # @return [Array<String>]
2578
+ attr_accessor :allowed_values
2579
+
2580
+ def initialize(**args)
2581
+ update!(**args)
2582
+ end
2583
+
2584
+ # Update properties of this object
2585
+ def update!(**args)
2586
+ @allowed_values = args[:allowed_values] if args.key?(:allowed_values)
2587
+ end
2588
+ end
2589
+
2590
+ # SupportedDatabaseFlag gives general information about a database flag, like
2591
+ # type and allowed values. This is a static value that is defined on the server
2592
+ # side, and it cannot be modified by callers. To set the Database flags on a
2593
+ # particular Instance, a caller should modify the Instance.database_flags field.
2594
+ class SupportedDatabaseFlag
2595
+ include Google::Apis::Core::Hashable
2596
+
2597
+ # Whether the database flag accepts multiple values. If true, a comma-separated
2598
+ # list of stringified values may be specified.
2599
+ # Corresponds to the JSON property `acceptsMultipleValues`
2600
+ # @return [Boolean]
2601
+ attr_accessor :accepts_multiple_values
2602
+ alias_method :accepts_multiple_values?, :accepts_multiple_values
2603
+
2604
+ # The name of the database flag, e.g. "max_allowed_packets". The is a possibly
2605
+ # key for the Instance.database_flags map field.
2606
+ # Corresponds to the JSON property `flagName`
2607
+ # @return [String]
2608
+ attr_accessor :flag_name
2609
+
2610
+ # Restrictions on INTEGER type values.
2611
+ # Corresponds to the JSON property `integerRestrictions`
2612
+ # @return [Google::Apis::AlloydbV1beta::IntegerRestrictions]
2613
+ attr_accessor :integer_restrictions
2614
+
2615
+ # The name of the flag resource, following Google Cloud conventions, e.g.: *
2616
+ # projects/`project`/locations/`location`/flags/`flag` This field currently has
2617
+ # no semantic meaning.
2618
+ # Corresponds to the JSON property `name`
2619
+ # @return [String]
2620
+ attr_accessor :name
2621
+
2622
+ # Whether setting or updating this flag on an Instance requires a database
2623
+ # restart. If a flag that requires database restart is set, the backend will
2624
+ # automatically restart the database (making sure to satisfy any availability
2625
+ # SLO's).
2626
+ # Corresponds to the JSON property `requiresDbRestart`
2627
+ # @return [Boolean]
2628
+ attr_accessor :requires_db_restart
2629
+ alias_method :requires_db_restart?, :requires_db_restart
2630
+
2631
+ # Restrictions on STRING type values
2632
+ # Corresponds to the JSON property `stringRestrictions`
2633
+ # @return [Google::Apis::AlloydbV1beta::StringRestrictions]
2634
+ attr_accessor :string_restrictions
2635
+
2636
+ # Major database engine versions for which this flag is supported.
2637
+ # Corresponds to the JSON property `supportedDbVersions`
2638
+ # @return [Array<String>]
2639
+ attr_accessor :supported_db_versions
2640
+
2641
+ #
2642
+ # Corresponds to the JSON property `valueType`
2643
+ # @return [String]
2644
+ attr_accessor :value_type
2645
+
2646
+ def initialize(**args)
2647
+ update!(**args)
2648
+ end
2649
+
2650
+ # Update properties of this object
2651
+ def update!(**args)
2652
+ @accepts_multiple_values = args[:accepts_multiple_values] if args.key?(:accepts_multiple_values)
2653
+ @flag_name = args[:flag_name] if args.key?(:flag_name)
2654
+ @integer_restrictions = args[:integer_restrictions] if args.key?(:integer_restrictions)
2655
+ @name = args[:name] if args.key?(:name)
2656
+ @requires_db_restart = args[:requires_db_restart] if args.key?(:requires_db_restart)
2657
+ @string_restrictions = args[:string_restrictions] if args.key?(:string_restrictions)
2658
+ @supported_db_versions = args[:supported_db_versions] if args.key?(:supported_db_versions)
2659
+ @value_type = args[:value_type] if args.key?(:value_type)
2660
+ end
2661
+ end
2662
+
2663
+ # A time based retention policy specifies that all backups within a certain time
2664
+ # period should be retained.
2665
+ class TimeBasedRetention
2666
+ include Google::Apis::Core::Hashable
2667
+
2668
+ # The retention period.
2669
+ # Corresponds to the JSON property `retentionPeriod`
2670
+ # @return [String]
2671
+ attr_accessor :retention_period
2672
+
2673
+ def initialize(**args)
2674
+ update!(**args)
2675
+ end
2676
+
2677
+ # Update properties of this object
2678
+ def update!(**args)
2679
+ @retention_period = args[:retention_period] if args.key?(:retention_period)
2680
+ end
2681
+ end
2682
+
2683
+ # Policy to be used while updating the instance.
2684
+ class UpdatePolicy
2685
+ include Google::Apis::Core::Hashable
2686
+
2687
+ # Mode for updating the instance.
2688
+ # Corresponds to the JSON property `mode`
2689
+ # @return [String]
2690
+ attr_accessor :mode
2691
+
2692
+ def initialize(**args)
2693
+ update!(**args)
2694
+ end
2695
+
2696
+ # Update properties of this object
2697
+ def update!(**args)
2698
+ @mode = args[:mode] if args.key?(:mode)
2699
+ end
2700
+ end
2701
+
2702
+ # Message describing User object.
2703
+ class User
2704
+ include Google::Apis::Core::Hashable
2705
+
2706
+ # Optional. List of database roles this user has. The database role strings are
2707
+ # subject to the PostgreSQL naming conventions.
2708
+ # Corresponds to the JSON property `databaseRoles`
2709
+ # @return [Array<String>]
2710
+ attr_accessor :database_roles
2711
+
2712
+ # Output only. Name of the resource in the form of projects/`project`/locations/`
2713
+ # location`/cluster/`cluster`/users/`user`.
2714
+ # Corresponds to the JSON property `name`
2715
+ # @return [String]
2716
+ attr_accessor :name
2717
+
2718
+ # Input only. Password for the user.
2719
+ # Corresponds to the JSON property `password`
2720
+ # @return [String]
2721
+ attr_accessor :password
2722
+
2723
+ # Optional. Type of this user.
2724
+ # Corresponds to the JSON property `userType`
2725
+ # @return [String]
2726
+ attr_accessor :user_type
2727
+
2728
+ def initialize(**args)
2729
+ update!(**args)
2730
+ end
2731
+
2732
+ # Update properties of this object
2733
+ def update!(**args)
2734
+ @database_roles = args[:database_roles] if args.key?(:database_roles)
2735
+ @name = args[:name] if args.key?(:name)
2736
+ @password = args[:password] if args.key?(:password)
2737
+ @user_type = args[:user_type] if args.key?(:user_type)
2738
+ end
2739
+ end
2740
+
2741
+ # The username/password for a database user. Used for specifying initial users
2742
+ # at cluster creation time.
2743
+ class UserPassword
2744
+ include Google::Apis::Core::Hashable
2745
+
2746
+ # The initial password for the user.
2747
+ # Corresponds to the JSON property `password`
2748
+ # @return [String]
2749
+ attr_accessor :password
2750
+
2751
+ # The database username.
2752
+ # Corresponds to the JSON property `user`
2753
+ # @return [String]
2754
+ attr_accessor :user
2755
+
2756
+ def initialize(**args)
2757
+ update!(**args)
2758
+ end
2759
+
2760
+ # Update properties of this object
2761
+ def update!(**args)
2762
+ @password = args[:password] if args.key?(:password)
2763
+ @user = args[:user] if args.key?(:user)
2764
+ end
2765
+ end
2766
+
2767
+ # A weekly schedule starts a backup at prescribed start times within a day, for
2768
+ # the specified days of the week. The weekly schedule message is flexible and
2769
+ # can be used to create many types of schedules. For example, to have a daily
2770
+ # backup that starts at 22:00, configure the `start_times` field to have one
2771
+ # element "22:00" and the `days_of_week` field to have all seven days of the
2772
+ # week.
2773
+ class WeeklySchedule
2774
+ include Google::Apis::Core::Hashable
2775
+
2776
+ # The days of the week to perform a backup. If this field is left empty, the
2777
+ # default of every day of the week is used.
2778
+ # Corresponds to the JSON property `daysOfWeek`
2779
+ # @return [Array<String>]
2780
+ attr_accessor :days_of_week
2781
+
2782
+ # The times during the day to start a backup. The start times are assumed to be
2783
+ # in UTC and to be an exact hour (e.g., 04:00:00). If no start times are
2784
+ # provided, a single fixed start time is chosen arbitrarily.
2785
+ # Corresponds to the JSON property `startTimes`
2786
+ # @return [Array<Google::Apis::AlloydbV1beta::GoogleTypeTimeOfDay>]
2787
+ attr_accessor :start_times
2788
+
2789
+ def initialize(**args)
2790
+ update!(**args)
2791
+ end
2792
+
2793
+ # Update properties of this object
2794
+ def update!(**args)
2795
+ @days_of_week = args[:days_of_week] if args.key?(:days_of_week)
2796
+ @start_times = args[:start_times] if args.key?(:start_times)
2797
+ end
2798
+ end
2799
+ end
2800
+ end
2801
+ end