google-apis-alloydb_v1alpha 0.1.0

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