google-apis-sqladmin_v1beta4 0.41.0 → 0.82.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.
@@ -60,6 +60,64 @@ module Google
60
60
  end
61
61
  end
62
62
 
63
+ # Acquire SSRS lease context.
64
+ class AcquireSsrsLeaseContext
65
+ include Google::Apis::Core::Hashable
66
+
67
+ # Lease duration needed for the SSRS setup.
68
+ # Corresponds to the JSON property `duration`
69
+ # @return [String]
70
+ attr_accessor :duration
71
+
72
+ # The report database to be used for the SSRS setup.
73
+ # Corresponds to the JSON property `reportDatabase`
74
+ # @return [String]
75
+ attr_accessor :report_database
76
+
77
+ # The username to be used as the service login to connect to the report database
78
+ # for SSRS setup.
79
+ # Corresponds to the JSON property `serviceLogin`
80
+ # @return [String]
81
+ attr_accessor :service_login
82
+
83
+ # The username to be used as the setup login to connect to the database server
84
+ # for SSRS setup.
85
+ # Corresponds to the JSON property `setupLogin`
86
+ # @return [String]
87
+ attr_accessor :setup_login
88
+
89
+ def initialize(**args)
90
+ update!(**args)
91
+ end
92
+
93
+ # Update properties of this object
94
+ def update!(**args)
95
+ @duration = args[:duration] if args.key?(:duration)
96
+ @report_database = args[:report_database] if args.key?(:report_database)
97
+ @service_login = args[:service_login] if args.key?(:service_login)
98
+ @setup_login = args[:setup_login] if args.key?(:setup_login)
99
+ end
100
+ end
101
+
102
+ # Specifies options for controlling advanced machine features.
103
+ class AdvancedMachineFeatures
104
+ include Google::Apis::Core::Hashable
105
+
106
+ # The number of threads per physical core.
107
+ # Corresponds to the JSON property `threadsPerCore`
108
+ # @return [Fixnum]
109
+ attr_accessor :threads_per_core
110
+
111
+ def initialize(**args)
112
+ update!(**args)
113
+ end
114
+
115
+ # Update properties of this object
116
+ def update!(**args)
117
+ @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
118
+ end
119
+ end
120
+
63
121
  # An Admin API warning message.
64
122
  class ApiWarning
65
123
  include Google::Apis::Core::Hashable
@@ -91,6 +149,206 @@ module Google
91
149
  end
92
150
  end
93
151
 
152
+ # An available database version. It can be a major or a minor version.
153
+ class AvailableDatabaseVersion
154
+ include Google::Apis::Core::Hashable
155
+
156
+ # The database version's display name.
157
+ # Corresponds to the JSON property `displayName`
158
+ # @return [String]
159
+ attr_accessor :display_name
160
+
161
+ # The version's major version name.
162
+ # Corresponds to the JSON property `majorVersion`
163
+ # @return [String]
164
+ attr_accessor :major_version
165
+
166
+ # The database version name. For MySQL 8.0, this string provides the database
167
+ # major and minor version.
168
+ # Corresponds to the JSON property `name`
169
+ # @return [String]
170
+ attr_accessor :name
171
+
172
+ def initialize(**args)
173
+ update!(**args)
174
+ end
175
+
176
+ # Update properties of this object
177
+ def update!(**args)
178
+ @display_name = args[:display_name] if args.key?(:display_name)
179
+ @major_version = args[:major_version] if args.key?(:major_version)
180
+ @name = args[:name] if args.key?(:name)
181
+ end
182
+ end
183
+
184
+ # A backup resource. Next ID: 30
185
+ class Backup
186
+ include Google::Apis::Core::Hashable
187
+
188
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
189
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
190
+ # When the start equals the end, the interval is empty (matches no time). When
191
+ # both start and end are unspecified, the interval matches any time.
192
+ # Corresponds to the JSON property `backupInterval`
193
+ # @return [Google::Apis::SqladminV1beta4::Interval]
194
+ attr_accessor :backup_interval
195
+
196
+ # Output only. Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
197
+ # Corresponds to the JSON property `backupKind`
198
+ # @return [String]
199
+ attr_accessor :backup_kind
200
+
201
+ # Output only. The mapping to backup run resource used for IAM validations.
202
+ # Corresponds to the JSON property `backupRun`
203
+ # @return [String]
204
+ attr_accessor :backup_run
205
+
206
+ # Output only. The database version of the instance of at the time this backup
207
+ # was made.
208
+ # Corresponds to the JSON property `databaseVersion`
209
+ # @return [String]
210
+ attr_accessor :database_version
211
+
212
+ # The description of this backup.
213
+ # Corresponds to the JSON property `description`
214
+ # @return [String]
215
+ attr_accessor :description
216
+
217
+ # Database instance operation error.
218
+ # Corresponds to the JSON property `error`
219
+ # @return [Google::Apis::SqladminV1beta4::OperationError]
220
+ attr_accessor :error
221
+
222
+ # Backup expiration time. A UTC timestamp of when this resource expired.
223
+ # Corresponds to the JSON property `expiryTime`
224
+ # @return [String]
225
+ attr_accessor :expiry_time
226
+
227
+ # The name of the database instance.
228
+ # Corresponds to the JSON property `instance`
229
+ # @return [String]
230
+ attr_accessor :instance
231
+
232
+ # Optional. Output only. Timestamp in UTC of when the instance associated with
233
+ # this backup is deleted.
234
+ # Corresponds to the JSON property `instanceDeletionTime`
235
+ # @return [String]
236
+ attr_accessor :instance_deletion_time
237
+
238
+ # A Cloud SQL instance resource.
239
+ # Corresponds to the JSON property `instanceSettings`
240
+ # @return [Google::Apis::SqladminV1beta4::DatabaseInstance]
241
+ attr_accessor :instance_settings
242
+
243
+ # Output only. This is always `sql#backup`.
244
+ # Corresponds to the JSON property `kind`
245
+ # @return [String]
246
+ attr_accessor :kind
247
+
248
+ # Output only. This output contains the encryption configuration for a backup
249
+ # and the resource name of the KMS key for disk encryption.
250
+ # Corresponds to the JSON property `kmsKey`
251
+ # @return [String]
252
+ attr_accessor :kms_key
253
+
254
+ # Output only. This output contains the encryption status for a backup and the
255
+ # version of the KMS key that's used to encrypt the Cloud SQL instance.
256
+ # Corresponds to the JSON property `kmsKeyVersion`
257
+ # @return [String]
258
+ attr_accessor :kms_key_version
259
+
260
+ # The storage location of the backups. The location can be multi-regional.
261
+ # Corresponds to the JSON property `location`
262
+ # @return [String]
263
+ attr_accessor :location
264
+
265
+ # Output only. The maximum chargeable bytes for the backup.
266
+ # Corresponds to the JSON property `maxChargeableBytes`
267
+ # @return [Fixnum]
268
+ attr_accessor :max_chargeable_bytes
269
+
270
+ # Output only. The resource name of the backup. Format: projects/`project`/
271
+ # backups/`backup`.
272
+ # Corresponds to the JSON property `name`
273
+ # @return [String]
274
+ attr_accessor :name
275
+
276
+ # Output only. This status indicates whether the backup satisfies PZI. The
277
+ # status is reserved for future use.
278
+ # Corresponds to the JSON property `satisfiesPzi`
279
+ # @return [Boolean]
280
+ attr_accessor :satisfies_pzi
281
+ alias_method :satisfies_pzi?, :satisfies_pzi
282
+
283
+ # Output only. This status indicates whether the backup satisfies PZS. The
284
+ # status is reserved for future use.
285
+ # Corresponds to the JSON property `satisfiesPzs`
286
+ # @return [Boolean]
287
+ attr_accessor :satisfies_pzs
288
+ alias_method :satisfies_pzs?, :satisfies_pzs
289
+
290
+ # Output only. The URI of this resource.
291
+ # Corresponds to the JSON property `selfLink`
292
+ # @return [String]
293
+ attr_accessor :self_link
294
+
295
+ # Output only. The state of this backup.
296
+ # Corresponds to the JSON property `state`
297
+ # @return [String]
298
+ attr_accessor :state
299
+
300
+ # Output only. This output contains a backup time zone. If a Cloud SQL for SQL
301
+ # Server instance has a different time zone from the backup's time zone, then
302
+ # the restore to the instance doesn't happen.
303
+ # Corresponds to the JSON property `timeZone`
304
+ # @return [String]
305
+ attr_accessor :time_zone
306
+
307
+ # Input only. The time-to-live (TTL) interval for this resource (in days). For
308
+ # example: ttlDays:7, means 7 days from the current time. The expiration time
309
+ # can't exceed 365 days from the time that the backup is created.
310
+ # Corresponds to the JSON property `ttlDays`
311
+ # @return [Fixnum]
312
+ attr_accessor :ttl_days
313
+
314
+ # Output only. The type of this backup. The type can be "AUTOMATED", "ON_DEMAND",
315
+ # or “FINAL”.
316
+ # Corresponds to the JSON property `type`
317
+ # @return [String]
318
+ attr_accessor :type
319
+
320
+ def initialize(**args)
321
+ update!(**args)
322
+ end
323
+
324
+ # Update properties of this object
325
+ def update!(**args)
326
+ @backup_interval = args[:backup_interval] if args.key?(:backup_interval)
327
+ @backup_kind = args[:backup_kind] if args.key?(:backup_kind)
328
+ @backup_run = args[:backup_run] if args.key?(:backup_run)
329
+ @database_version = args[:database_version] if args.key?(:database_version)
330
+ @description = args[:description] if args.key?(:description)
331
+ @error = args[:error] if args.key?(:error)
332
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
333
+ @instance = args[:instance] if args.key?(:instance)
334
+ @instance_deletion_time = args[:instance_deletion_time] if args.key?(:instance_deletion_time)
335
+ @instance_settings = args[:instance_settings] if args.key?(:instance_settings)
336
+ @kind = args[:kind] if args.key?(:kind)
337
+ @kms_key = args[:kms_key] if args.key?(:kms_key)
338
+ @kms_key_version = args[:kms_key_version] if args.key?(:kms_key_version)
339
+ @location = args[:location] if args.key?(:location)
340
+ @max_chargeable_bytes = args[:max_chargeable_bytes] if args.key?(:max_chargeable_bytes)
341
+ @name = args[:name] if args.key?(:name)
342
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
343
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
344
+ @self_link = args[:self_link] if args.key?(:self_link)
345
+ @state = args[:state] if args.key?(:state)
346
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
347
+ @ttl_days = args[:ttl_days] if args.key?(:ttl_days)
348
+ @type = args[:type] if args.key?(:type)
349
+ end
350
+ end
351
+
94
352
  # Database instance backup configuration.
95
353
  class BackupConfiguration
96
354
  include Google::Apis::Core::Hashable
@@ -101,6 +359,11 @@ module Google
101
359
  # @return [Google::Apis::SqladminV1beta4::BackupRetentionSettings]
102
360
  attr_accessor :backup_retention_settings
103
361
 
362
+ # Output only. Backup tier that manages the backups for the instance.
363
+ # Corresponds to the JSON property `backupTier`
364
+ # @return [String]
365
+ attr_accessor :backup_tier
366
+
104
367
  # (MySQL only) Whether binary log is enabled. If backup configuration is
105
368
  # disabled, binarylog must be disabled as well.
106
369
  # Corresponds to the JSON property `binaryLogEnabled`
@@ -124,7 +387,7 @@ module Google
124
387
  # @return [String]
125
388
  attr_accessor :location
126
389
 
127
- # (Postgres only) Whether point in time recovery is enabled.
390
+ # Whether point in time recovery is enabled.
128
391
  # Corresponds to the JSON property `pointInTimeRecoveryEnabled`
129
392
  # @return [Boolean]
130
393
  attr_accessor :point_in_time_recovery_enabled
@@ -148,6 +411,12 @@ module Google
148
411
  # @return [Fixnum]
149
412
  attr_accessor :transaction_log_retention_days
150
413
 
414
+ # Output only. This value contains the storage location of transactional logs
415
+ # for the database for point-in-time recovery.
416
+ # Corresponds to the JSON property `transactionalLogStorageState`
417
+ # @return [String]
418
+ attr_accessor :transactional_log_storage_state
419
+
151
420
  def initialize(**args)
152
421
  update!(**args)
153
422
  end
@@ -155,6 +424,7 @@ module Google
155
424
  # Update properties of this object
156
425
  def update!(**args)
157
426
  @backup_retention_settings = args[:backup_retention_settings] if args.key?(:backup_retention_settings)
427
+ @backup_tier = args[:backup_tier] if args.key?(:backup_tier)
158
428
  @binary_log_enabled = args[:binary_log_enabled] if args.key?(:binary_log_enabled)
159
429
  @enabled = args[:enabled] if args.key?(:enabled)
160
430
  @kind = args[:kind] if args.key?(:kind)
@@ -163,6 +433,7 @@ module Google
163
433
  @replication_log_archiving_enabled = args[:replication_log_archiving_enabled] if args.key?(:replication_log_archiving_enabled)
164
434
  @start_time = args[:start_time] if args.key?(:start_time)
165
435
  @transaction_log_retention_days = args[:transaction_log_retention_days] if args.key?(:transaction_log_retention_days)
436
+ @transactional_log_storage_state = args[:transactional_log_storage_state] if args.key?(:transactional_log_storage_state)
166
437
  end
167
438
  end
168
439
 
@@ -180,6 +451,11 @@ module Google
180
451
  # @return [String]
181
452
  attr_accessor :kind
182
453
 
454
+ # The name of the backup. Format: projects/`project`/backups/`backup`
455
+ # Corresponds to the JSON property `name`
456
+ # @return [String]
457
+ attr_accessor :name
458
+
183
459
  def initialize(**args)
184
460
  update!(**args)
185
461
  end
@@ -188,6 +464,32 @@ module Google
188
464
  def update!(**args)
189
465
  @backup_id = args[:backup_id] if args.key?(:backup_id)
190
466
  @kind = args[:kind] if args.key?(:kind)
467
+ @name = args[:name] if args.key?(:name)
468
+ end
469
+ end
470
+
471
+ # Backup Reencryption Config
472
+ class BackupReencryptionConfig
473
+ include Google::Apis::Core::Hashable
474
+
475
+ # Backup re-encryption limit
476
+ # Corresponds to the JSON property `backupLimit`
477
+ # @return [Fixnum]
478
+ attr_accessor :backup_limit
479
+
480
+ # Type of backups users want to re-encrypt.
481
+ # Corresponds to the JSON property `backupType`
482
+ # @return [String]
483
+ attr_accessor :backup_type
484
+
485
+ def initialize(**args)
486
+ update!(**args)
487
+ end
488
+
489
+ # Update properties of this object
490
+ def update!(**args)
491
+ @backup_limit = args[:backup_limit] if args.key?(:backup_limit)
492
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
191
493
  end
192
494
  end
193
495
 
@@ -228,6 +530,11 @@ module Google
228
530
  # @return [String]
229
531
  attr_accessor :backup_kind
230
532
 
533
+ # Output only. The instance database version at the time this backup was made.
534
+ # Corresponds to the JSON property `databaseVersion`
535
+ # @return [String]
536
+ attr_accessor :database_version
537
+
231
538
  # The description of this run, only applicable to on-demand backups.
232
539
  # Corresponds to the JSON property `description`
233
540
  # @return [String]
@@ -281,6 +588,11 @@ module Google
281
588
  # @return [String]
282
589
  attr_accessor :location
283
590
 
591
+ # Output only. The maximum chargeable bytes for the backup.
592
+ # Corresponds to the JSON property `maxChargeableBytes`
593
+ # @return [Fixnum]
594
+ attr_accessor :max_chargeable_bytes
595
+
284
596
  # The URI of this resource.
285
597
  # Corresponds to the JSON property `selfLink`
286
598
  # @return [String]
@@ -325,6 +637,7 @@ module Google
325
637
  # Update properties of this object
326
638
  def update!(**args)
327
639
  @backup_kind = args[:backup_kind] if args.key?(:backup_kind)
640
+ @database_version = args[:database_version] if args.key?(:database_version)
328
641
  @description = args[:description] if args.key?(:description)
329
642
  @disk_encryption_configuration = args[:disk_encryption_configuration] if args.key?(:disk_encryption_configuration)
330
643
  @disk_encryption_status = args[:disk_encryption_status] if args.key?(:disk_encryption_status)
@@ -335,6 +648,7 @@ module Google
335
648
  @instance = args[:instance] if args.key?(:instance)
336
649
  @kind = args[:kind] if args.key?(:kind)
337
650
  @location = args[:location] if args.key?(:location)
651
+ @max_chargeable_bytes = args[:max_chargeable_bytes] if args.key?(:max_chargeable_bytes)
338
652
  @self_link = args[:self_link] if args.key?(:self_link)
339
653
  @start_time = args[:start_time] if args.key?(:start_time)
340
654
  @status = args[:status] if args.key?(:status)
@@ -453,6 +767,20 @@ module Google
453
767
  # @return [String]
454
768
  attr_accessor :point_in_time
455
769
 
770
+ # Optional. Copy clone and point-in-time recovery clone of a regional instance
771
+ # in the specified zones. If not specified, clone to the same secondary zone as
772
+ # the source instance. This value cannot be the same as the preferred_zone field.
773
+ # Corresponds to the JSON property `preferredSecondaryZone`
774
+ # @return [String]
775
+ attr_accessor :preferred_secondary_zone
776
+
777
+ # Optional. Copy clone and point-in-time recovery clone of an instance to the
778
+ # specified zone. If no zone is specified, clone to the same primary zone as the
779
+ # source instance.
780
+ # Corresponds to the JSON property `preferredZone`
781
+ # @return [String]
782
+ attr_accessor :preferred_zone
783
+
456
784
  def initialize(**args)
457
785
  update!(**args)
458
786
  end
@@ -466,6 +794,46 @@ module Google
466
794
  @kind = args[:kind] if args.key?(:kind)
467
795
  @pitr_timestamp_ms = args[:pitr_timestamp_ms] if args.key?(:pitr_timestamp_ms)
468
796
  @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
797
+ @preferred_secondary_zone = args[:preferred_secondary_zone] if args.key?(:preferred_secondary_zone)
798
+ @preferred_zone = args[:preferred_zone] if args.key?(:preferred_zone)
799
+ end
800
+ end
801
+
802
+ # Details of a single read pool node of a read pool.
803
+ class ConnectPoolNodeConfig
804
+ include Google::Apis::Core::Hashable
805
+
806
+ # Output only. The DNS name of the read pool node.
807
+ # Corresponds to the JSON property `dnsName`
808
+ # @return [String]
809
+ attr_accessor :dns_name
810
+
811
+ # Output only. The list of DNS names used by this read pool node.
812
+ # Corresponds to the JSON property `dnsNames`
813
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
814
+ attr_accessor :dns_names
815
+
816
+ # Output only. Mappings containing IP addresses that can be used to connect to
817
+ # the read pool node.
818
+ # Corresponds to the JSON property `ipAddresses`
819
+ # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
820
+ attr_accessor :ip_addresses
821
+
822
+ # Output only. The name of the read pool node. Doesn't include the project ID.
823
+ # Corresponds to the JSON property `name`
824
+ # @return [String]
825
+ attr_accessor :name
826
+
827
+ def initialize(**args)
828
+ update!(**args)
829
+ end
830
+
831
+ # Update properties of this object
832
+ def update!(**args)
833
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
834
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
835
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
836
+ @name = args[:name] if args.key?(:name)
469
837
  end
470
838
  end
471
839
 
@@ -480,6 +848,11 @@ module Google
480
848
  # @return [String]
481
849
  attr_accessor :backend_type
482
850
 
851
+ # Custom subject alternative names for the server certificate.
852
+ # Corresponds to the JSON property `customSubjectAlternativeNames`
853
+ # @return [Array<String>]
854
+ attr_accessor :custom_subject_alternative_names
855
+
483
856
  # The database engine type and version. The `databaseVersion` field cannot be
484
857
  # changed after instance creation. MySQL instances: `MYSQL_8_0`, `MYSQL_5_7` (
485
858
  # default), or `MYSQL_5_6`. PostgreSQL instances: `POSTGRES_9_6`, `POSTGRES_10`,
@@ -492,6 +865,16 @@ module Google
492
865
  # @return [String]
493
866
  attr_accessor :database_version
494
867
 
868
+ # The dns name of the instance.
869
+ # Corresponds to the JSON property `dnsName`
870
+ # @return [String]
871
+ attr_accessor :dns_name
872
+
873
+ # Output only. The list of DNS names used by this instance.
874
+ # Corresponds to the JSON property `dnsNames`
875
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
876
+ attr_accessor :dns_names
877
+
495
878
  # The assigned IP addresses for the instance.
496
879
  # Corresponds to the JSON property `ipAddresses`
497
880
  # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
@@ -502,6 +885,23 @@ module Google
502
885
  # @return [String]
503
886
  attr_accessor :kind
504
887
 
888
+ # The number of read pool nodes in a read pool.
889
+ # Corresponds to the JSON property `nodeCount`
890
+ # @return [Fixnum]
891
+ attr_accessor :node_count
892
+
893
+ # Output only. Entries containing information about each read pool node of the
894
+ # read pool.
895
+ # Corresponds to the JSON property `nodes`
896
+ # @return [Array<Google::Apis::SqladminV1beta4::ConnectPoolNodeConfig>]
897
+ attr_accessor :nodes
898
+
899
+ # Whether PSC connectivity is enabled for this instance.
900
+ # Corresponds to the JSON property `pscEnabled`
901
+ # @return [Boolean]
902
+ attr_accessor :psc_enabled
903
+ alias_method :psc_enabled?, :psc_enabled
904
+
505
905
  # The cloud region for the instance. e.g. `us-central1`, `europe-west1`. The
506
906
  # region cannot be changed after instance creation.
507
907
  # Corresponds to the JSON property `region`
@@ -513,6 +913,11 @@ module Google
513
913
  # @return [Google::Apis::SqladminV1beta4::SslCert]
514
914
  attr_accessor :server_ca_cert
515
915
 
916
+ # Specify what type of CA is used for the server certificate.
917
+ # Corresponds to the JSON property `serverCaMode`
918
+ # @return [String]
919
+ attr_accessor :server_ca_mode
920
+
516
921
  def initialize(**args)
517
922
  update!(**args)
518
923
  end
@@ -520,11 +925,91 @@ module Google
520
925
  # Update properties of this object
521
926
  def update!(**args)
522
927
  @backend_type = args[:backend_type] if args.key?(:backend_type)
928
+ @custom_subject_alternative_names = args[:custom_subject_alternative_names] if args.key?(:custom_subject_alternative_names)
523
929
  @database_version = args[:database_version] if args.key?(:database_version)
930
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
931
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
524
932
  @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
525
933
  @kind = args[:kind] if args.key?(:kind)
934
+ @node_count = args[:node_count] if args.key?(:node_count)
935
+ @nodes = args[:nodes] if args.key?(:nodes)
936
+ @psc_enabled = args[:psc_enabled] if args.key?(:psc_enabled)
526
937
  @region = args[:region] if args.key?(:region)
527
938
  @server_ca_cert = args[:server_ca_cert] if args.key?(:server_ca_cert)
939
+ @server_ca_mode = args[:server_ca_mode] if args.key?(:server_ca_mode)
940
+ end
941
+ end
942
+
943
+ # The managed connection pooling configuration.
944
+ class ConnectionPoolConfig
945
+ include Google::Apis::Core::Hashable
946
+
947
+ # Whether managed connection pooling is enabled.
948
+ # Corresponds to the JSON property `connectionPoolingEnabled`
949
+ # @return [Boolean]
950
+ attr_accessor :connection_pooling_enabled
951
+ alias_method :connection_pooling_enabled?, :connection_pooling_enabled
952
+
953
+ # Optional. List of connection pool configuration flags
954
+ # Corresponds to the JSON property `flags`
955
+ # @return [Array<Google::Apis::SqladminV1beta4::ConnectionPoolFlags>]
956
+ attr_accessor :flags
957
+
958
+ def initialize(**args)
959
+ update!(**args)
960
+ end
961
+
962
+ # Update properties of this object
963
+ def update!(**args)
964
+ @connection_pooling_enabled = args[:connection_pooling_enabled] if args.key?(:connection_pooling_enabled)
965
+ @flags = args[:flags] if args.key?(:flags)
966
+ end
967
+ end
968
+
969
+ # Connection pool flags for Cloud SQL instances managed connection pool
970
+ # configuration.
971
+ class ConnectionPoolFlags
972
+ include Google::Apis::Core::Hashable
973
+
974
+ # Required. The name of the flag.
975
+ # Corresponds to the JSON property `name`
976
+ # @return [String]
977
+ attr_accessor :name
978
+
979
+ # Required. The value of the flag. Boolean flags are set to `on` for true and `
980
+ # off` for false. This field must be omitted if the flag doesn't take a value.
981
+ # Corresponds to the JSON property `value`
982
+ # @return [String]
983
+ attr_accessor :value
984
+
985
+ def initialize(**args)
986
+ update!(**args)
987
+ end
988
+
989
+ # Update properties of this object
990
+ def update!(**args)
991
+ @name = args[:name] if args.key?(:name)
992
+ @value = args[:value] if args.key?(:value)
993
+ end
994
+ end
995
+
996
+ # Data cache configurations.
997
+ class DataCacheConfig
998
+ include Google::Apis::Core::Hashable
999
+
1000
+ # Whether data cache is enabled for the instance.
1001
+ # Corresponds to the JSON property `dataCacheEnabled`
1002
+ # @return [Boolean]
1003
+ attr_accessor :data_cache_enabled
1004
+ alias_method :data_cache_enabled?, :data_cache_enabled
1005
+
1006
+ def initialize(**args)
1007
+ update!(**args)
1008
+ end
1009
+
1010
+ # Update properties of this object
1011
+ def update!(**args)
1012
+ @data_cache_enabled = args[:data_cache_enabled] if args.key?(:data_cache_enabled)
528
1013
  end
529
1014
  end
530
1015
 
@@ -630,7 +1115,7 @@ module Google
630
1115
  class DatabaseInstance
631
1116
  include Google::Apis::Core::Hashable
632
1117
 
633
- # List all maintenance versions applicable on the instance
1118
+ # Output only. List all maintenance versions applicable on the instance
634
1119
  # Corresponds to the JSON property `availableMaintenanceVersions`
635
1120
  # @return [Array<String>]
636
1121
  attr_accessor :available_maintenance_versions
@@ -684,6 +1169,16 @@ module Google
684
1169
  # @return [Google::Apis::SqladminV1beta4::DiskEncryptionStatus]
685
1170
  attr_accessor :disk_encryption_status
686
1171
 
1172
+ # Output only. The dns name of the instance.
1173
+ # Corresponds to the JSON property `dnsName`
1174
+ # @return [String]
1175
+ attr_accessor :dns_name
1176
+
1177
+ # Output only. The list of DNS names used by this instance.
1178
+ # Corresponds to the JSON property `dnsNames`
1179
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
1180
+ attr_accessor :dns_names
1181
+
687
1182
  # This field is deprecated and will be removed from a future version of the API.
688
1183
  # Use the `settings.settingsVersion` field instead.
689
1184
  # Corresponds to the JSON property `etag`
@@ -703,6 +1198,19 @@ module Google
703
1198
  # @return [String]
704
1199
  attr_accessor :gce_zone
705
1200
 
1201
+ # Gemini instance configuration.
1202
+ # Corresponds to the JSON property `geminiConfig`
1203
+ # @return [Google::Apis::SqladminV1beta4::GeminiInstanceConfig]
1204
+ attr_accessor :gemini_config
1205
+
1206
+ # Input only. Determines whether an in-place major version upgrade of replicas
1207
+ # happens when an in-place major version upgrade of a primary instance is
1208
+ # initiated.
1209
+ # Corresponds to the JSON property `includeReplicasForMajorVersionUpgrade`
1210
+ # @return [Boolean]
1211
+ attr_accessor :include_replicas_for_major_version_upgrade
1212
+ alias_method :include_replicas_for_major_version_upgrade?, :include_replicas_for_major_version_upgrade
1213
+
706
1214
  # The instance type.
707
1215
  # Corresponds to the JSON property `instanceType`
708
1216
  # @return [String]
@@ -744,6 +1252,17 @@ module Google
744
1252
  # @return [String]
745
1253
  attr_accessor :name
746
1254
 
1255
+ # The number of read pool nodes in a read pool.
1256
+ # Corresponds to the JSON property `nodeCount`
1257
+ # @return [Fixnum]
1258
+ attr_accessor :node_count
1259
+
1260
+ # Output only. Entries containing information about each read pool node of the
1261
+ # read pool.
1262
+ # Corresponds to the JSON property `nodes`
1263
+ # @return [Array<Google::Apis::SqladminV1beta4::PoolNodeConfig>]
1264
+ attr_accessor :nodes
1265
+
747
1266
  # On-premises instance configuration.
748
1267
  # Corresponds to the JSON property `onPremisesConfiguration`
749
1268
  # @return [Google::Apis::SqladminV1beta4::OnPremisesConfiguration]
@@ -754,16 +1273,26 @@ module Google
754
1273
  # @return [Google::Apis::SqladminV1beta4::SqlOutOfDiskReport]
755
1274
  attr_accessor :out_of_disk_report
756
1275
 
1276
+ # Output only. DEPRECATED: please use write_endpoint instead.
1277
+ # Corresponds to the JSON property `primaryDnsName`
1278
+ # @return [String]
1279
+ attr_accessor :primary_dns_name
1280
+
757
1281
  # The project ID of the project containing the Cloud SQL instance. The Google
758
1282
  # apps domain is prefixed if applicable.
759
1283
  # Corresponds to the JSON property `project`
760
1284
  # @return [String]
761
1285
  attr_accessor :project
762
1286
 
763
- # The geographical region. Can be: * `us-central` (`FIRST_GEN` instances only) *
764
- # `us-central1` (`SECOND_GEN` instances only) * `asia-east1` or `europe-west1`.
765
- # Defaults to `us-central` or `us-central1` depending on the instance type. The
766
- # region cannot be changed after instance creation.
1287
+ # Output only. The link to service attachment of PSC instance.
1288
+ # Corresponds to the JSON property `pscServiceAttachmentLink`
1289
+ # @return [String]
1290
+ attr_accessor :psc_service_attachment_link
1291
+
1292
+ # The geographical region of the Cloud SQL instance. It can be one of the [
1293
+ # regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where
1294
+ # Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-
1295
+ # central1`. The default value is `us-central1`.
767
1296
  # Corresponds to the JSON property `region`
768
1297
  # @return [String]
769
1298
  attr_accessor :region
@@ -778,13 +1307,28 @@ module Google
778
1307
  # @return [Array<String>]
779
1308
  attr_accessor :replica_names
780
1309
 
1310
+ # A primary instance and disaster recovery (DR) replica pair. A DR replica is a
1311
+ # cross-region replica that you designate for failover in the event that the
1312
+ # primary instance has regional failure. Applicable to MySQL and PostgreSQL.
1313
+ # Corresponds to the JSON property `replicationCluster`
1314
+ # @return [Google::Apis::SqladminV1beta4::ReplicationCluster]
1315
+ attr_accessor :replication_cluster
1316
+
781
1317
  # Initial root password. Use only on creation. You must set root passwords
782
1318
  # before you can connect to PostgreSQL instances.
783
1319
  # Corresponds to the JSON property `rootPassword`
784
1320
  # @return [String]
785
1321
  attr_accessor :root_password
786
1322
 
787
- # The status indicating if instance satisfiesPzs. Reserved for future use.
1323
+ # Output only. This status indicates whether the instance satisfies PZI. The
1324
+ # status is reserved for future use.
1325
+ # Corresponds to the JSON property `satisfiesPzi`
1326
+ # @return [Boolean]
1327
+ attr_accessor :satisfies_pzi
1328
+ alias_method :satisfies_pzi?, :satisfies_pzi
1329
+
1330
+ # This status indicates whether the instance satisfies PZS. The status is
1331
+ # reserved for future use.
788
1332
  # Corresponds to the JSON property `satisfiesPzs`
789
1333
  # @return [Boolean]
790
1334
  attr_accessor :satisfies_pzs
@@ -824,6 +1368,11 @@ module Google
824
1368
  # @return [Google::Apis::SqladminV1beta4::Settings]
825
1369
  attr_accessor :settings
826
1370
 
1371
+ # The SQL network architecture for the instance.
1372
+ # Corresponds to the JSON property `sqlNetworkArchitecture`
1373
+ # @return [String]
1374
+ attr_accessor :sql_network_architecture
1375
+
827
1376
  # The current serving state of the Cloud SQL instance.
828
1377
  # Corresponds to the JSON property `state`
829
1378
  # @return [String]
@@ -834,6 +1383,33 @@ module Google
834
1383
  # @return [Array<String>]
835
1384
  attr_accessor :suspension_reason
836
1385
 
1386
+ # Input only. Whether Cloud SQL is enabled to switch storing point-in-time
1387
+ # recovery log files from a data disk to Cloud Storage.
1388
+ # Corresponds to the JSON property `switchTransactionLogsToCloudStorageEnabled`
1389
+ # @return [Boolean]
1390
+ attr_accessor :switch_transaction_logs_to_cloud_storage_enabled
1391
+ alias_method :switch_transaction_logs_to_cloud_storage_enabled?, :switch_transaction_logs_to_cloud_storage_enabled
1392
+
1393
+ # Optional. Input only. Immutable. Tag keys and tag values that are bound to
1394
+ # this instance. You must represent each item in the map as: `"" : ""`. For
1395
+ # example, a single resource can have the following tags: ``` "123/environment":
1396
+ # "production", "123/costCenter": "marketing", ``` For more information on tag
1397
+ # creation and management, see https://cloud.google.com/resource-manager/docs/
1398
+ # tags/tags-overview.
1399
+ # Corresponds to the JSON property `tags`
1400
+ # @return [Hash<String,String>]
1401
+ attr_accessor :tags
1402
+
1403
+ # Output only. All database versions that are available for upgrade.
1404
+ # Corresponds to the JSON property `upgradableDatabaseVersions`
1405
+ # @return [Array<Google::Apis::SqladminV1beta4::AvailableDatabaseVersion>]
1406
+ attr_accessor :upgradable_database_versions
1407
+
1408
+ # Output only. The dns name of the primary instance in a replication group.
1409
+ # Corresponds to the JSON property `writeEndpoint`
1410
+ # @return [String]
1411
+ attr_accessor :write_endpoint
1412
+
837
1413
  def initialize(**args)
838
1414
  update!(**args)
839
1415
  end
@@ -849,9 +1425,13 @@ module Google
849
1425
  @database_version = args[:database_version] if args.key?(:database_version)
850
1426
  @disk_encryption_configuration = args[:disk_encryption_configuration] if args.key?(:disk_encryption_configuration)
851
1427
  @disk_encryption_status = args[:disk_encryption_status] if args.key?(:disk_encryption_status)
1428
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
1429
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
852
1430
  @etag = args[:etag] if args.key?(:etag)
853
1431
  @failover_replica = args[:failover_replica] if args.key?(:failover_replica)
854
1432
  @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
1433
+ @gemini_config = args[:gemini_config] if args.key?(:gemini_config)
1434
+ @include_replicas_for_major_version_upgrade = args[:include_replicas_for_major_version_upgrade] if args.key?(:include_replicas_for_major_version_upgrade)
855
1435
  @instance_type = args[:instance_type] if args.key?(:instance_type)
856
1436
  @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
857
1437
  @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
@@ -860,13 +1440,19 @@ module Google
860
1440
  @master_instance_name = args[:master_instance_name] if args.key?(:master_instance_name)
861
1441
  @max_disk_size = args[:max_disk_size] if args.key?(:max_disk_size)
862
1442
  @name = args[:name] if args.key?(:name)
1443
+ @node_count = args[:node_count] if args.key?(:node_count)
1444
+ @nodes = args[:nodes] if args.key?(:nodes)
863
1445
  @on_premises_configuration = args[:on_premises_configuration] if args.key?(:on_premises_configuration)
864
1446
  @out_of_disk_report = args[:out_of_disk_report] if args.key?(:out_of_disk_report)
1447
+ @primary_dns_name = args[:primary_dns_name] if args.key?(:primary_dns_name)
865
1448
  @project = args[:project] if args.key?(:project)
1449
+ @psc_service_attachment_link = args[:psc_service_attachment_link] if args.key?(:psc_service_attachment_link)
866
1450
  @region = args[:region] if args.key?(:region)
867
1451
  @replica_configuration = args[:replica_configuration] if args.key?(:replica_configuration)
868
1452
  @replica_names = args[:replica_names] if args.key?(:replica_names)
1453
+ @replication_cluster = args[:replication_cluster] if args.key?(:replication_cluster)
869
1454
  @root_password = args[:root_password] if args.key?(:root_password)
1455
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
870
1456
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
871
1457
  @scheduled_maintenance = args[:scheduled_maintenance] if args.key?(:scheduled_maintenance)
872
1458
  @secondary_gce_zone = args[:secondary_gce_zone] if args.key?(:secondary_gce_zone)
@@ -874,8 +1460,13 @@ module Google
874
1460
  @server_ca_cert = args[:server_ca_cert] if args.key?(:server_ca_cert)
875
1461
  @service_account_email_address = args[:service_account_email_address] if args.key?(:service_account_email_address)
876
1462
  @settings = args[:settings] if args.key?(:settings)
1463
+ @sql_network_architecture = args[:sql_network_architecture] if args.key?(:sql_network_architecture)
877
1464
  @state = args[:state] if args.key?(:state)
878
1465
  @suspension_reason = args[:suspension_reason] if args.key?(:suspension_reason)
1466
+ @switch_transaction_logs_to_cloud_storage_enabled = args[:switch_transaction_logs_to_cloud_storage_enabled] if args.key?(:switch_transaction_logs_to_cloud_storage_enabled)
1467
+ @tags = args[:tags] if args.key?(:tags)
1468
+ @upgradable_database_versions = args[:upgradable_database_versions] if args.key?(:upgradable_database_versions)
1469
+ @write_endpoint = args[:write_endpoint] if args.key?(:write_endpoint)
879
1470
  end
880
1471
 
881
1472
  # The name and status of the failover replica.
@@ -934,6 +1525,33 @@ module Google
934
1525
  end
935
1526
  end
936
1527
 
1528
+ # This context is used to demote an existing standalone instance to be a Cloud
1529
+ # SQL read replica for an external database server.
1530
+ class DemoteContext
1531
+ include Google::Apis::Core::Hashable
1532
+
1533
+ # This is always `sql#demoteContext`.
1534
+ # Corresponds to the JSON property `kind`
1535
+ # @return [String]
1536
+ attr_accessor :kind
1537
+
1538
+ # Required. The name of the instance which acts as an on-premises primary
1539
+ # instance in the replication setup.
1540
+ # Corresponds to the JSON property `sourceRepresentativeInstanceName`
1541
+ # @return [String]
1542
+ attr_accessor :source_representative_instance_name
1543
+
1544
+ def initialize(**args)
1545
+ update!(**args)
1546
+ end
1547
+
1548
+ # Update properties of this object
1549
+ def update!(**args)
1550
+ @kind = args[:kind] if args.key?(:kind)
1551
+ @source_representative_instance_name = args[:source_representative_instance_name] if args.key?(:source_representative_instance_name)
1552
+ end
1553
+ end
1554
+
937
1555
  # Read-replica configuration for connecting to the on-premises primary instance.
938
1556
  class DemoteMasterConfiguration
939
1557
  include Google::Apis::Core::Hashable
@@ -1024,7 +1642,7 @@ module Google
1024
1642
  # @return [String]
1025
1643
  attr_accessor :client_certificate
1026
1644
 
1027
- # PEM representation of the replica's private key. The corresponsing public key
1645
+ # PEM representation of the replica's private key. The corresponding public key
1028
1646
  # is encoded in the client's certificate. The format of the replica's private
1029
1647
  # key can be either PKCS #1 or PKCS #8.
1030
1648
  # Corresponds to the JSON property `clientKey`
@@ -1134,10 +1752,59 @@ module Google
1134
1752
  # @return [String]
1135
1753
  attr_accessor :kind
1136
1754
 
1137
- # KMS key version used to encrypt the Cloud SQL instance resource
1138
- # Corresponds to the JSON property `kmsKeyVersionName`
1139
- # @return [String]
1140
- attr_accessor :kms_key_version_name
1755
+ # KMS key version used to encrypt the Cloud SQL instance resource
1756
+ # Corresponds to the JSON property `kmsKeyVersionName`
1757
+ # @return [String]
1758
+ attr_accessor :kms_key_version_name
1759
+
1760
+ def initialize(**args)
1761
+ update!(**args)
1762
+ end
1763
+
1764
+ # Update properties of this object
1765
+ def update!(**args)
1766
+ @kind = args[:kind] if args.key?(:kind)
1767
+ @kms_key_version_name = args[:kms_key_version_name] if args.key?(:kms_key_version_name)
1768
+ end
1769
+ end
1770
+
1771
+ # DNS metadata.
1772
+ class DnsNameMapping
1773
+ include Google::Apis::Core::Hashable
1774
+
1775
+ # Output only. The connection type of the DNS name.
1776
+ # Corresponds to the JSON property `connectionType`
1777
+ # @return [String]
1778
+ attr_accessor :connection_type
1779
+
1780
+ # Output only. The scope that the DNS name applies to.
1781
+ # Corresponds to the JSON property `dnsScope`
1782
+ # @return [String]
1783
+ attr_accessor :dns_scope
1784
+
1785
+ # The DNS name.
1786
+ # Corresponds to the JSON property `name`
1787
+ # @return [String]
1788
+ attr_accessor :name
1789
+
1790
+ def initialize(**args)
1791
+ update!(**args)
1792
+ end
1793
+
1794
+ # Update properties of this object
1795
+ def update!(**args)
1796
+ @connection_type = args[:connection_type] if args.key?(:connection_type)
1797
+ @dns_scope = args[:dns_scope] if args.key?(:dns_scope)
1798
+ @name = args[:name] if args.key?(:name)
1799
+ end
1800
+ end
1801
+
1802
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1803
+ # messages in your APIs. A typical example is to use it as the request or the
1804
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1805
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1806
+ class Empty
1807
+ include Google::Apis::Core::Hashable
1141
1808
 
1142
1809
  def initialize(**args)
1143
1810
  update!(**args)
@@ -1145,8 +1812,6 @@ module Google
1145
1812
 
1146
1813
  # Update properties of this object
1147
1814
  def update!(**args)
1148
- @kind = args[:kind] if args.key?(:kind)
1149
- @kms_key_version_name = args[:kms_key_version_name] if args.key?(:kms_key_version_name)
1150
1815
  end
1151
1816
  end
1152
1817
 
@@ -1168,11 +1833,14 @@ module Google
1168
1833
  # database is specified, all databases are exported, except for the `mysql`
1169
1834
  # system database. If `fileType` is `CSV`, you can specify one database, either
1170
1835
  # by using this property or by using the `csvExportOptions.selectQuery` property,
1171
- # which takes precedence over this property. `PostgreSQL instances:` You must
1172
- # specify one database to be exported. If `fileType` is `CSV`, this database
1173
- # must match the one specified in the `csvExportOptions.selectQuery` property. `
1174
- # SQL Server instances:` You must specify one database to be exported, and the `
1175
- # fileType` must be `BAK`.
1836
+ # which takes precedence over this property. `PostgreSQL instances:` If you don'
1837
+ # t specify a database by name, all user databases in the instance are exported.
1838
+ # This excludes system databases and Cloud SQL databases used to manage internal
1839
+ # operations. Exporting all user databases is only available for directory-
1840
+ # formatted parallel export. If `fileType` is `CSV`, this database must match
1841
+ # the one specified in the `csvExportOptions.selectQuery` property. `SQL Server
1842
+ # instances:` You must specify one database to be exported, and the `fileType`
1843
+ # must be `BAK`.
1176
1844
  # Corresponds to the JSON property `databases`
1177
1845
  # @return [Array<String>]
1178
1846
  attr_accessor :databases
@@ -1187,7 +1855,7 @@ module Google
1187
1855
  # @return [String]
1188
1856
  attr_accessor :kind
1189
1857
 
1190
- # Option for export offload.
1858
+ # Whether to perform a serverless export.
1191
1859
  # Corresponds to the JSON property `offload`
1192
1860
  # @return [Boolean]
1193
1861
  attr_accessor :offload
@@ -1198,6 +1866,11 @@ module Google
1198
1866
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions]
1199
1867
  attr_accessor :sql_export_options
1200
1868
 
1869
+ # Optional. Export parameters specific to SQL Server TDE certificates
1870
+ # Corresponds to the JSON property `tdeExportOptions`
1871
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::TdeExportOptions]
1872
+ attr_accessor :tde_export_options
1873
+
1201
1874
  # The path to the file in Google Cloud Storage where the export will be stored.
1202
1875
  # The URI is in the form `gs://bucketName/fileName`. If the file already exists,
1203
1876
  # the request succeeds, but the operation fails. If `fileType` is `SQL` and the
@@ -1219,6 +1892,7 @@ module Google
1219
1892
  @kind = args[:kind] if args.key?(:kind)
1220
1893
  @offload = args[:offload] if args.key?(:offload)
1221
1894
  @sql_export_options = args[:sql_export_options] if args.key?(:sql_export_options)
1895
+ @tde_export_options = args[:tde_export_options] if args.key?(:tde_export_options)
1222
1896
  @uri = args[:uri] if args.key?(:uri)
1223
1897
  end
1224
1898
 
@@ -1226,6 +1900,41 @@ module Google
1226
1900
  class BakExportOptions
1227
1901
  include Google::Apis::Core::Hashable
1228
1902
 
1903
+ # Type of this bak file will be export, FULL or DIFF, SQL Server only
1904
+ # Corresponds to the JSON property `bakType`
1905
+ # @return [String]
1906
+ attr_accessor :bak_type
1907
+
1908
+ # Deprecated: copy_only is deprecated. Use differential_base instead
1909
+ # Corresponds to the JSON property `copyOnly`
1910
+ # @return [Boolean]
1911
+ attr_accessor :copy_only
1912
+ alias_method :copy_only?, :copy_only
1913
+
1914
+ # Whether or not the backup can be used as a differential base copy_only backup
1915
+ # can not be served as differential base
1916
+ # Corresponds to the JSON property `differentialBase`
1917
+ # @return [Boolean]
1918
+ attr_accessor :differential_base
1919
+ alias_method :differential_base?, :differential_base
1920
+
1921
+ # Optional. The end timestamp when transaction log will be included in the
1922
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
1923
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
1924
+ # until current time will be included. Only applied to Cloud SQL for SQL Server.
1925
+ # Corresponds to the JSON property `exportLogEndTime`
1926
+ # @return [String]
1927
+ attr_accessor :export_log_end_time
1928
+
1929
+ # Optional. The begin timestamp when transaction log will be included in the
1930
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
1931
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
1932
+ # from the beginning of retention period will be included. Only applied to Cloud
1933
+ # SQL for SQL Server.
1934
+ # Corresponds to the JSON property `exportLogStartTime`
1935
+ # @return [String]
1936
+ attr_accessor :export_log_start_time
1937
+
1229
1938
  # Option for specifying how many stripes to use for the export. If blank, and
1230
1939
  # the value of the striped field is true, the number of stripes is automatically
1231
1940
  # chosen.
@@ -1245,6 +1954,11 @@ module Google
1245
1954
 
1246
1955
  # Update properties of this object
1247
1956
  def update!(**args)
1957
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
1958
+ @copy_only = args[:copy_only] if args.key?(:copy_only)
1959
+ @differential_base = args[:differential_base] if args.key?(:differential_base)
1960
+ @export_log_end_time = args[:export_log_end_time] if args.key?(:export_log_end_time)
1961
+ @export_log_start_time = args[:export_log_start_time] if args.key?(:export_log_start_time)
1248
1962
  @stripe_count = args[:stripe_count] if args.key?(:stripe_count)
1249
1963
  @striped = args[:striped] if args.key?(:striped)
1250
1964
  end
@@ -1305,6 +2019,17 @@ module Google
1305
2019
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::MysqlExportOptions]
1306
2020
  attr_accessor :mysql_export_options
1307
2021
 
2022
+ # Optional. Whether or not the export should be parallel.
2023
+ # Corresponds to the JSON property `parallel`
2024
+ # @return [Boolean]
2025
+ attr_accessor :parallel
2026
+ alias_method :parallel?, :parallel
2027
+
2028
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2029
+ # Corresponds to the JSON property `postgresExportOptions`
2030
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::PostgresExportOptions]
2031
+ attr_accessor :postgres_export_options
2032
+
1308
2033
  # Export only schemas.
1309
2034
  # Corresponds to the JSON property `schemaOnly`
1310
2035
  # @return [Boolean]
@@ -1318,6 +2043,11 @@ module Google
1318
2043
  # @return [Array<String>]
1319
2044
  attr_accessor :tables
1320
2045
 
2046
+ # Optional. The number of threads to use for parallel export.
2047
+ # Corresponds to the JSON property `threads`
2048
+ # @return [Fixnum]
2049
+ attr_accessor :threads
2050
+
1321
2051
  def initialize(**args)
1322
2052
  update!(**args)
1323
2053
  end
@@ -1325,8 +2055,11 @@ module Google
1325
2055
  # Update properties of this object
1326
2056
  def update!(**args)
1327
2057
  @mysql_export_options = args[:mysql_export_options] if args.key?(:mysql_export_options)
2058
+ @parallel = args[:parallel] if args.key?(:parallel)
2059
+ @postgres_export_options = args[:postgres_export_options] if args.key?(:postgres_export_options)
1328
2060
  @schema_only = args[:schema_only] if args.key?(:schema_only)
1329
2061
  @tables = args[:tables] if args.key?(:tables)
2062
+ @threads = args[:threads] if args.key?(:threads)
1330
2063
  end
1331
2064
 
1332
2065
  # Options for exporting from MySQL.
@@ -1351,6 +2084,95 @@ module Google
1351
2084
  @master_data = args[:master_data] if args.key?(:master_data)
1352
2085
  end
1353
2086
  end
2087
+
2088
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2089
+ class PostgresExportOptions
2090
+ include Google::Apis::Core::Hashable
2091
+
2092
+ # Optional. Use this option to include DROP <object> SQL statements. Use these
2093
+ # statements to delete database objects before running the import operation.
2094
+ # Corresponds to the JSON property `clean`
2095
+ # @return [Boolean]
2096
+ attr_accessor :clean
2097
+ alias_method :clean?, :clean
2098
+
2099
+ # Optional. Option to include an IF EXISTS SQL statement with each DROP
2100
+ # statement produced by clean.
2101
+ # Corresponds to the JSON property `ifExists`
2102
+ # @return [Boolean]
2103
+ attr_accessor :if_exists
2104
+ alias_method :if_exists?, :if_exists
2105
+
2106
+ def initialize(**args)
2107
+ update!(**args)
2108
+ end
2109
+
2110
+ # Update properties of this object
2111
+ def update!(**args)
2112
+ @clean = args[:clean] if args.key?(:clean)
2113
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2114
+ end
2115
+ end
2116
+ end
2117
+
2118
+ # Optional. Export parameters specific to SQL Server TDE certificates
2119
+ class TdeExportOptions
2120
+ include Google::Apis::Core::Hashable
2121
+
2122
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2123
+ # fileName. The instance must have write access to the location. Applicable only
2124
+ # for SQL Server instances.
2125
+ # Corresponds to the JSON property `certificatePath`
2126
+ # @return [String]
2127
+ attr_accessor :certificate_path
2128
+
2129
+ # Required. Certificate name. Applicable only for SQL Server instances.
2130
+ # Corresponds to the JSON property `name`
2131
+ # @return [String]
2132
+ attr_accessor :name
2133
+
2134
+ # Required. Password that encrypts the private key.
2135
+ # Corresponds to the JSON property `privateKeyPassword`
2136
+ # @return [String]
2137
+ attr_accessor :private_key_password
2138
+
2139
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2140
+ # fileName. The instance must have write access to the location. Applicable only
2141
+ # for SQL Server instances.
2142
+ # Corresponds to the JSON property `privateKeyPath`
2143
+ # @return [String]
2144
+ attr_accessor :private_key_path
2145
+
2146
+ def initialize(**args)
2147
+ update!(**args)
2148
+ end
2149
+
2150
+ # Update properties of this object
2151
+ def update!(**args)
2152
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2153
+ @name = args[:name] if args.key?(:name)
2154
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2155
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2156
+ end
2157
+ end
2158
+ end
2159
+
2160
+ # The selected object that Cloud SQL migrates.
2161
+ class ExternalSyncSelectedObject
2162
+ include Google::Apis::Core::Hashable
2163
+
2164
+ # The name of the database that Cloud SQL migrates.
2165
+ # Corresponds to the JSON property `database`
2166
+ # @return [String]
2167
+ attr_accessor :database
2168
+
2169
+ def initialize(**args)
2170
+ update!(**args)
2171
+ end
2172
+
2173
+ # Update properties of this object
2174
+ def update!(**args)
2175
+ @database = args[:database] if args.key?(:database)
1354
2176
  end
1355
2177
  end
1356
2178
 
@@ -1406,6 +2228,11 @@ module Google
1406
2228
  # @return [Array<String>]
1407
2229
  attr_accessor :applies_to
1408
2230
 
2231
+ # Scope of flag.
2232
+ # Corresponds to the JSON property `flagScope`
2233
+ # @return [String]
2234
+ attr_accessor :flag_scope
2235
+
1409
2236
  # Whether or not the flag is considered in beta.
1410
2237
  # Corresponds to the JSON property `inBeta`
1411
2238
  # @return [Boolean]
@@ -1433,6 +2260,16 @@ module Google
1433
2260
  # @return [String]
1434
2261
  attr_accessor :name
1435
2262
 
2263
+ # Recommended flag value in integer format for UI display.
2264
+ # Corresponds to the JSON property `recommendedIntValue`
2265
+ # @return [Fixnum]
2266
+ attr_accessor :recommended_int_value
2267
+
2268
+ # Recommended flag value in string format for UI display.
2269
+ # Corresponds to the JSON property `recommendedStringValue`
2270
+ # @return [String]
2271
+ attr_accessor :recommended_string_value
2272
+
1436
2273
  # Indicates whether changing this flag will trigger a database restart. Only
1437
2274
  # applicable to Second Generation instances.
1438
2275
  # Corresponds to the JSON property `requiresRestart`
@@ -1456,11 +2293,14 @@ module Google
1456
2293
  @allowed_int_values = args[:allowed_int_values] if args.key?(:allowed_int_values)
1457
2294
  @allowed_string_values = args[:allowed_string_values] if args.key?(:allowed_string_values)
1458
2295
  @applies_to = args[:applies_to] if args.key?(:applies_to)
2296
+ @flag_scope = args[:flag_scope] if args.key?(:flag_scope)
1459
2297
  @in_beta = args[:in_beta] if args.key?(:in_beta)
1460
2298
  @kind = args[:kind] if args.key?(:kind)
1461
2299
  @max_value = args[:max_value] if args.key?(:max_value)
1462
2300
  @min_value = args[:min_value] if args.key?(:min_value)
1463
2301
  @name = args[:name] if args.key?(:name)
2302
+ @recommended_int_value = args[:recommended_int_value] if args.key?(:recommended_int_value)
2303
+ @recommended_string_value = args[:recommended_string_value] if args.key?(:recommended_string_value)
1464
2304
  @requires_restart = args[:requires_restart] if args.key?(:requires_restart)
1465
2305
  @type = args[:type] if args.key?(:type)
1466
2306
  end
@@ -1491,6 +2331,61 @@ module Google
1491
2331
  end
1492
2332
  end
1493
2333
 
2334
+ # Gemini instance configuration.
2335
+ class GeminiInstanceConfig
2336
+ include Google::Apis::Core::Hashable
2337
+
2338
+ # Output only. Whether the active query is enabled.
2339
+ # Corresponds to the JSON property `activeQueryEnabled`
2340
+ # @return [Boolean]
2341
+ attr_accessor :active_query_enabled
2342
+ alias_method :active_query_enabled?, :active_query_enabled
2343
+
2344
+ # Output only. Whether Gemini is enabled.
2345
+ # Corresponds to the JSON property `entitled`
2346
+ # @return [Boolean]
2347
+ attr_accessor :entitled
2348
+ alias_method :entitled?, :entitled
2349
+
2350
+ # Output only. Whether the flag recommender is enabled.
2351
+ # Corresponds to the JSON property `flagRecommenderEnabled`
2352
+ # @return [Boolean]
2353
+ attr_accessor :flag_recommender_enabled
2354
+ alias_method :flag_recommender_enabled?, :flag_recommender_enabled
2355
+
2356
+ # Output only. Whether the vacuum management is enabled.
2357
+ # Corresponds to the JSON property `googleVacuumMgmtEnabled`
2358
+ # @return [Boolean]
2359
+ attr_accessor :google_vacuum_mgmt_enabled
2360
+ alias_method :google_vacuum_mgmt_enabled?, :google_vacuum_mgmt_enabled
2361
+
2362
+ # Output only. Whether the index advisor is enabled.
2363
+ # Corresponds to the JSON property `indexAdvisorEnabled`
2364
+ # @return [Boolean]
2365
+ attr_accessor :index_advisor_enabled
2366
+ alias_method :index_advisor_enabled?, :index_advisor_enabled
2367
+
2368
+ # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
2369
+ # Corresponds to the JSON property `oomSessionCancelEnabled`
2370
+ # @return [Boolean]
2371
+ attr_accessor :oom_session_cancel_enabled
2372
+ alias_method :oom_session_cancel_enabled?, :oom_session_cancel_enabled
2373
+
2374
+ def initialize(**args)
2375
+ update!(**args)
2376
+ end
2377
+
2378
+ # Update properties of this object
2379
+ def update!(**args)
2380
+ @active_query_enabled = args[:active_query_enabled] if args.key?(:active_query_enabled)
2381
+ @entitled = args[:entitled] if args.key?(:entitled)
2382
+ @flag_recommender_enabled = args[:flag_recommender_enabled] if args.key?(:flag_recommender_enabled)
2383
+ @google_vacuum_mgmt_enabled = args[:google_vacuum_mgmt_enabled] if args.key?(:google_vacuum_mgmt_enabled)
2384
+ @index_advisor_enabled = args[:index_advisor_enabled] if args.key?(:index_advisor_enabled)
2385
+ @oom_session_cancel_enabled = args[:oom_session_cancel_enabled] if args.key?(:oom_session_cancel_enabled)
2386
+ end
2387
+ end
2388
+
1494
2389
  # Ephemeral certificate creation request.
1495
2390
  class GenerateEphemeralCertRequest
1496
2391
  include Google::Apis::Core::Hashable
@@ -1563,8 +2458,10 @@ module Google
1563
2458
 
1564
2459
  # The target database for the import. If `fileType` is `SQL`, this field is
1565
2460
  # required only if the import file does not specify a database, and is
1566
- # overridden by any database specification in the import file. If `fileType` is `
1567
- # CSV`, one database must be specified.
2461
+ # overridden by any database specification in the import file. For entire
2462
+ # instance parallel import operations, the database is overridden by the
2463
+ # database name stored in subdirectory name. If `fileType` is `CSV`, one
2464
+ # database must be specified.
1568
2465
  # Corresponds to the JSON property `database`
1569
2466
  # @return [String]
1570
2467
  attr_accessor :database
@@ -1586,6 +2483,17 @@ module Google
1586
2483
  # @return [String]
1587
2484
  attr_accessor :kind
1588
2485
 
2486
+ # Optional. Options for importing data from SQL statements.
2487
+ # Corresponds to the JSON property `sqlImportOptions`
2488
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions]
2489
+ attr_accessor :sql_import_options
2490
+
2491
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2492
+ # parameters specific to SQL Server TDE certificates
2493
+ # Corresponds to the JSON property `tdeImportOptions`
2494
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::TdeImportOptions]
2495
+ attr_accessor :tde_import_options
2496
+
1589
2497
  # Path to the import file in Cloud Storage, in the form `gs://bucketName/
1590
2498
  # fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`.
1591
2499
  # The instance must have write permissions to the bucket and read access to the
@@ -1606,6 +2514,8 @@ module Google
1606
2514
  @file_type = args[:file_type] if args.key?(:file_type)
1607
2515
  @import_user = args[:import_user] if args.key?(:import_user)
1608
2516
  @kind = args[:kind] if args.key?(:kind)
2517
+ @sql_import_options = args[:sql_import_options] if args.key?(:sql_import_options)
2518
+ @tde_import_options = args[:tde_import_options] if args.key?(:tde_import_options)
1609
2519
  @uri = args[:uri] if args.key?(:uri)
1610
2520
  end
1611
2521
 
@@ -1613,11 +2523,47 @@ module Google
1613
2523
  class BakImportOptions
1614
2524
  include Google::Apis::Core::Hashable
1615
2525
 
2526
+ # Type of the bak content, FULL or DIFF.
2527
+ # Corresponds to the JSON property `bakType`
2528
+ # @return [String]
2529
+ attr_accessor :bak_type
2530
+
1616
2531
  #
1617
2532
  # Corresponds to the JSON property `encryptionOptions`
1618
2533
  # @return [Google::Apis::SqladminV1beta4::ImportContext::BakImportOptions::EncryptionOptions]
1619
2534
  attr_accessor :encryption_options
1620
2535
 
2536
+ # Whether or not the backup importing will restore database with NORECOVERY
2537
+ # option Applies only to Cloud SQL for SQL Server.
2538
+ # Corresponds to the JSON property `noRecovery`
2539
+ # @return [Boolean]
2540
+ attr_accessor :no_recovery
2541
+ alias_method :no_recovery?, :no_recovery
2542
+
2543
+ # Whether or not the backup importing request will just bring database online
2544
+ # without downloading Bak content only one of "no_recovery" and "recovery_only"
2545
+ # can be true otherwise error will return. Applies only to Cloud SQL for SQL
2546
+ # Server.
2547
+ # Corresponds to the JSON property `recoveryOnly`
2548
+ # @return [Boolean]
2549
+ attr_accessor :recovery_only
2550
+ alias_method :recovery_only?, :recovery_only
2551
+
2552
+ # Optional. The timestamp when the import should stop. This timestamp is in the [
2553
+ # RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-
2554
+ # 01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies
2555
+ # to Cloud SQL for SQL Server only.
2556
+ # Corresponds to the JSON property `stopAt`
2557
+ # @return [String]
2558
+ attr_accessor :stop_at
2559
+
2560
+ # Optional. The marked transaction where the import should stop. This field is
2561
+ # equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server
2562
+ # only.
2563
+ # Corresponds to the JSON property `stopAtMark`
2564
+ # @return [String]
2565
+ attr_accessor :stop_at_mark
2566
+
1621
2567
  # Whether or not the backup set being restored is striped. Applies only to Cloud
1622
2568
  # SQL for SQL Server.
1623
2569
  # Corresponds to the JSON property `striped`
@@ -1631,7 +2577,12 @@ module Google
1631
2577
 
1632
2578
  # Update properties of this object
1633
2579
  def update!(**args)
2580
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
1634
2581
  @encryption_options = args[:encryption_options] if args.key?(:encryption_options)
2582
+ @no_recovery = args[:no_recovery] if args.key?(:no_recovery)
2583
+ @recovery_only = args[:recovery_only] if args.key?(:recovery_only)
2584
+ @stop_at = args[:stop_at] if args.key?(:stop_at)
2585
+ @stop_at_mark = args[:stop_at_mark] if args.key?(:stop_at_mark)
1635
2586
  @striped = args[:striped] if args.key?(:striped)
1636
2587
  end
1637
2588
 
@@ -1646,6 +2597,12 @@ module Google
1646
2597
  # @return [String]
1647
2598
  attr_accessor :cert_path
1648
2599
 
2600
+ # Optional. Whether the imported file remains encrypted.
2601
+ # Corresponds to the JSON property `keepEncrypted`
2602
+ # @return [Boolean]
2603
+ attr_accessor :keep_encrypted
2604
+ alias_method :keep_encrypted?, :keep_encrypted
2605
+
1649
2606
  # Password that encrypts the private key
1650
2607
  # Corresponds to the JSON property `pvkPassword`
1651
2608
  # @return [String]
@@ -1665,6 +2622,7 @@ module Google
1665
2622
  # Update properties of this object
1666
2623
  def update!(**args)
1667
2624
  @cert_path = args[:cert_path] if args.key?(:cert_path)
2625
+ @keep_encrypted = args[:keep_encrypted] if args.key?(:keep_encrypted)
1668
2626
  @pvk_password = args[:pvk_password] if args.key?(:pvk_password)
1669
2627
  @pvk_path = args[:pvk_path] if args.key?(:pvk_path)
1670
2628
  end
@@ -1723,6 +2681,109 @@ module Google
1723
2681
  @table = args[:table] if args.key?(:table)
1724
2682
  end
1725
2683
  end
2684
+
2685
+ # Optional. Options for importing data from SQL statements.
2686
+ class SqlImportOptions
2687
+ include Google::Apis::Core::Hashable
2688
+
2689
+ # Optional. Whether or not the import should be parallel.
2690
+ # Corresponds to the JSON property `parallel`
2691
+ # @return [Boolean]
2692
+ attr_accessor :parallel
2693
+ alias_method :parallel?, :parallel
2694
+
2695
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2696
+ # Corresponds to the JSON property `postgresImportOptions`
2697
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions::PostgresImportOptions]
2698
+ attr_accessor :postgres_import_options
2699
+
2700
+ # Optional. The number of threads to use for parallel import.
2701
+ # Corresponds to the JSON property `threads`
2702
+ # @return [Fixnum]
2703
+ attr_accessor :threads
2704
+
2705
+ def initialize(**args)
2706
+ update!(**args)
2707
+ end
2708
+
2709
+ # Update properties of this object
2710
+ def update!(**args)
2711
+ @parallel = args[:parallel] if args.key?(:parallel)
2712
+ @postgres_import_options = args[:postgres_import_options] if args.key?(:postgres_import_options)
2713
+ @threads = args[:threads] if args.key?(:threads)
2714
+ end
2715
+
2716
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2717
+ class PostgresImportOptions
2718
+ include Google::Apis::Core::Hashable
2719
+
2720
+ # Optional. The --clean flag for the pg_restore utility. This flag applies only
2721
+ # if you enabled Cloud SQL to import files in parallel.
2722
+ # Corresponds to the JSON property `clean`
2723
+ # @return [Boolean]
2724
+ attr_accessor :clean
2725
+ alias_method :clean?, :clean
2726
+
2727
+ # Optional. The --if-exists flag for the pg_restore utility. This flag applies
2728
+ # only if you enabled Cloud SQL to import files in parallel.
2729
+ # Corresponds to the JSON property `ifExists`
2730
+ # @return [Boolean]
2731
+ attr_accessor :if_exists
2732
+ alias_method :if_exists?, :if_exists
2733
+
2734
+ def initialize(**args)
2735
+ update!(**args)
2736
+ end
2737
+
2738
+ # Update properties of this object
2739
+ def update!(**args)
2740
+ @clean = args[:clean] if args.key?(:clean)
2741
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2742
+ end
2743
+ end
2744
+ end
2745
+
2746
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2747
+ # parameters specific to SQL Server TDE certificates
2748
+ class TdeImportOptions
2749
+ include Google::Apis::Core::Hashable
2750
+
2751
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2752
+ # fileName. The instance must have read access to the file. Applicable only for
2753
+ # SQL Server instances.
2754
+ # Corresponds to the JSON property `certificatePath`
2755
+ # @return [String]
2756
+ attr_accessor :certificate_path
2757
+
2758
+ # Required. Certificate name. Applicable only for SQL Server instances.
2759
+ # Corresponds to the JSON property `name`
2760
+ # @return [String]
2761
+ attr_accessor :name
2762
+
2763
+ # Required. Password that encrypts the private key.
2764
+ # Corresponds to the JSON property `privateKeyPassword`
2765
+ # @return [String]
2766
+ attr_accessor :private_key_password
2767
+
2768
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2769
+ # fileName. The instance must have read access to the file. Applicable only for
2770
+ # SQL Server instances.
2771
+ # Corresponds to the JSON property `privateKeyPath`
2772
+ # @return [String]
2773
+ attr_accessor :private_key_path
2774
+
2775
+ def initialize(**args)
2776
+ update!(**args)
2777
+ end
2778
+
2779
+ # Update properties of this object
2780
+ def update!(**args)
2781
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2782
+ @name = args[:name] if args.key?(:name)
2783
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2784
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2785
+ end
2786
+ end
1726
2787
  end
1727
2788
 
1728
2789
  # Insights configuration. This specifies when Cloud SQL Insights feature is
@@ -1809,6 +2870,25 @@ module Google
1809
2870
  end
1810
2871
  end
1811
2872
 
2873
+ # Request to acquire an SSRS lease for an instance.
2874
+ class InstancesAcquireSsrsLeaseRequest
2875
+ include Google::Apis::Core::Hashable
2876
+
2877
+ # Acquire SSRS lease context.
2878
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
2879
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
2880
+ attr_accessor :acquire_ssrs_lease_context
2881
+
2882
+ def initialize(**args)
2883
+ update!(**args)
2884
+ end
2885
+
2886
+ # Update properties of this object
2887
+ def update!(**args)
2888
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
2889
+ end
2890
+ end
2891
+
1812
2892
  # Database instance clone request.
1813
2893
  class CloneInstancesRequest
1814
2894
  include Google::Apis::Core::Hashable
@@ -1847,6 +2927,27 @@ module Google
1847
2927
  end
1848
2928
  end
1849
2929
 
2930
+ # This request is used to demote an existing standalone instance to be a Cloud
2931
+ # SQL read replica for an external database server.
2932
+ class InstancesDemoteRequest
2933
+ include Google::Apis::Core::Hashable
2934
+
2935
+ # This context is used to demote an existing standalone instance to be a Cloud
2936
+ # SQL read replica for an external database server.
2937
+ # Corresponds to the JSON property `demoteContext`
2938
+ # @return [Google::Apis::SqladminV1beta4::DemoteContext]
2939
+ attr_accessor :demote_context
2940
+
2941
+ def initialize(**args)
2942
+ update!(**args)
2943
+ end
2944
+
2945
+ # Update properties of this object
2946
+ def update!(**args)
2947
+ @demote_context = args[:demote_context] if args.key?(:demote_context)
2948
+ end
2949
+ end
2950
+
1850
2951
  # Database instance export request.
1851
2952
  class ExportInstancesRequest
1852
2953
  include Google::Apis::Core::Hashable
@@ -1973,34 +3074,133 @@ module Google
1973
3074
  end
1974
3075
  end
1975
3076
 
3077
+ # Instances ListServerCertificatess response.
3078
+ class InstancesListServerCertificatesResponse
3079
+ include Google::Apis::Core::Hashable
3080
+
3081
+ # The `sha1_fingerprint` of the active certificate from `server_certs`.
3082
+ # Corresponds to the JSON property `activeVersion`
3083
+ # @return [String]
3084
+ attr_accessor :active_version
3085
+
3086
+ # List of server CA certificates for the instance.
3087
+ # Corresponds to the JSON property `caCerts`
3088
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3089
+ attr_accessor :ca_certs
3090
+
3091
+ # This is always `sql#instancesListServerCertificates`.
3092
+ # Corresponds to the JSON property `kind`
3093
+ # @return [String]
3094
+ attr_accessor :kind
3095
+
3096
+ # List of server certificates for the instance, signed by the corresponding CA
3097
+ # from the `ca_certs` list.
3098
+ # Corresponds to the JSON property `serverCerts`
3099
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3100
+ attr_accessor :server_certs
3101
+
3102
+ def initialize(**args)
3103
+ update!(**args)
3104
+ end
3105
+
3106
+ # Update properties of this object
3107
+ def update!(**args)
3108
+ @active_version = args[:active_version] if args.key?(:active_version)
3109
+ @ca_certs = args[:ca_certs] if args.key?(:ca_certs)
3110
+ @kind = args[:kind] if args.key?(:kind)
3111
+ @server_certs = args[:server_certs] if args.key?(:server_certs)
3112
+ end
3113
+ end
3114
+
3115
+ # Database Instance reencrypt request.
3116
+ class InstancesReencryptRequest
3117
+ include Google::Apis::Core::Hashable
3118
+
3119
+ # Backup Reencryption Config
3120
+ # Corresponds to the JSON property `backupReencryptionConfig`
3121
+ # @return [Google::Apis::SqladminV1beta4::BackupReencryptionConfig]
3122
+ attr_accessor :backup_reencryption_config
3123
+
3124
+ def initialize(**args)
3125
+ update!(**args)
3126
+ end
3127
+
3128
+ # Update properties of this object
3129
+ def update!(**args)
3130
+ @backup_reencryption_config = args[:backup_reencryption_config] if args.key?(:backup_reencryption_config)
3131
+ end
3132
+ end
3133
+
1976
3134
  # Database instance restore backup request.
1977
3135
  class RestoreInstancesBackupRequest
1978
3136
  include Google::Apis::Core::Hashable
1979
3137
 
3138
+ # The name of the backup that's used to restore a Cloud SQL instance: Format:
3139
+ # projects/`project-id`/backups/`backup-uid`. Only one of restore_backup_context,
3140
+ # backup, backupdr_backup can be passed to the input.
3141
+ # Corresponds to the JSON property `backup`
3142
+ # @return [String]
3143
+ attr_accessor :backup
3144
+
3145
+ # The name of the backup that's used to restore a Cloud SQL instance: Format: "
3146
+ # projects/`project-id`/locations/`location`/backupVaults/`backupvault`/
3147
+ # dataSources/`datasource`/backups/`backup-uid`". Only one of
3148
+ # restore_backup_context, backup, backupdr_backup can be passed to the input.
3149
+ # Corresponds to the JSON property `backupdrBackup`
3150
+ # @return [String]
3151
+ attr_accessor :backupdr_backup
3152
+
1980
3153
  # Database instance restore from backup context. Backup context contains source
1981
3154
  # instance id and project id.
1982
3155
  # Corresponds to the JSON property `restoreBackupContext`
1983
3156
  # @return [Google::Apis::SqladminV1beta4::RestoreBackupContext]
1984
3157
  attr_accessor :restore_backup_context
1985
3158
 
3159
+ # A Cloud SQL instance resource.
3160
+ # Corresponds to the JSON property `restoreInstanceSettings`
3161
+ # @return [Google::Apis::SqladminV1beta4::DatabaseInstance]
3162
+ attr_accessor :restore_instance_settings
3163
+
3164
+ def initialize(**args)
3165
+ update!(**args)
3166
+ end
3167
+
3168
+ # Update properties of this object
3169
+ def update!(**args)
3170
+ @backup = args[:backup] if args.key?(:backup)
3171
+ @backupdr_backup = args[:backupdr_backup] if args.key?(:backupdr_backup)
3172
+ @restore_backup_context = args[:restore_backup_context] if args.key?(:restore_backup_context)
3173
+ @restore_instance_settings = args[:restore_instance_settings] if args.key?(:restore_instance_settings)
3174
+ end
3175
+ end
3176
+
3177
+ # Rotate Server CA request.
3178
+ class InstancesRotateServerCaRequest
3179
+ include Google::Apis::Core::Hashable
3180
+
3181
+ # Instance rotate server CA context.
3182
+ # Corresponds to the JSON property `rotateServerCaContext`
3183
+ # @return [Google::Apis::SqladminV1beta4::RotateServerCaContext]
3184
+ attr_accessor :rotate_server_ca_context
3185
+
1986
3186
  def initialize(**args)
1987
3187
  update!(**args)
1988
3188
  end
1989
3189
 
1990
3190
  # Update properties of this object
1991
3191
  def update!(**args)
1992
- @restore_backup_context = args[:restore_backup_context] if args.key?(:restore_backup_context)
3192
+ @rotate_server_ca_context = args[:rotate_server_ca_context] if args.key?(:rotate_server_ca_context)
1993
3193
  end
1994
3194
  end
1995
3195
 
1996
- # Rotate Server CA request.
1997
- class InstancesRotateServerCaRequest
3196
+ # Rotate Server Certificate request.
3197
+ class InstancesRotateServerCertificateRequest
1998
3198
  include Google::Apis::Core::Hashable
1999
3199
 
2000
- # Instance rotate server CA context.
2001
- # Corresponds to the JSON property `rotateServerCaContext`
2002
- # @return [Google::Apis::SqladminV1beta4::RotateServerCaContext]
2003
- attr_accessor :rotate_server_ca_context
3200
+ # Instance rotate server certificate context.
3201
+ # Corresponds to the JSON property `rotateServerCertificateContext`
3202
+ # @return [Google::Apis::SqladminV1beta4::RotateServerCertificateContext]
3203
+ attr_accessor :rotate_server_certificate_context
2004
3204
 
2005
3205
  def initialize(**args)
2006
3206
  update!(**args)
@@ -2008,7 +3208,7 @@ module Google
2008
3208
 
2009
3209
  # Update properties of this object
2010
3210
  def update!(**args)
2011
- @rotate_server_ca_context = args[:rotate_server_ca_context] if args.key?(:rotate_server_ca_context)
3211
+ @rotate_server_certificate_context = args[:rotate_server_certificate_context] if args.key?(:rotate_server_certificate_context)
2012
3212
  end
2013
3213
  end
2014
3214
 
@@ -2031,6 +3231,36 @@ module Google
2031
3231
  end
2032
3232
  end
2033
3233
 
3234
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
3235
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
3236
+ # When the start equals the end, the interval is empty (matches no time). When
3237
+ # both start and end are unspecified, the interval matches any time.
3238
+ class Interval
3239
+ include Google::Apis::Core::Hashable
3240
+
3241
+ # Optional. Exclusive end of the interval. If specified, a Timestamp matching
3242
+ # this interval will have to be before the end.
3243
+ # Corresponds to the JSON property `endTime`
3244
+ # @return [String]
3245
+ attr_accessor :end_time
3246
+
3247
+ # Optional. Inclusive start of the interval. If specified, a Timestamp matching
3248
+ # this interval will have to be the same or after the start.
3249
+ # Corresponds to the JSON property `startTime`
3250
+ # @return [String]
3251
+ attr_accessor :start_time
3252
+
3253
+ def initialize(**args)
3254
+ update!(**args)
3255
+ end
3256
+
3257
+ # Update properties of this object
3258
+ def update!(**args)
3259
+ @end_time = args[:end_time] if args.key?(:end_time)
3260
+ @start_time = args[:start_time] if args.key?(:start_time)
3261
+ end
3262
+ end
3263
+
2034
3264
  # IP Management configuration.
2035
3265
  class IpConfiguration
2036
3266
  include Google::Apis::Core::Hashable
@@ -2051,6 +3281,11 @@ module Google
2051
3281
  # @return [Array<Google::Apis::SqladminV1beta4::AclEntry>]
2052
3282
  attr_accessor :authorized_networks
2053
3283
 
3284
+ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
3285
+ # Corresponds to the JSON property `customSubjectAlternativeNames`
3286
+ # @return [Array<String>]
3287
+ attr_accessor :custom_subject_alternative_names
3288
+
2054
3289
  # Controls connectivity to private IP instances from Google services, such as
2055
3290
  # BigQuery.
2056
3291
  # Corresponds to the JSON property `enablePrivatePathForGoogleCloudServices`
@@ -2072,12 +3307,52 @@ module Google
2072
3307
  # @return [String]
2073
3308
  attr_accessor :private_network
2074
3309
 
2075
- # Whether SSL connections over IP are enforced or not.
3310
+ # PSC settings for a Cloud SQL instance.
3311
+ # Corresponds to the JSON property `pscConfig`
3312
+ # @return [Google::Apis::SqladminV1beta4::PscConfig]
3313
+ attr_accessor :psc_config
3314
+
3315
+ # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If
3316
+ # set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/
3317
+ # TLS connections, the client certificate won't be verified. If set to true,
3318
+ # then only allow connections encrypted with SSL/TLS and with valid client
3319
+ # certificates. If you want to enforce SSL/TLS without enforcing the requirement
3320
+ # for valid client certificates, then use the `ssl_mode` flag instead of the
3321
+ # legacy `require_ssl` flag.
2076
3322
  # Corresponds to the JSON property `requireSsl`
2077
3323
  # @return [Boolean]
2078
3324
  attr_accessor :require_ssl
2079
3325
  alias_method :require_ssl?, :require_ssl
2080
3326
 
3327
+ # Specify what type of CA is used for the server certificate.
3328
+ # Corresponds to the JSON property `serverCaMode`
3329
+ # @return [String]
3330
+ attr_accessor :server_ca_mode
3331
+
3332
+ # Optional. The resource name of the server CA pool for an instance with `
3333
+ # CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/`PROJECT`/
3334
+ # locations/`REGION`/caPools/`CA_POOL_ID`
3335
+ # Corresponds to the JSON property `serverCaPool`
3336
+ # @return [String]
3337
+ attr_accessor :server_ca_pool
3338
+
3339
+ # Specify how SSL/TLS is enforced in database connections. If you must use the `
3340
+ # require_ssl` flag for backward compatibility, then only the following value
3341
+ # pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=
3342
+ # ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3343
+ # ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=
3344
+ # TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `
3345
+ # ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3346
+ # ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority
3347
+ # over the value of `require_ssl`. For example, for the pair `ssl_mode=
3348
+ # ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means
3349
+ # accept only SSL connections, while `require_ssl=false` means accept both non-
3350
+ # SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `
3351
+ # ssl_mode` and accepts only SSL connections.
3352
+ # Corresponds to the JSON property `sslMode`
3353
+ # @return [String]
3354
+ attr_accessor :ssl_mode
3355
+
2081
3356
  def initialize(**args)
2082
3357
  update!(**args)
2083
3358
  end
@@ -2086,14 +3361,19 @@ module Google
2086
3361
  def update!(**args)
2087
3362
  @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
2088
3363
  @authorized_networks = args[:authorized_networks] if args.key?(:authorized_networks)
3364
+ @custom_subject_alternative_names = args[:custom_subject_alternative_names] if args.key?(:custom_subject_alternative_names)
2089
3365
  @enable_private_path_for_google_cloud_services = args[:enable_private_path_for_google_cloud_services] if args.key?(:enable_private_path_for_google_cloud_services)
2090
3366
  @ipv4_enabled = args[:ipv4_enabled] if args.key?(:ipv4_enabled)
2091
3367
  @private_network = args[:private_network] if args.key?(:private_network)
3368
+ @psc_config = args[:psc_config] if args.key?(:psc_config)
2092
3369
  @require_ssl = args[:require_ssl] if args.key?(:require_ssl)
3370
+ @server_ca_mode = args[:server_ca_mode] if args.key?(:server_ca_mode)
3371
+ @server_ca_pool = args[:server_ca_pool] if args.key?(:server_ca_pool)
3372
+ @ssl_mode = args[:ssl_mode] if args.key?(:ssl_mode)
2093
3373
  end
2094
3374
  end
2095
3375
 
2096
- # Database instance IP Mapping.
3376
+ # Database instance IP mapping
2097
3377
  class IpMapping
2098
3378
  include Google::Apis::Core::Hashable
2099
3379
 
@@ -2129,6 +3409,39 @@ module Google
2129
3409
  end
2130
3410
  end
2131
3411
 
3412
+ # The response payload containing a list of the backups.
3413
+ class ListBackupsResponse
3414
+ include Google::Apis::Core::Hashable
3415
+
3416
+ # A list of backups.
3417
+ # Corresponds to the JSON property `backups`
3418
+ # @return [Array<Google::Apis::SqladminV1beta4::Backup>]
3419
+ attr_accessor :backups
3420
+
3421
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
3422
+ # field is omitted, then there aren't subsequent pages.
3423
+ # Corresponds to the JSON property `nextPageToken`
3424
+ # @return [String]
3425
+ attr_accessor :next_page_token
3426
+
3427
+ # If a region isn't unavailable or if an unknown error occurs, then a warning
3428
+ # message is returned.
3429
+ # Corresponds to the JSON property `warnings`
3430
+ # @return [Array<Google::Apis::SqladminV1beta4::ApiWarning>]
3431
+ attr_accessor :warnings
3432
+
3433
+ def initialize(**args)
3434
+ update!(**args)
3435
+ end
3436
+
3437
+ # Update properties of this object
3438
+ def update!(**args)
3439
+ @backups = args[:backups] if args.key?(:backups)
3440
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3441
+ @warnings = args[:warnings] if args.key?(:warnings)
3442
+ end
3443
+ end
3444
+
2132
3445
  # Preferred location. This specifies where a Cloud SQL instance is located. Note
2133
3446
  # that if the preferred location is not available, the instance will be located
2134
3447
  # as close as possible within the region. Only one location may be specified.
@@ -2147,7 +3460,8 @@ module Google
2147
3460
  attr_accessor :kind
2148
3461
 
2149
3462
  # The preferred Compute Engine zone for the secondary/failover (for example: us-
2150
- # central1-a, us-central1-b, etc.).
3463
+ # central1-a, us-central1-b, etc.). To disable this field, set it to '
3464
+ # no_secondary_zone'.
2151
3465
  # Corresponds to the JSON property `secondaryZone`
2152
3466
  # @return [String]
2153
3467
  attr_accessor :secondary_zone
@@ -2176,12 +3490,14 @@ module Google
2176
3490
  class MaintenanceWindow
2177
3491
  include Google::Apis::Core::Hashable
2178
3492
 
2179
- # day of week (1-7), starting on Monday.
3493
+ # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `
3494
+ # SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an
3495
+ # integer, 1 to 7, where `1` equals Monday.
2180
3496
  # Corresponds to the JSON property `day`
2181
3497
  # @return [Fixnum]
2182
3498
  attr_accessor :day
2183
3499
 
2184
- # hour of day - 0 to 23.
3500
+ # Hour of day - 0 to 23. Specify in the UTC time zone.
2185
3501
  # Corresponds to the JSON property `hour`
2186
3502
  # @return [Fixnum]
2187
3503
  attr_accessor :hour
@@ -2191,9 +3507,9 @@ module Google
2191
3507
  # @return [String]
2192
3508
  attr_accessor :kind
2193
3509
 
2194
- # Maintenance timing setting: `canary` (Earlier) or `stable` (Later). [Learn
2195
- # more](https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-
2196
- # timing-2ndgen).
3510
+ # Maintenance timing settings: `canary`, `stable`, or `week5`. For more
3511
+ # information, see [About maintenance on Cloud SQL instances](https://cloud.
3512
+ # google.com/sql/docs/mysql/maintenance).
2197
3513
  # Corresponds to the JSON property `updateTrack`
2198
3514
  # @return [String]
2199
3515
  attr_accessor :update_track
@@ -2225,7 +3541,7 @@ module Google
2225
3541
  # @return [String]
2226
3542
  attr_accessor :client_certificate
2227
3543
 
2228
- # PEM representation of the replica's private key. The corresponsing public key
3544
+ # PEM representation of the replica's private key. The corresponding public key
2229
3545
  # is encoded in the client's certificate.
2230
3546
  # Corresponds to the JSON property `clientKey`
2231
3547
  # @return [String]
@@ -2330,7 +3646,7 @@ module Google
2330
3646
  # @return [String]
2331
3647
  attr_accessor :client_certificate
2332
3648
 
2333
- # PEM representation of the replica's private key. The corresponsing public key
3649
+ # PEM representation of the replica's private key. The corresponding public key
2334
3650
  # is encoded in the client's certificate.
2335
3651
  # Corresponds to the JSON property `clientKey`
2336
3652
  # @return [String]
@@ -2356,11 +3672,22 @@ module Google
2356
3672
  # @return [String]
2357
3673
  attr_accessor :password
2358
3674
 
3675
+ # Optional. A list of objects that the user selects for replication from an
3676
+ # external source instance.
3677
+ # Corresponds to the JSON property `selectedObjects`
3678
+ # @return [Array<Google::Apis::SqladminV1beta4::SelectedObjects>]
3679
+ attr_accessor :selected_objects
3680
+
2359
3681
  # Reference to another Cloud SQL instance.
2360
3682
  # Corresponds to the JSON property `sourceInstance`
2361
3683
  # @return [Google::Apis::SqladminV1beta4::InstanceReference]
2362
3684
  attr_accessor :source_instance
2363
3685
 
3686
+ # Optional. SslOption for replica connection to the on-premises source.
3687
+ # Corresponds to the JSON property `sslOption`
3688
+ # @return [String]
3689
+ attr_accessor :ssl_option
3690
+
2364
3691
  # The username for connecting to on-premises instance.
2365
3692
  # Corresponds to the JSON property `username`
2366
3693
  # @return [String]
@@ -2379,7 +3706,9 @@ module Google
2379
3706
  @host_port = args[:host_port] if args.key?(:host_port)
2380
3707
  @kind = args[:kind] if args.key?(:kind)
2381
3708
  @password = args[:password] if args.key?(:password)
3709
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
2382
3710
  @source_instance = args[:source_instance] if args.key?(:source_instance)
3711
+ @ssl_option = args[:ssl_option] if args.key?(:ssl_option)
2383
3712
  @username = args[:username] if args.key?(:username)
2384
3713
  end
2385
3714
  end
@@ -2390,6 +3719,16 @@ module Google
2390
3719
  class Operation
2391
3720
  include Google::Apis::Core::Hashable
2392
3721
 
3722
+ # Acquire SSRS lease context.
3723
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
3724
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
3725
+ attr_accessor :acquire_ssrs_lease_context
3726
+
3727
+ # An Admin API warning message.
3728
+ # Corresponds to the JSON property `apiWarning`
3729
+ # @return [Google::Apis::SqladminV1beta4::ApiWarning]
3730
+ attr_accessor :api_warning
3731
+
2393
3732
  # Backup context.
2394
3733
  # Corresponds to the JSON property `backupContext`
2395
3734
  # @return [Google::Apis::SqladminV1beta4::BackupContext]
@@ -2457,7 +3796,12 @@ module Google
2457
3796
  # @return [String]
2458
3797
  attr_accessor :status
2459
3798
 
2460
- # Name of the database instance related to this operation.
3799
+ # The sub operation type based on the operation type.
3800
+ # Corresponds to the JSON property `subOperationType`
3801
+ # @return [Google::Apis::SqladminV1beta4::SqlSubOperationType]
3802
+ attr_accessor :sub_operation_type
3803
+
3804
+ # Name of the resource on which this operation runs.
2461
3805
  # Corresponds to the JSON property `targetId`
2462
3806
  # @return [String]
2463
3807
  attr_accessor :target_id
@@ -2483,6 +3827,8 @@ module Google
2483
3827
 
2484
3828
  # Update properties of this object
2485
3829
  def update!(**args)
3830
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
3831
+ @api_warning = args[:api_warning] if args.key?(:api_warning)
2486
3832
  @backup_context = args[:backup_context] if args.key?(:backup_context)
2487
3833
  @end_time = args[:end_time] if args.key?(:end_time)
2488
3834
  @error = args[:error] if args.key?(:error)
@@ -2495,6 +3841,7 @@ module Google
2495
3841
  @self_link = args[:self_link] if args.key?(:self_link)
2496
3842
  @start_time = args[:start_time] if args.key?(:start_time)
2497
3843
  @status = args[:status] if args.key?(:status)
3844
+ @sub_operation_type = args[:sub_operation_type] if args.key?(:sub_operation_type)
2498
3845
  @target_id = args[:target_id] if args.key?(:target_id)
2499
3846
  @target_link = args[:target_link] if args.key?(:target_link)
2500
3847
  @target_project = args[:target_project] if args.key?(:target_project)
@@ -2558,6 +3905,65 @@ module Google
2558
3905
  end
2559
3906
  end
2560
3907
 
3908
+ # Represents the metadata of the long-running operation.
3909
+ class OperationMetadata
3910
+ include Google::Apis::Core::Hashable
3911
+
3912
+ # Output only. API version used to start the operation.
3913
+ # Corresponds to the JSON property `apiVersion`
3914
+ # @return [String]
3915
+ attr_accessor :api_version
3916
+
3917
+ # Output only. Identifies whether the user has requested cancellation of the
3918
+ # operation. Operations that have been cancelled successfully have google.
3919
+ # longrunning.Operation.error value with a google.rpc.Status.code of `1`,
3920
+ # corresponding to `Code.CANCELLED`.
3921
+ # Corresponds to the JSON property `cancelRequested`
3922
+ # @return [Boolean]
3923
+ attr_accessor :cancel_requested
3924
+ alias_method :cancel_requested?, :cancel_requested
3925
+
3926
+ # Output only. The time the operation was created.
3927
+ # Corresponds to the JSON property `createTime`
3928
+ # @return [String]
3929
+ attr_accessor :create_time
3930
+
3931
+ # Output only. The time the operation finished running.
3932
+ # Corresponds to the JSON property `endTime`
3933
+ # @return [String]
3934
+ attr_accessor :end_time
3935
+
3936
+ # Output only. Human-readable status of the operation, if any.
3937
+ # Corresponds to the JSON property `statusDetail`
3938
+ # @return [String]
3939
+ attr_accessor :status_detail
3940
+
3941
+ # Output only. Server-defined resource path for the target of the operation.
3942
+ # Corresponds to the JSON property `target`
3943
+ # @return [String]
3944
+ attr_accessor :target
3945
+
3946
+ # Output only. Name of the verb executed by the operation.
3947
+ # Corresponds to the JSON property `verb`
3948
+ # @return [String]
3949
+ attr_accessor :verb
3950
+
3951
+ def initialize(**args)
3952
+ update!(**args)
3953
+ end
3954
+
3955
+ # Update properties of this object
3956
+ def update!(**args)
3957
+ @api_version = args[:api_version] if args.key?(:api_version)
3958
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
3959
+ @create_time = args[:create_time] if args.key?(:create_time)
3960
+ @end_time = args[:end_time] if args.key?(:end_time)
3961
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
3962
+ @target = args[:target] if args.key?(:target)
3963
+ @verb = args[:verb] if args.key?(:verb)
3964
+ end
3965
+ end
3966
+
2561
3967
  # Operations list response.
2562
3968
  class ListOperationsResponse
2563
3969
  include Google::Apis::Core::Hashable
@@ -2567,16 +3973,237 @@ module Google
2567
3973
  # @return [Array<Google::Apis::SqladminV1beta4::Operation>]
2568
3974
  attr_accessor :items
2569
3975
 
2570
- # This is always `sql#operationsList`.
2571
- # Corresponds to the JSON property `kind`
3976
+ # This is always `sql#operationsList`.
3977
+ # Corresponds to the JSON property `kind`
3978
+ # @return [String]
3979
+ attr_accessor :kind
3980
+
3981
+ # The continuation token, used to page through large result sets. Provide this
3982
+ # value in a subsequent request to return the next page of results.
3983
+ # Corresponds to the JSON property `nextPageToken`
3984
+ # @return [String]
3985
+ attr_accessor :next_page_token
3986
+
3987
+ def initialize(**args)
3988
+ update!(**args)
3989
+ end
3990
+
3991
+ # Update properties of this object
3992
+ def update!(**args)
3993
+ @items = args[:items] if args.key?(:items)
3994
+ @kind = args[:kind] if args.key?(:kind)
3995
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3996
+ end
3997
+ end
3998
+
3999
+ # Read-only password status.
4000
+ class PasswordStatus
4001
+ include Google::Apis::Core::Hashable
4002
+
4003
+ # If true, user does not have login privileges.
4004
+ # Corresponds to the JSON property `locked`
4005
+ # @return [Boolean]
4006
+ attr_accessor :locked
4007
+ alias_method :locked?, :locked
4008
+
4009
+ # The expiration time of the current password.
4010
+ # Corresponds to the JSON property `passwordExpirationTime`
4011
+ # @return [String]
4012
+ attr_accessor :password_expiration_time
4013
+
4014
+ def initialize(**args)
4015
+ update!(**args)
4016
+ end
4017
+
4018
+ # Update properties of this object
4019
+ def update!(**args)
4020
+ @locked = args[:locked] if args.key?(:locked)
4021
+ @password_expiration_time = args[:password_expiration_time] if args.key?(:password_expiration_time)
4022
+ end
4023
+ end
4024
+
4025
+ # Database instance local user password validation policy
4026
+ class PasswordValidationPolicy
4027
+ include Google::Apis::Core::Hashable
4028
+
4029
+ # The complexity of the password.
4030
+ # Corresponds to the JSON property `complexity`
4031
+ # @return [String]
4032
+ attr_accessor :complexity
4033
+
4034
+ # This field is deprecated and will be removed in a future version of the API.
4035
+ # Corresponds to the JSON property `disallowCompromisedCredentials`
4036
+ # @return [Boolean]
4037
+ attr_accessor :disallow_compromised_credentials
4038
+ alias_method :disallow_compromised_credentials?, :disallow_compromised_credentials
4039
+
4040
+ # Disallow username as a part of the password.
4041
+ # Corresponds to the JSON property `disallowUsernameSubstring`
4042
+ # @return [Boolean]
4043
+ attr_accessor :disallow_username_substring
4044
+ alias_method :disallow_username_substring?, :disallow_username_substring
4045
+
4046
+ # Whether the password policy is enabled or not.
4047
+ # Corresponds to the JSON property `enablePasswordPolicy`
4048
+ # @return [Boolean]
4049
+ attr_accessor :enable_password_policy
4050
+ alias_method :enable_password_policy?, :enable_password_policy
4051
+
4052
+ # Minimum number of characters allowed.
4053
+ # Corresponds to the JSON property `minLength`
4054
+ # @return [Fixnum]
4055
+ attr_accessor :min_length
4056
+
4057
+ # Minimum interval after which the password can be changed. This flag is only
4058
+ # supported for PostgreSQL.
4059
+ # Corresponds to the JSON property `passwordChangeInterval`
4060
+ # @return [String]
4061
+ attr_accessor :password_change_interval
4062
+
4063
+ # Number of previous passwords that cannot be reused.
4064
+ # Corresponds to the JSON property `reuseInterval`
4065
+ # @return [Fixnum]
4066
+ attr_accessor :reuse_interval
4067
+
4068
+ def initialize(**args)
4069
+ update!(**args)
4070
+ end
4071
+
4072
+ # Update properties of this object
4073
+ def update!(**args)
4074
+ @complexity = args[:complexity] if args.key?(:complexity)
4075
+ @disallow_compromised_credentials = args[:disallow_compromised_credentials] if args.key?(:disallow_compromised_credentials)
4076
+ @disallow_username_substring = args[:disallow_username_substring] if args.key?(:disallow_username_substring)
4077
+ @enable_password_policy = args[:enable_password_policy] if args.key?(:enable_password_policy)
4078
+ @min_length = args[:min_length] if args.key?(:min_length)
4079
+ @password_change_interval = args[:password_change_interval] if args.key?(:password_change_interval)
4080
+ @reuse_interval = args[:reuse_interval] if args.key?(:reuse_interval)
4081
+ end
4082
+ end
4083
+
4084
+ # Perform disk shrink context.
4085
+ class PerformDiskShrinkContext
4086
+ include Google::Apis::Core::Hashable
4087
+
4088
+ # The target disk shrink size in GigaBytes.
4089
+ # Corresponds to the JSON property `targetSizeGb`
4090
+ # @return [Fixnum]
4091
+ attr_accessor :target_size_gb
4092
+
4093
+ def initialize(**args)
4094
+ update!(**args)
4095
+ end
4096
+
4097
+ # Update properties of this object
4098
+ def update!(**args)
4099
+ @target_size_gb = args[:target_size_gb] if args.key?(:target_size_gb)
4100
+ end
4101
+ end
4102
+
4103
+ # Context to perform a point-in-time restore of an instance managed by Google
4104
+ # Cloud Backup and Disaster Recovery.
4105
+ class PointInTimeRestoreContext
4106
+ include Google::Apis::Core::Hashable
4107
+
4108
+ # Optional. The name of the allocated IP range for the internal IP Cloud SQL
4109
+ # instance. For example: "google-managed-services-default". If you set this,
4110
+ # then Cloud SQL creates the IP address for the cloned instance in the allocated
4111
+ # range. This range must comply with [RFC 1035](https://tools.ietf.org/html/
4112
+ # rfc1035) standards. Specifically, the name must be 1-63 characters long and
4113
+ # match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future
4114
+ # use. http://go/speckle-subnet-picker-clone
4115
+ # Corresponds to the JSON property `allocatedIpRange`
4116
+ # @return [String]
4117
+ attr_accessor :allocated_ip_range
4118
+
4119
+ # The Google Cloud Backup and Disaster Recovery Datasource URI. Format: projects/
4120
+ # `project`/locations/`region`/backupVaults/`backupvault`/dataSources/`
4121
+ # datasource`.
4122
+ # Corresponds to the JSON property `datasource`
4123
+ # @return [String]
4124
+ attr_accessor :datasource
4125
+
4126
+ # Required. The date and time to which you want to restore the instance.
4127
+ # Corresponds to the JSON property `pointInTime`
4128
+ # @return [String]
4129
+ attr_accessor :point_in_time
4130
+
4131
+ # Optional. Point-in-time recovery of a regional instance in the specified zones.
4132
+ # If not specified, clone to the same secondary zone as the source instance.
4133
+ # This value cannot be the same as the preferred_zone field.
4134
+ # Corresponds to the JSON property `preferredSecondaryZone`
4135
+ # @return [String]
4136
+ attr_accessor :preferred_secondary_zone
4137
+
4138
+ # Optional. Point-in-time recovery of an instance to the specified zone. If no
4139
+ # zone is specified, then clone to the same primary zone as the source instance.
4140
+ # Corresponds to the JSON property `preferredZone`
4141
+ # @return [String]
4142
+ attr_accessor :preferred_zone
4143
+
4144
+ # Optional. The resource link for the VPC network from which the Cloud SQL
4145
+ # instance is accessible for private IP. For example, `/projects/myProject/
4146
+ # global/networks/default`.
4147
+ # Corresponds to the JSON property `privateNetwork`
4148
+ # @return [String]
4149
+ attr_accessor :private_network
4150
+
4151
+ # Target instance name.
4152
+ # Corresponds to the JSON property `targetInstance`
4153
+ # @return [String]
4154
+ attr_accessor :target_instance
4155
+
4156
+ def initialize(**args)
4157
+ update!(**args)
4158
+ end
4159
+
4160
+ # Update properties of this object
4161
+ def update!(**args)
4162
+ @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
4163
+ @datasource = args[:datasource] if args.key?(:datasource)
4164
+ @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
4165
+ @preferred_secondary_zone = args[:preferred_secondary_zone] if args.key?(:preferred_secondary_zone)
4166
+ @preferred_zone = args[:preferred_zone] if args.key?(:preferred_zone)
4167
+ @private_network = args[:private_network] if args.key?(:private_network)
4168
+ @target_instance = args[:target_instance] if args.key?(:target_instance)
4169
+ end
4170
+ end
4171
+
4172
+ # Details of a single read pool node of a read pool.
4173
+ class PoolNodeConfig
4174
+ include Google::Apis::Core::Hashable
4175
+
4176
+ # Output only. The DNS name of the read pool node.
4177
+ # Corresponds to the JSON property `dnsName`
4178
+ # @return [String]
4179
+ attr_accessor :dns_name
4180
+
4181
+ # Output only. The list of DNS names used by this read pool node.
4182
+ # Corresponds to the JSON property `dnsNames`
4183
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
4184
+ attr_accessor :dns_names
4185
+
4186
+ # Output only. The zone of the read pool node.
4187
+ # Corresponds to the JSON property `gceZone`
4188
+ # @return [String]
4189
+ attr_accessor :gce_zone
4190
+
4191
+ # Output only. Mappings containing IP addresses that can be used to connect to
4192
+ # the read pool node.
4193
+ # Corresponds to the JSON property `ipAddresses`
4194
+ # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
4195
+ attr_accessor :ip_addresses
4196
+
4197
+ # Output only. The name of the read pool node, to be used for retrieving metrics
4198
+ # and logs.
4199
+ # Corresponds to the JSON property `name`
2572
4200
  # @return [String]
2573
- attr_accessor :kind
4201
+ attr_accessor :name
2574
4202
 
2575
- # The continuation token, used to page through large result sets. Provide this
2576
- # value in a subsequent request to return the next page of results.
2577
- # Corresponds to the JSON property `nextPageToken`
4203
+ # Output only. The current state of the read pool node.
4204
+ # Corresponds to the JSON property `state`
2578
4205
  # @return [String]
2579
- attr_accessor :next_page_token
4206
+ attr_accessor :state
2580
4207
 
2581
4208
  def initialize(**args)
2582
4209
  update!(**args)
@@ -2584,26 +4211,48 @@ module Google
2584
4211
 
2585
4212
  # Update properties of this object
2586
4213
  def update!(**args)
2587
- @items = args[:items] if args.key?(:items)
2588
- @kind = args[:kind] if args.key?(:kind)
2589
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
4214
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
4215
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
4216
+ @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
4217
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
4218
+ @name = args[:name] if args.key?(:name)
4219
+ @state = args[:state] if args.key?(:state)
2590
4220
  end
2591
4221
  end
2592
4222
 
2593
- # Read-only password status.
2594
- class PasswordStatus
4223
+ # Settings for an automatically-setup Private Service Connect consumer endpoint
4224
+ # that is used to connect to a Cloud SQL instance.
4225
+ class PscAutoConnectionConfig
2595
4226
  include Google::Apis::Core::Hashable
2596
4227
 
2597
- # If true, user does not have login privileges.
2598
- # Corresponds to the JSON property `locked`
2599
- # @return [Boolean]
2600
- attr_accessor :locked
2601
- alias_method :locked?, :locked
4228
+ # The consumer network of this consumer endpoint. This must be a resource path
4229
+ # that includes both the host project and the network name. For example, `
4230
+ # projects/project1/global/networks/network1`. The consumer host project of this
4231
+ # network might be different from the consumer service project.
4232
+ # Corresponds to the JSON property `consumerNetwork`
4233
+ # @return [String]
4234
+ attr_accessor :consumer_network
2602
4235
 
2603
- # The expiration time of the current password.
2604
- # Corresponds to the JSON property `passwordExpirationTime`
4236
+ # The connection policy status of the consumer network.
4237
+ # Corresponds to the JSON property `consumerNetworkStatus`
2605
4238
  # @return [String]
2606
- attr_accessor :password_expiration_time
4239
+ attr_accessor :consumer_network_status
4240
+
4241
+ # This is the project ID of consumer service project of this consumer endpoint.
4242
+ # Optional. This is only applicable if consumer_network is a shared vpc network.
4243
+ # Corresponds to the JSON property `consumerProject`
4244
+ # @return [String]
4245
+ attr_accessor :consumer_project
4246
+
4247
+ # The IP address of the consumer endpoint.
4248
+ # Corresponds to the JSON property `ipAddress`
4249
+ # @return [String]
4250
+ attr_accessor :ip_address
4251
+
4252
+ # The connection status of the consumer endpoint.
4253
+ # Corresponds to the JSON property `status`
4254
+ # @return [String]
4255
+ attr_accessor :status
2607
4256
 
2608
4257
  def initialize(**args)
2609
4258
  update!(**args)
@@ -2611,47 +4260,37 @@ module Google
2611
4260
 
2612
4261
  # Update properties of this object
2613
4262
  def update!(**args)
2614
- @locked = args[:locked] if args.key?(:locked)
2615
- @password_expiration_time = args[:password_expiration_time] if args.key?(:password_expiration_time)
4263
+ @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
4264
+ @consumer_network_status = args[:consumer_network_status] if args.key?(:consumer_network_status)
4265
+ @consumer_project = args[:consumer_project] if args.key?(:consumer_project)
4266
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
4267
+ @status = args[:status] if args.key?(:status)
2616
4268
  end
2617
4269
  end
2618
4270
 
2619
- # Database instance local user password validation policy
2620
- class PasswordValidationPolicy
4271
+ # PSC settings for a Cloud SQL instance.
4272
+ class PscConfig
2621
4273
  include Google::Apis::Core::Hashable
2622
4274
 
2623
- # The complexity of the password.
2624
- # Corresponds to the JSON property `complexity`
2625
- # @return [String]
2626
- attr_accessor :complexity
4275
+ # Optional. The list of consumer projects that are allow-listed for PSC
4276
+ # connections to this instance. This instance can be connected to with PSC from
4277
+ # any network in these projects. Each consumer project in this list may be
4278
+ # represented by a project number (numeric) or by a project id (alphanumeric).
4279
+ # Corresponds to the JSON property `allowedConsumerProjects`
4280
+ # @return [Array<String>]
4281
+ attr_accessor :allowed_consumer_projects
2627
4282
 
2628
- # Disallow username as a part of the password.
2629
- # Corresponds to the JSON property `disallowUsernameSubstring`
2630
- # @return [Boolean]
2631
- attr_accessor :disallow_username_substring
2632
- alias_method :disallow_username_substring?, :disallow_username_substring
4283
+ # Optional. The list of settings for requested Private Service Connect consumer
4284
+ # endpoints that can be used to connect to this Cloud SQL instance.
4285
+ # Corresponds to the JSON property `pscAutoConnections`
4286
+ # @return [Array<Google::Apis::SqladminV1beta4::PscAutoConnectionConfig>]
4287
+ attr_accessor :psc_auto_connections
2633
4288
 
2634
- # Whether the password policy is enabled or not.
2635
- # Corresponds to the JSON property `enablePasswordPolicy`
4289
+ # Whether PSC connectivity is enabled for this instance.
4290
+ # Corresponds to the JSON property `pscEnabled`
2636
4291
  # @return [Boolean]
2637
- attr_accessor :enable_password_policy
2638
- alias_method :enable_password_policy?, :enable_password_policy
2639
-
2640
- # Minimum number of characters allowed.
2641
- # Corresponds to the JSON property `minLength`
2642
- # @return [Fixnum]
2643
- attr_accessor :min_length
2644
-
2645
- # Minimum interval after which the password can be changed. This flag is only
2646
- # supported for PostgreSQL.
2647
- # Corresponds to the JSON property `passwordChangeInterval`
2648
- # @return [String]
2649
- attr_accessor :password_change_interval
2650
-
2651
- # Number of previous passwords that cannot be reused.
2652
- # Corresponds to the JSON property `reuseInterval`
2653
- # @return [Fixnum]
2654
- attr_accessor :reuse_interval
4292
+ attr_accessor :psc_enabled
4293
+ alias_method :psc_enabled?, :psc_enabled
2655
4294
 
2656
4295
  def initialize(**args)
2657
4296
  update!(**args)
@@ -2659,12 +4298,9 @@ module Google
2659
4298
 
2660
4299
  # Update properties of this object
2661
4300
  def update!(**args)
2662
- @complexity = args[:complexity] if args.key?(:complexity)
2663
- @disallow_username_substring = args[:disallow_username_substring] if args.key?(:disallow_username_substring)
2664
- @enable_password_policy = args[:enable_password_policy] if args.key?(:enable_password_policy)
2665
- @min_length = args[:min_length] if args.key?(:min_length)
2666
- @password_change_interval = args[:password_change_interval] if args.key?(:password_change_interval)
2667
- @reuse_interval = args[:reuse_interval] if args.key?(:reuse_interval)
4301
+ @allowed_consumer_projects = args[:allowed_consumer_projects] if args.key?(:allowed_consumer_projects)
4302
+ @psc_auto_connections = args[:psc_auto_connections] if args.key?(:psc_auto_connections)
4303
+ @psc_enabled = args[:psc_enabled] if args.key?(:psc_enabled)
2668
4304
  end
2669
4305
  end
2670
4306
 
@@ -2672,6 +4308,14 @@ module Google
2672
4308
  class ReplicaConfiguration
2673
4309
  include Google::Apis::Core::Hashable
2674
4310
 
4311
+ # Optional. Specifies if a SQL Server replica is a cascadable replica. A
4312
+ # cascadable replica is a SQL Server cross region replica that supports replica(
4313
+ # s) under it.
4314
+ # Corresponds to the JSON property `cascadableReplica`
4315
+ # @return [Boolean]
4316
+ attr_accessor :cascadable_replica
4317
+ alias_method :cascadable_replica?, :cascadable_replica
4318
+
2675
4319
  # Specifies if the replica is the failover target. If the field is set to `true`
2676
4320
  # the replica will be designated as a failover replica. In case the primary
2677
4321
  # instance fails, the replica instance will be promoted as the new primary
@@ -2698,12 +4342,59 @@ module Google
2698
4342
 
2699
4343
  # Update properties of this object
2700
4344
  def update!(**args)
4345
+ @cascadable_replica = args[:cascadable_replica] if args.key?(:cascadable_replica)
2701
4346
  @failover_target = args[:failover_target] if args.key?(:failover_target)
2702
4347
  @kind = args[:kind] if args.key?(:kind)
2703
4348
  @mysql_replica_configuration = args[:mysql_replica_configuration] if args.key?(:mysql_replica_configuration)
2704
4349
  end
2705
4350
  end
2706
4351
 
4352
+ # A primary instance and disaster recovery (DR) replica pair. A DR replica is a
4353
+ # cross-region replica that you designate for failover in the event that the
4354
+ # primary instance has regional failure. Applicable to MySQL and PostgreSQL.
4355
+ class ReplicationCluster
4356
+ include Google::Apis::Core::Hashable
4357
+
4358
+ # Output only. Read-only field that indicates whether the replica is a DR
4359
+ # replica. This field is not set if the instance is a primary instance.
4360
+ # Corresponds to the JSON property `drReplica`
4361
+ # @return [Boolean]
4362
+ attr_accessor :dr_replica
4363
+ alias_method :dr_replica?, :dr_replica
4364
+
4365
+ # Optional. If the instance is a primary instance, then this field identifies
4366
+ # the disaster recovery (DR) replica. A DR replica is an optional configuration
4367
+ # for Enterprise Plus edition instances. If the instance is a read replica, then
4368
+ # the field is not set. Set this field to a replica name to designate a DR
4369
+ # replica for a primary instance. Remove the replica name to remove the DR
4370
+ # replica designation.
4371
+ # Corresponds to the JSON property `failoverDrReplicaName`
4372
+ # @return [String]
4373
+ attr_accessor :failover_dr_replica_name
4374
+
4375
+ # Output only. If set, this field indicates this instance has a private service
4376
+ # access (PSA) DNS endpoint that is pointing to the primary instance of the
4377
+ # cluster. If this instance is the primary, then the DNS endpoint points to this
4378
+ # instance. After a switchover or replica failover operation, this DNS endpoint
4379
+ # points to the promoted instance. This is a read-only field, returned to the
4380
+ # user as information. This field can exist even if a standalone instance doesn'
4381
+ # t have a DR replica yet or the DR replica is deleted.
4382
+ # Corresponds to the JSON property `psaWriteEndpoint`
4383
+ # @return [String]
4384
+ attr_accessor :psa_write_endpoint
4385
+
4386
+ def initialize(**args)
4387
+ update!(**args)
4388
+ end
4389
+
4390
+ # Update properties of this object
4391
+ def update!(**args)
4392
+ @dr_replica = args[:dr_replica] if args.key?(:dr_replica)
4393
+ @failover_dr_replica_name = args[:failover_dr_replica_name] if args.key?(:failover_dr_replica_name)
4394
+ @psa_write_endpoint = args[:psa_write_endpoint] if args.key?(:psa_write_endpoint)
4395
+ end
4396
+ end
4397
+
2707
4398
  #
2708
4399
  class Reschedule
2709
4400
  include Google::Apis::Core::Hashable
@@ -2795,6 +4486,53 @@ module Google
2795
4486
  end
2796
4487
  end
2797
4488
 
4489
+ # Instance rotate server certificate context.
4490
+ class RotateServerCertificateContext
4491
+ include Google::Apis::Core::Hashable
4492
+
4493
+ # Optional. This is always `sql#rotateServerCertificateContext`.
4494
+ # Corresponds to the JSON property `kind`
4495
+ # @return [String]
4496
+ attr_accessor :kind
4497
+
4498
+ # Optional. The fingerprint of the next version to be rotated to. If left
4499
+ # unspecified, will be rotated to the most recently added server certificate
4500
+ # version.
4501
+ # Corresponds to the JSON property `nextVersion`
4502
+ # @return [String]
4503
+ attr_accessor :next_version
4504
+
4505
+ def initialize(**args)
4506
+ update!(**args)
4507
+ end
4508
+
4509
+ # Update properties of this object
4510
+ def update!(**args)
4511
+ @kind = args[:kind] if args.key?(:kind)
4512
+ @next_version = args[:next_version] if args.key?(:next_version)
4513
+ end
4514
+ end
4515
+
4516
+ # A list of objects that the user selects for replication from an external
4517
+ # source instance.
4518
+ class SelectedObjects
4519
+ include Google::Apis::Core::Hashable
4520
+
4521
+ # Required. The name of the database to migrate.
4522
+ # Corresponds to the JSON property `database`
4523
+ # @return [String]
4524
+ attr_accessor :database
4525
+
4526
+ def initialize(**args)
4527
+ update!(**args)
4528
+ end
4529
+
4530
+ # Update properties of this object
4531
+ def update!(**args)
4532
+ @database = args[:database] if args.key?(:database)
4533
+ end
4534
+ end
4535
+
2798
4536
  # Database instance settings.
2799
4537
  class Settings
2800
4538
  include Google::Apis::Core::Hashable
@@ -2813,6 +4551,11 @@ module Google
2813
4551
  # @return [Google::Apis::SqladminV1beta4::SqlActiveDirectoryConfig]
2814
4552
  attr_accessor :active_directory_config
2815
4553
 
4554
+ # Specifies options for controlling advanced machine features.
4555
+ # Corresponds to the JSON property `advancedMachineFeatures`
4556
+ # @return [Google::Apis::SqladminV1beta4::AdvancedMachineFeatures]
4557
+ attr_accessor :advanced_machine_features
4558
+
2816
4559
  # The App Engine app IDs that can access this instance. (Deprecated) Applied to
2817
4560
  # First Generation instances only.
2818
4561
  # Corresponds to the JSON property `authorizedGaeApplications`
@@ -2838,6 +4581,11 @@ module Google
2838
4581
  # @return [String]
2839
4582
  attr_accessor :collation
2840
4583
 
4584
+ # The managed connection pooling configuration.
4585
+ # Corresponds to the JSON property `connectionPoolConfig`
4586
+ # @return [Google::Apis::SqladminV1beta4::ConnectionPoolConfig]
4587
+ attr_accessor :connection_pool_config
4588
+
2841
4589
  # Specifies if connections must use Cloud SQL connectors. Option values include
2842
4590
  # the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without
2843
4591
  # Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud
@@ -2857,6 +4605,23 @@ module Google
2857
4605
  attr_accessor :crash_safe_replication_enabled
2858
4606
  alias_method :crash_safe_replication_enabled?, :crash_safe_replication_enabled
2859
4607
 
4608
+ # Data cache configurations.
4609
+ # Corresponds to the JSON property `dataCacheConfig`
4610
+ # @return [Google::Apis::SqladminV1beta4::DataCacheConfig]
4611
+ attr_accessor :data_cache_config
4612
+
4613
+ # Optional. Provisioned number of I/O operations per second for the data disk.
4614
+ # This field is only used for hyperdisk-balanced disk types.
4615
+ # Corresponds to the JSON property `dataDiskProvisionedIops`
4616
+ # @return [Fixnum]
4617
+ attr_accessor :data_disk_provisioned_iops
4618
+
4619
+ # Optional. Provisioned throughput measured in MiB per second for the data disk.
4620
+ # This field is only used for hyperdisk-balanced disk types.
4621
+ # Corresponds to the JSON property `dataDiskProvisionedThroughput`
4622
+ # @return [Fixnum]
4623
+ attr_accessor :data_disk_provisioned_throughput
4624
+
2860
4625
  # The size of data disk, in GB. The data disk size minimum is 10GB.
2861
4626
  # Corresponds to the JSON property `dataDiskSizeGb`
2862
4627
  # @return [Fixnum]
@@ -2891,6 +4656,28 @@ module Google
2891
4656
  # @return [Array<Google::Apis::SqladminV1beta4::DenyMaintenancePeriod>]
2892
4657
  attr_accessor :deny_maintenance_periods
2893
4658
 
4659
+ # Optional. The edition of the instance.
4660
+ # Corresponds to the JSON property `edition`
4661
+ # @return [String]
4662
+ attr_accessor :edition
4663
+
4664
+ # Optional. By default, Cloud SQL instances have schema extraction disabled for
4665
+ # Dataplex. When this parameter is set to true, schema extraction for Dataplex
4666
+ # on Cloud SQL instances is activated.
4667
+ # Corresponds to the JSON property `enableDataplexIntegration`
4668
+ # @return [Boolean]
4669
+ attr_accessor :enable_dataplex_integration
4670
+ alias_method :enable_dataplex_integration?, :enable_dataplex_integration
4671
+
4672
+ # Optional. When this parameter is set to true, Cloud SQL instances can connect
4673
+ # to Vertex AI to pass requests for real-time predictions and insights to the AI.
4674
+ # The default value is false. This applies only to Cloud SQL for MySQL and
4675
+ # Cloud SQL for PostgreSQL instances.
4676
+ # Corresponds to the JSON property `enableGoogleMlIntegration`
4677
+ # @return [Boolean]
4678
+ attr_accessor :enable_google_ml_integration
4679
+ alias_method :enable_google_ml_integration?, :enable_google_ml_integration
4680
+
2894
4681
  # Insights configuration. This specifies when Cloud SQL Insights feature is
2895
4682
  # enabled and optional configuration.
2896
4683
  # Corresponds to the JSON property `insightsConfig`
@@ -2931,6 +4718,12 @@ module Google
2931
4718
  # @return [String]
2932
4719
  attr_accessor :pricing_plan
2933
4720
 
4721
+ # Optional. Configuration value for recreation of replica after certain
4722
+ # replication lag
4723
+ # Corresponds to the JSON property `replicationLagMaxSeconds`
4724
+ # @return [Fixnum]
4725
+ attr_accessor :replication_lag_max_seconds
4726
+
2934
4727
  # The type of replication this instance uses. This can be either `ASYNCHRONOUS`
2935
4728
  # or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First
2936
4729
  # Generation instances.
@@ -2938,6 +4731,15 @@ module Google
2938
4731
  # @return [String]
2939
4732
  attr_accessor :replication_type
2940
4733
 
4734
+ # Optional. When this parameter is set to true, Cloud SQL retains backups of the
4735
+ # instance even after the instance is deleted. The ON_DEMAND backup will be
4736
+ # retained until customer deletes the backup or the project. The AUTOMATED
4737
+ # backup will be retained based on the backups retention setting.
4738
+ # Corresponds to the JSON property `retainBackupsOnDelete`
4739
+ # @return [Boolean]
4740
+ attr_accessor :retain_backups_on_delete
4741
+ alias_method :retain_backups_on_delete?, :retain_backups_on_delete
4742
+
2941
4743
  # The version of instance settings. This is a required field for update method
2942
4744
  # to make sure concurrent updates are handled properly. During update, use the
2943
4745
  # most recent settingsVersion value for this instance and do not try to update
@@ -2989,18 +4791,26 @@ module Google
2989
4791
  def update!(**args)
2990
4792
  @activation_policy = args[:activation_policy] if args.key?(:activation_policy)
2991
4793
  @active_directory_config = args[:active_directory_config] if args.key?(:active_directory_config)
4794
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
2992
4795
  @authorized_gae_applications = args[:authorized_gae_applications] if args.key?(:authorized_gae_applications)
2993
4796
  @availability_type = args[:availability_type] if args.key?(:availability_type)
2994
4797
  @backup_configuration = args[:backup_configuration] if args.key?(:backup_configuration)
2995
4798
  @collation = args[:collation] if args.key?(:collation)
4799
+ @connection_pool_config = args[:connection_pool_config] if args.key?(:connection_pool_config)
2996
4800
  @connector_enforcement = args[:connector_enforcement] if args.key?(:connector_enforcement)
2997
4801
  @crash_safe_replication_enabled = args[:crash_safe_replication_enabled] if args.key?(:crash_safe_replication_enabled)
4802
+ @data_cache_config = args[:data_cache_config] if args.key?(:data_cache_config)
4803
+ @data_disk_provisioned_iops = args[:data_disk_provisioned_iops] if args.key?(:data_disk_provisioned_iops)
4804
+ @data_disk_provisioned_throughput = args[:data_disk_provisioned_throughput] if args.key?(:data_disk_provisioned_throughput)
2998
4805
  @data_disk_size_gb = args[:data_disk_size_gb] if args.key?(:data_disk_size_gb)
2999
4806
  @data_disk_type = args[:data_disk_type] if args.key?(:data_disk_type)
3000
4807
  @database_flags = args[:database_flags] if args.key?(:database_flags)
3001
4808
  @database_replication_enabled = args[:database_replication_enabled] if args.key?(:database_replication_enabled)
3002
4809
  @deletion_protection_enabled = args[:deletion_protection_enabled] if args.key?(:deletion_protection_enabled)
3003
4810
  @deny_maintenance_periods = args[:deny_maintenance_periods] if args.key?(:deny_maintenance_periods)
4811
+ @edition = args[:edition] if args.key?(:edition)
4812
+ @enable_dataplex_integration = args[:enable_dataplex_integration] if args.key?(:enable_dataplex_integration)
4813
+ @enable_google_ml_integration = args[:enable_google_ml_integration] if args.key?(:enable_google_ml_integration)
3004
4814
  @insights_config = args[:insights_config] if args.key?(:insights_config)
3005
4815
  @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
3006
4816
  @kind = args[:kind] if args.key?(:kind)
@@ -3008,7 +4818,9 @@ module Google
3008
4818
  @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
3009
4819
  @password_validation_policy = args[:password_validation_policy] if args.key?(:password_validation_policy)
3010
4820
  @pricing_plan = args[:pricing_plan] if args.key?(:pricing_plan)
4821
+ @replication_lag_max_seconds = args[:replication_lag_max_seconds] if args.key?(:replication_lag_max_seconds)
3011
4822
  @replication_type = args[:replication_type] if args.key?(:replication_type)
4823
+ @retain_backups_on_delete = args[:retain_backups_on_delete] if args.key?(:retain_backups_on_delete)
3012
4824
  @settings_version = args[:settings_version] if args.key?(:settings_version)
3013
4825
  @sql_server_audit_config = args[:sql_server_audit_config] if args.key?(:sql_server_audit_config)
3014
4826
  @storage_auto_resize = args[:storage_auto_resize] if args.key?(:storage_auto_resize)
@@ -3075,6 +4887,100 @@ module Google
3075
4887
  end
3076
4888
  end
3077
4889
 
4890
+ # Acquire SSRS lease response.
4891
+ class SqlInstancesAcquireSsrsLeaseResponse
4892
+ include Google::Apis::Core::Hashable
4893
+
4894
+ # The unique identifier for this operation.
4895
+ # Corresponds to the JSON property `operationId`
4896
+ # @return [String]
4897
+ attr_accessor :operation_id
4898
+
4899
+ def initialize(**args)
4900
+ update!(**args)
4901
+ end
4902
+
4903
+ # Update properties of this object
4904
+ def update!(**args)
4905
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
4906
+ end
4907
+ end
4908
+
4909
+ # Instance get disk shrink config response.
4910
+ class SqlInstancesGetDiskShrinkConfigResponse
4911
+ include Google::Apis::Core::Hashable
4912
+
4913
+ # This is always `sql#getDiskShrinkConfig`.
4914
+ # Corresponds to the JSON property `kind`
4915
+ # @return [String]
4916
+ attr_accessor :kind
4917
+
4918
+ # Additional message to customers.
4919
+ # Corresponds to the JSON property `message`
4920
+ # @return [String]
4921
+ attr_accessor :message
4922
+
4923
+ # The minimum size to which a disk can be shrunk in GigaBytes.
4924
+ # Corresponds to the JSON property `minimalTargetSizeGb`
4925
+ # @return [Fixnum]
4926
+ attr_accessor :minimal_target_size_gb
4927
+
4928
+ def initialize(**args)
4929
+ update!(**args)
4930
+ end
4931
+
4932
+ # Update properties of this object
4933
+ def update!(**args)
4934
+ @kind = args[:kind] if args.key?(:kind)
4935
+ @message = args[:message] if args.key?(:message)
4936
+ @minimal_target_size_gb = args[:minimal_target_size_gb] if args.key?(:minimal_target_size_gb)
4937
+ end
4938
+ end
4939
+
4940
+ # Instance get latest recovery time response.
4941
+ class SqlInstancesGetLatestRecoveryTimeResponse
4942
+ include Google::Apis::Core::Hashable
4943
+
4944
+ # This is always `sql#getLatestRecoveryTime`.
4945
+ # Corresponds to the JSON property `kind`
4946
+ # @return [String]
4947
+ attr_accessor :kind
4948
+
4949
+ # Timestamp, identifies the latest recovery time of the source instance.
4950
+ # Corresponds to the JSON property `latestRecoveryTime`
4951
+ # @return [String]
4952
+ attr_accessor :latest_recovery_time
4953
+
4954
+ def initialize(**args)
4955
+ update!(**args)
4956
+ end
4957
+
4958
+ # Update properties of this object
4959
+ def update!(**args)
4960
+ @kind = args[:kind] if args.key?(:kind)
4961
+ @latest_recovery_time = args[:latest_recovery_time] if args.key?(:latest_recovery_time)
4962
+ end
4963
+ end
4964
+
4965
+ # The response for the release of the SSRS lease.
4966
+ class SqlInstancesReleaseSsrsLeaseResponse
4967
+ include Google::Apis::Core::Hashable
4968
+
4969
+ # The operation ID.
4970
+ # Corresponds to the JSON property `operationId`
4971
+ # @return [String]
4972
+ attr_accessor :operation_id
4973
+
4974
+ def initialize(**args)
4975
+ update!(**args)
4976
+ end
4977
+
4978
+ # Update properties of this object
4979
+ def update!(**args)
4980
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
4981
+ end
4982
+ end
4983
+
3078
4984
  # Reschedule options for maintenance windows.
3079
4985
  class SqlInstancesRescheduleMaintenanceRequestBody
3080
4986
  include Google::Apis::Core::Hashable
@@ -3094,10 +5000,30 @@ module Google
3094
5000
  end
3095
5001
  end
3096
5002
 
5003
+ # Instance reset replica size request.
5004
+ class SqlInstancesResetReplicaSizeRequest
5005
+ include Google::Apis::Core::Hashable
5006
+
5007
+ def initialize(**args)
5008
+ update!(**args)
5009
+ end
5010
+
5011
+ # Update properties of this object
5012
+ def update!(**args)
5013
+ end
5014
+ end
5015
+
3097
5016
  #
3098
5017
  class SqlInstancesStartExternalSyncRequest
3099
5018
  include Google::Apis::Core::Hashable
3100
5019
 
5020
+ # Optional. MigrationType configures the migration to use physical files or
5021
+ # logical dump files. If not set, then the logical dump file configuration is
5022
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5023
+ # Corresponds to the JSON property `migrationType`
5024
+ # @return [String]
5025
+ attr_accessor :migration_type
5026
+
3101
5027
  # MySQL-specific external server sync settings.
3102
5028
  # Corresponds to the JSON property `mysqlSyncConfig`
3103
5029
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
@@ -3114,15 +5040,23 @@ module Google
3114
5040
  # @return [String]
3115
5041
  attr_accessor :sync_mode
3116
5042
 
5043
+ # Optional. Parallel level for initial data sync. Currently only applicable for
5044
+ # MySQL.
5045
+ # Corresponds to the JSON property `syncParallelLevel`
5046
+ # @return [String]
5047
+ attr_accessor :sync_parallel_level
5048
+
3117
5049
  def initialize(**args)
3118
5050
  update!(**args)
3119
5051
  end
3120
5052
 
3121
5053
  # Update properties of this object
3122
5054
  def update!(**args)
5055
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3123
5056
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
3124
5057
  @skip_verification = args[:skip_verification] if args.key?(:skip_verification)
3125
5058
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5059
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3126
5060
  end
3127
5061
  end
3128
5062
 
@@ -3130,16 +5064,34 @@ module Google
3130
5064
  class SqlInstancesVerifyExternalSyncSettingsRequest
3131
5065
  include Google::Apis::Core::Hashable
3132
5066
 
5067
+ # Optional. MigrationType configures the migration to use physical files or
5068
+ # logical dump files. If not set, then the logical dump file configuration is
5069
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5070
+ # Corresponds to the JSON property `migrationType`
5071
+ # @return [String]
5072
+ attr_accessor :migration_type
5073
+
3133
5074
  # MySQL-specific external server sync settings.
3134
5075
  # Corresponds to the JSON property `mysqlSyncConfig`
3135
5076
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
3136
5077
  attr_accessor :mysql_sync_config
3137
5078
 
5079
+ # Optional. Migrate only the specified objects from the source instance. If this
5080
+ # field is empty, then migrate all objects.
5081
+ # Corresponds to the JSON property `selectedObjects`
5082
+ # @return [Array<Google::Apis::SqladminV1beta4::ExternalSyncSelectedObject>]
5083
+ attr_accessor :selected_objects
5084
+
3138
5085
  # External sync mode
3139
5086
  # Corresponds to the JSON property `syncMode`
3140
5087
  # @return [String]
3141
5088
  attr_accessor :sync_mode
3142
5089
 
5090
+ # Optional. Parallel level for initial data sync. Only applicable for PostgreSQL.
5091
+ # Corresponds to the JSON property `syncParallelLevel`
5092
+ # @return [String]
5093
+ attr_accessor :sync_parallel_level
5094
+
3143
5095
  # Flag to enable verifying connection only
3144
5096
  # Corresponds to the JSON property `verifyConnectionOnly`
3145
5097
  # @return [Boolean]
@@ -3158,8 +5110,11 @@ module Google
3158
5110
 
3159
5111
  # Update properties of this object
3160
5112
  def update!(**args)
5113
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3161
5114
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
5115
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
3162
5116
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5117
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3163
5118
  @verify_connection_only = args[:verify_connection_only] if args.key?(:verify_connection_only)
3164
5119
  @verify_replication_only = args[:verify_replication_only] if args.key?(:verify_replication_only)
3165
5120
  end
@@ -3352,6 +5307,25 @@ module Google
3352
5307
  end
3353
5308
  end
3354
5309
 
5310
+ # The sub operation type based on the operation type.
5311
+ class SqlSubOperationType
5312
+ include Google::Apis::Core::Hashable
5313
+
5314
+ # The type of maintenance to be performed on the instance.
5315
+ # Corresponds to the JSON property `maintenanceType`
5316
+ # @return [String]
5317
+ attr_accessor :maintenance_type
5318
+
5319
+ def initialize(**args)
5320
+ update!(**args)
5321
+ end
5322
+
5323
+ # Update properties of this object
5324
+ def update!(**args)
5325
+ @maintenance_type = args[:maintenance_type] if args.key?(:maintenance_type)
5326
+ end
5327
+ end
5328
+
3355
5329
  # SslCerts Resource
3356
5330
  class SslCert
3357
5331
  include Google::Apis::Core::Hashable
@@ -3826,9 +5800,7 @@ module Google
3826
5800
  # @return [String]
3827
5801
  attr_accessor :kind
3828
5802
 
3829
- # An identifier that uniquely identifies the operation. You can use this
3830
- # identifier to retrieve the Operations resource that has information about the
3831
- # operation.
5803
+ # Unused.
3832
5804
  # Corresponds to the JSON property `nextPageToken`
3833
5805
  # @return [String]
3834
5806
  attr_accessor :next_page_token