google-apis-alloydb_v1alpha 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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