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