google-apis-sqladmin_v1beta4 0.41.0 → 0.85.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
@@ -642,6 +1127,12 @@ module Google
642
1127
  # @return [String]
643
1128
  attr_accessor :backend_type
644
1129
 
1130
+ # Clears private network settings when the instance is restored.
1131
+ # Corresponds to the JSON property `clearNetwork`
1132
+ # @return [Boolean]
1133
+ attr_accessor :clear_network
1134
+ alias_method :clear_network?, :clear_network
1135
+
645
1136
  # Connection name of the Cloud SQL instance used in connection strings.
646
1137
  # Corresponds to the JSON property `connectionName`
647
1138
  # @return [String]
@@ -684,6 +1175,16 @@ module Google
684
1175
  # @return [Google::Apis::SqladminV1beta4::DiskEncryptionStatus]
685
1176
  attr_accessor :disk_encryption_status
686
1177
 
1178
+ # Output only. The dns name of the instance.
1179
+ # Corresponds to the JSON property `dnsName`
1180
+ # @return [String]
1181
+ attr_accessor :dns_name
1182
+
1183
+ # Output only. The list of DNS names used by this instance.
1184
+ # Corresponds to the JSON property `dnsNames`
1185
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
1186
+ attr_accessor :dns_names
1187
+
687
1188
  # This field is deprecated and will be removed from a future version of the API.
688
1189
  # Use the `settings.settingsVersion` field instead.
689
1190
  # Corresponds to the JSON property `etag`
@@ -703,6 +1204,19 @@ module Google
703
1204
  # @return [String]
704
1205
  attr_accessor :gce_zone
705
1206
 
1207
+ # Gemini instance configuration.
1208
+ # Corresponds to the JSON property `geminiConfig`
1209
+ # @return [Google::Apis::SqladminV1beta4::GeminiInstanceConfig]
1210
+ attr_accessor :gemini_config
1211
+
1212
+ # Input only. Determines whether an in-place major version upgrade of replicas
1213
+ # happens when an in-place major version upgrade of a primary instance is
1214
+ # initiated.
1215
+ # Corresponds to the JSON property `includeReplicasForMajorVersionUpgrade`
1216
+ # @return [Boolean]
1217
+ attr_accessor :include_replicas_for_major_version_upgrade
1218
+ alias_method :include_replicas_for_major_version_upgrade?, :include_replicas_for_major_version_upgrade
1219
+
706
1220
  # The instance type.
707
1221
  # Corresponds to the JSON property `instanceType`
708
1222
  # @return [String]
@@ -744,6 +1258,17 @@ module Google
744
1258
  # @return [String]
745
1259
  attr_accessor :name
746
1260
 
1261
+ # The number of read pool nodes in a read pool.
1262
+ # Corresponds to the JSON property `nodeCount`
1263
+ # @return [Fixnum]
1264
+ attr_accessor :node_count
1265
+
1266
+ # Output only. Entries containing information about each read pool node of the
1267
+ # read pool.
1268
+ # Corresponds to the JSON property `nodes`
1269
+ # @return [Array<Google::Apis::SqladminV1beta4::PoolNodeConfig>]
1270
+ attr_accessor :nodes
1271
+
747
1272
  # On-premises instance configuration.
748
1273
  # Corresponds to the JSON property `onPremisesConfiguration`
749
1274
  # @return [Google::Apis::SqladminV1beta4::OnPremisesConfiguration]
@@ -754,16 +1279,26 @@ module Google
754
1279
  # @return [Google::Apis::SqladminV1beta4::SqlOutOfDiskReport]
755
1280
  attr_accessor :out_of_disk_report
756
1281
 
1282
+ # Output only. DEPRECATED: please use write_endpoint instead.
1283
+ # Corresponds to the JSON property `primaryDnsName`
1284
+ # @return [String]
1285
+ attr_accessor :primary_dns_name
1286
+
757
1287
  # The project ID of the project containing the Cloud SQL instance. The Google
758
1288
  # apps domain is prefixed if applicable.
759
1289
  # Corresponds to the JSON property `project`
760
1290
  # @return [String]
761
1291
  attr_accessor :project
762
1292
 
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.
1293
+ # Output only. The link to service attachment of PSC instance.
1294
+ # Corresponds to the JSON property `pscServiceAttachmentLink`
1295
+ # @return [String]
1296
+ attr_accessor :psc_service_attachment_link
1297
+
1298
+ # The geographical region of the Cloud SQL instance. It can be one of the [
1299
+ # regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where
1300
+ # Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-
1301
+ # central1`. The default value is `us-central1`.
767
1302
  # Corresponds to the JSON property `region`
768
1303
  # @return [String]
769
1304
  attr_accessor :region
@@ -778,13 +1313,28 @@ module Google
778
1313
  # @return [Array<String>]
779
1314
  attr_accessor :replica_names
780
1315
 
1316
+ # A primary instance and disaster recovery (DR) replica pair. A DR replica is a
1317
+ # cross-region replica that you designate for failover in the event that the
1318
+ # primary instance has regional failure. Applicable to MySQL and PostgreSQL.
1319
+ # Corresponds to the JSON property `replicationCluster`
1320
+ # @return [Google::Apis::SqladminV1beta4::ReplicationCluster]
1321
+ attr_accessor :replication_cluster
1322
+
781
1323
  # Initial root password. Use only on creation. You must set root passwords
782
1324
  # before you can connect to PostgreSQL instances.
783
1325
  # Corresponds to the JSON property `rootPassword`
784
1326
  # @return [String]
785
1327
  attr_accessor :root_password
786
1328
 
787
- # The status indicating if instance satisfiesPzs. Reserved for future use.
1329
+ # Output only. This status indicates whether the instance satisfies PZI. The
1330
+ # status is reserved for future use.
1331
+ # Corresponds to the JSON property `satisfiesPzi`
1332
+ # @return [Boolean]
1333
+ attr_accessor :satisfies_pzi
1334
+ alias_method :satisfies_pzi?, :satisfies_pzi
1335
+
1336
+ # This status indicates whether the instance satisfies PZS. The status is
1337
+ # reserved for future use.
788
1338
  # Corresponds to the JSON property `satisfiesPzs`
789
1339
  # @return [Boolean]
790
1340
  attr_accessor :satisfies_pzs
@@ -824,6 +1374,11 @@ module Google
824
1374
  # @return [Google::Apis::SqladminV1beta4::Settings]
825
1375
  attr_accessor :settings
826
1376
 
1377
+ # The SQL network architecture for the instance.
1378
+ # Corresponds to the JSON property `sqlNetworkArchitecture`
1379
+ # @return [String]
1380
+ attr_accessor :sql_network_architecture
1381
+
827
1382
  # The current serving state of the Cloud SQL instance.
828
1383
  # Corresponds to the JSON property `state`
829
1384
  # @return [String]
@@ -834,6 +1389,33 @@ module Google
834
1389
  # @return [Array<String>]
835
1390
  attr_accessor :suspension_reason
836
1391
 
1392
+ # Input only. Whether Cloud SQL is enabled to switch storing point-in-time
1393
+ # recovery log files from a data disk to Cloud Storage.
1394
+ # Corresponds to the JSON property `switchTransactionLogsToCloudStorageEnabled`
1395
+ # @return [Boolean]
1396
+ attr_accessor :switch_transaction_logs_to_cloud_storage_enabled
1397
+ alias_method :switch_transaction_logs_to_cloud_storage_enabled?, :switch_transaction_logs_to_cloud_storage_enabled
1398
+
1399
+ # Optional. Input only. Immutable. Tag keys and tag values that are bound to
1400
+ # this instance. You must represent each item in the map as: `"" : ""`. For
1401
+ # example, a single resource can have the following tags: ``` "123/environment":
1402
+ # "production", "123/costCenter": "marketing", ``` For more information on tag
1403
+ # creation and management, see https://cloud.google.com/resource-manager/docs/
1404
+ # tags/tags-overview.
1405
+ # Corresponds to the JSON property `tags`
1406
+ # @return [Hash<String,String>]
1407
+ attr_accessor :tags
1408
+
1409
+ # Output only. All database versions that are available for upgrade.
1410
+ # Corresponds to the JSON property `upgradableDatabaseVersions`
1411
+ # @return [Array<Google::Apis::SqladminV1beta4::AvailableDatabaseVersion>]
1412
+ attr_accessor :upgradable_database_versions
1413
+
1414
+ # Output only. The dns name of the primary instance in a replication group.
1415
+ # Corresponds to the JSON property `writeEndpoint`
1416
+ # @return [String]
1417
+ attr_accessor :write_endpoint
1418
+
837
1419
  def initialize(**args)
838
1420
  update!(**args)
839
1421
  end
@@ -842,6 +1424,7 @@ module Google
842
1424
  def update!(**args)
843
1425
  @available_maintenance_versions = args[:available_maintenance_versions] if args.key?(:available_maintenance_versions)
844
1426
  @backend_type = args[:backend_type] if args.key?(:backend_type)
1427
+ @clear_network = args[:clear_network] if args.key?(:clear_network)
845
1428
  @connection_name = args[:connection_name] if args.key?(:connection_name)
846
1429
  @create_time = args[:create_time] if args.key?(:create_time)
847
1430
  @current_disk_size = args[:current_disk_size] if args.key?(:current_disk_size)
@@ -849,9 +1432,13 @@ module Google
849
1432
  @database_version = args[:database_version] if args.key?(:database_version)
850
1433
  @disk_encryption_configuration = args[:disk_encryption_configuration] if args.key?(:disk_encryption_configuration)
851
1434
  @disk_encryption_status = args[:disk_encryption_status] if args.key?(:disk_encryption_status)
1435
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
1436
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
852
1437
  @etag = args[:etag] if args.key?(:etag)
853
1438
  @failover_replica = args[:failover_replica] if args.key?(:failover_replica)
854
1439
  @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
1440
+ @gemini_config = args[:gemini_config] if args.key?(:gemini_config)
1441
+ @include_replicas_for_major_version_upgrade = args[:include_replicas_for_major_version_upgrade] if args.key?(:include_replicas_for_major_version_upgrade)
855
1442
  @instance_type = args[:instance_type] if args.key?(:instance_type)
856
1443
  @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
857
1444
  @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
@@ -860,13 +1447,19 @@ module Google
860
1447
  @master_instance_name = args[:master_instance_name] if args.key?(:master_instance_name)
861
1448
  @max_disk_size = args[:max_disk_size] if args.key?(:max_disk_size)
862
1449
  @name = args[:name] if args.key?(:name)
1450
+ @node_count = args[:node_count] if args.key?(:node_count)
1451
+ @nodes = args[:nodes] if args.key?(:nodes)
863
1452
  @on_premises_configuration = args[:on_premises_configuration] if args.key?(:on_premises_configuration)
864
1453
  @out_of_disk_report = args[:out_of_disk_report] if args.key?(:out_of_disk_report)
1454
+ @primary_dns_name = args[:primary_dns_name] if args.key?(:primary_dns_name)
865
1455
  @project = args[:project] if args.key?(:project)
1456
+ @psc_service_attachment_link = args[:psc_service_attachment_link] if args.key?(:psc_service_attachment_link)
866
1457
  @region = args[:region] if args.key?(:region)
867
1458
  @replica_configuration = args[:replica_configuration] if args.key?(:replica_configuration)
868
1459
  @replica_names = args[:replica_names] if args.key?(:replica_names)
1460
+ @replication_cluster = args[:replication_cluster] if args.key?(:replication_cluster)
869
1461
  @root_password = args[:root_password] if args.key?(:root_password)
1462
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
870
1463
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
871
1464
  @scheduled_maintenance = args[:scheduled_maintenance] if args.key?(:scheduled_maintenance)
872
1465
  @secondary_gce_zone = args[:secondary_gce_zone] if args.key?(:secondary_gce_zone)
@@ -874,8 +1467,13 @@ module Google
874
1467
  @server_ca_cert = args[:server_ca_cert] if args.key?(:server_ca_cert)
875
1468
  @service_account_email_address = args[:service_account_email_address] if args.key?(:service_account_email_address)
876
1469
  @settings = args[:settings] if args.key?(:settings)
1470
+ @sql_network_architecture = args[:sql_network_architecture] if args.key?(:sql_network_architecture)
877
1471
  @state = args[:state] if args.key?(:state)
878
1472
  @suspension_reason = args[:suspension_reason] if args.key?(:suspension_reason)
1473
+ @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)
1474
+ @tags = args[:tags] if args.key?(:tags)
1475
+ @upgradable_database_versions = args[:upgradable_database_versions] if args.key?(:upgradable_database_versions)
1476
+ @write_endpoint = args[:write_endpoint] if args.key?(:write_endpoint)
879
1477
  end
880
1478
 
881
1479
  # The name and status of the failover replica.
@@ -934,6 +1532,33 @@ module Google
934
1532
  end
935
1533
  end
936
1534
 
1535
+ # This context is used to demote an existing standalone instance to be a Cloud
1536
+ # SQL read replica for an external database server.
1537
+ class DemoteContext
1538
+ include Google::Apis::Core::Hashable
1539
+
1540
+ # This is always `sql#demoteContext`.
1541
+ # Corresponds to the JSON property `kind`
1542
+ # @return [String]
1543
+ attr_accessor :kind
1544
+
1545
+ # Required. The name of the instance which acts as an on-premises primary
1546
+ # instance in the replication setup.
1547
+ # Corresponds to the JSON property `sourceRepresentativeInstanceName`
1548
+ # @return [String]
1549
+ attr_accessor :source_representative_instance_name
1550
+
1551
+ def initialize(**args)
1552
+ update!(**args)
1553
+ end
1554
+
1555
+ # Update properties of this object
1556
+ def update!(**args)
1557
+ @kind = args[:kind] if args.key?(:kind)
1558
+ @source_representative_instance_name = args[:source_representative_instance_name] if args.key?(:source_representative_instance_name)
1559
+ end
1560
+ end
1561
+
937
1562
  # Read-replica configuration for connecting to the on-premises primary instance.
938
1563
  class DemoteMasterConfiguration
939
1564
  include Google::Apis::Core::Hashable
@@ -1024,7 +1649,7 @@ module Google
1024
1649
  # @return [String]
1025
1650
  attr_accessor :client_certificate
1026
1651
 
1027
- # PEM representation of the replica's private key. The corresponsing public key
1652
+ # PEM representation of the replica's private key. The corresponding public key
1028
1653
  # is encoded in the client's certificate. The format of the replica's private
1029
1654
  # key can be either PKCS #1 or PKCS #8.
1030
1655
  # Corresponds to the JSON property `clientKey`
@@ -1134,10 +1759,59 @@ module Google
1134
1759
  # @return [String]
1135
1760
  attr_accessor :kind
1136
1761
 
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
1762
+ # KMS key version used to encrypt the Cloud SQL instance resource
1763
+ # Corresponds to the JSON property `kmsKeyVersionName`
1764
+ # @return [String]
1765
+ attr_accessor :kms_key_version_name
1766
+
1767
+ def initialize(**args)
1768
+ update!(**args)
1769
+ end
1770
+
1771
+ # Update properties of this object
1772
+ def update!(**args)
1773
+ @kind = args[:kind] if args.key?(:kind)
1774
+ @kms_key_version_name = args[:kms_key_version_name] if args.key?(:kms_key_version_name)
1775
+ end
1776
+ end
1777
+
1778
+ # DNS metadata.
1779
+ class DnsNameMapping
1780
+ include Google::Apis::Core::Hashable
1781
+
1782
+ # Output only. The connection type of the DNS name.
1783
+ # Corresponds to the JSON property `connectionType`
1784
+ # @return [String]
1785
+ attr_accessor :connection_type
1786
+
1787
+ # Output only. The scope that the DNS name applies to.
1788
+ # Corresponds to the JSON property `dnsScope`
1789
+ # @return [String]
1790
+ attr_accessor :dns_scope
1791
+
1792
+ # The DNS name.
1793
+ # Corresponds to the JSON property `name`
1794
+ # @return [String]
1795
+ attr_accessor :name
1796
+
1797
+ def initialize(**args)
1798
+ update!(**args)
1799
+ end
1800
+
1801
+ # Update properties of this object
1802
+ def update!(**args)
1803
+ @connection_type = args[:connection_type] if args.key?(:connection_type)
1804
+ @dns_scope = args[:dns_scope] if args.key?(:dns_scope)
1805
+ @name = args[:name] if args.key?(:name)
1806
+ end
1807
+ end
1808
+
1809
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1810
+ # messages in your APIs. A typical example is to use it as the request or the
1811
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1812
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1813
+ class Empty
1814
+ include Google::Apis::Core::Hashable
1141
1815
 
1142
1816
  def initialize(**args)
1143
1817
  update!(**args)
@@ -1145,8 +1819,6 @@ module Google
1145
1819
 
1146
1820
  # Update properties of this object
1147
1821
  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
1822
  end
1151
1823
  end
1152
1824
 
@@ -1168,11 +1840,14 @@ module Google
1168
1840
  # database is specified, all databases are exported, except for the `mysql`
1169
1841
  # system database. If `fileType` is `CSV`, you can specify one database, either
1170
1842
  # 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`.
1843
+ # which takes precedence over this property. `PostgreSQL instances:` If you don'
1844
+ # t specify a database by name, all user databases in the instance are exported.
1845
+ # This excludes system databases and Cloud SQL databases used to manage internal
1846
+ # operations. Exporting all user databases is only available for directory-
1847
+ # formatted parallel export. If `fileType` is `CSV`, this database must match
1848
+ # the one specified in the `csvExportOptions.selectQuery` property. `SQL Server
1849
+ # instances:` You must specify one database to be exported, and the `fileType`
1850
+ # must be `BAK`.
1176
1851
  # Corresponds to the JSON property `databases`
1177
1852
  # @return [Array<String>]
1178
1853
  attr_accessor :databases
@@ -1187,7 +1862,7 @@ module Google
1187
1862
  # @return [String]
1188
1863
  attr_accessor :kind
1189
1864
 
1190
- # Option for export offload.
1865
+ # Whether to perform a serverless export.
1191
1866
  # Corresponds to the JSON property `offload`
1192
1867
  # @return [Boolean]
1193
1868
  attr_accessor :offload
@@ -1198,6 +1873,11 @@ module Google
1198
1873
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions]
1199
1874
  attr_accessor :sql_export_options
1200
1875
 
1876
+ # Optional. Export parameters specific to SQL Server TDE certificates
1877
+ # Corresponds to the JSON property `tdeExportOptions`
1878
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::TdeExportOptions]
1879
+ attr_accessor :tde_export_options
1880
+
1201
1881
  # The path to the file in Google Cloud Storage where the export will be stored.
1202
1882
  # The URI is in the form `gs://bucketName/fileName`. If the file already exists,
1203
1883
  # the request succeeds, but the operation fails. If `fileType` is `SQL` and the
@@ -1219,6 +1899,7 @@ module Google
1219
1899
  @kind = args[:kind] if args.key?(:kind)
1220
1900
  @offload = args[:offload] if args.key?(:offload)
1221
1901
  @sql_export_options = args[:sql_export_options] if args.key?(:sql_export_options)
1902
+ @tde_export_options = args[:tde_export_options] if args.key?(:tde_export_options)
1222
1903
  @uri = args[:uri] if args.key?(:uri)
1223
1904
  end
1224
1905
 
@@ -1226,6 +1907,41 @@ module Google
1226
1907
  class BakExportOptions
1227
1908
  include Google::Apis::Core::Hashable
1228
1909
 
1910
+ # Type of this bak file will be export, FULL or DIFF, SQL Server only
1911
+ # Corresponds to the JSON property `bakType`
1912
+ # @return [String]
1913
+ attr_accessor :bak_type
1914
+
1915
+ # Deprecated: copy_only is deprecated. Use differential_base instead
1916
+ # Corresponds to the JSON property `copyOnly`
1917
+ # @return [Boolean]
1918
+ attr_accessor :copy_only
1919
+ alias_method :copy_only?, :copy_only
1920
+
1921
+ # Whether or not the backup can be used as a differential base copy_only backup
1922
+ # can not be served as differential base
1923
+ # Corresponds to the JSON property `differentialBase`
1924
+ # @return [Boolean]
1925
+ attr_accessor :differential_base
1926
+ alias_method :differential_base?, :differential_base
1927
+
1928
+ # Optional. The end timestamp when transaction log will be included in the
1929
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
1930
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
1931
+ # until current time will be included. Only applied to Cloud SQL for SQL Server.
1932
+ # Corresponds to the JSON property `exportLogEndTime`
1933
+ # @return [String]
1934
+ attr_accessor :export_log_end_time
1935
+
1936
+ # Optional. The begin timestamp when transaction log will be included in the
1937
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
1938
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
1939
+ # from the beginning of retention period will be included. Only applied to Cloud
1940
+ # SQL for SQL Server.
1941
+ # Corresponds to the JSON property `exportLogStartTime`
1942
+ # @return [String]
1943
+ attr_accessor :export_log_start_time
1944
+
1229
1945
  # Option for specifying how many stripes to use for the export. If blank, and
1230
1946
  # the value of the striped field is true, the number of stripes is automatically
1231
1947
  # chosen.
@@ -1245,6 +1961,11 @@ module Google
1245
1961
 
1246
1962
  # Update properties of this object
1247
1963
  def update!(**args)
1964
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
1965
+ @copy_only = args[:copy_only] if args.key?(:copy_only)
1966
+ @differential_base = args[:differential_base] if args.key?(:differential_base)
1967
+ @export_log_end_time = args[:export_log_end_time] if args.key?(:export_log_end_time)
1968
+ @export_log_start_time = args[:export_log_start_time] if args.key?(:export_log_start_time)
1248
1969
  @stripe_count = args[:stripe_count] if args.key?(:stripe_count)
1249
1970
  @striped = args[:striped] if args.key?(:striped)
1250
1971
  end
@@ -1305,6 +2026,17 @@ module Google
1305
2026
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::MysqlExportOptions]
1306
2027
  attr_accessor :mysql_export_options
1307
2028
 
2029
+ # Optional. Whether or not the export should be parallel.
2030
+ # Corresponds to the JSON property `parallel`
2031
+ # @return [Boolean]
2032
+ attr_accessor :parallel
2033
+ alias_method :parallel?, :parallel
2034
+
2035
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2036
+ # Corresponds to the JSON property `postgresExportOptions`
2037
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::PostgresExportOptions]
2038
+ attr_accessor :postgres_export_options
2039
+
1308
2040
  # Export only schemas.
1309
2041
  # Corresponds to the JSON property `schemaOnly`
1310
2042
  # @return [Boolean]
@@ -1318,6 +2050,11 @@ module Google
1318
2050
  # @return [Array<String>]
1319
2051
  attr_accessor :tables
1320
2052
 
2053
+ # Optional. The number of threads to use for parallel export.
2054
+ # Corresponds to the JSON property `threads`
2055
+ # @return [Fixnum]
2056
+ attr_accessor :threads
2057
+
1321
2058
  def initialize(**args)
1322
2059
  update!(**args)
1323
2060
  end
@@ -1325,8 +2062,11 @@ module Google
1325
2062
  # Update properties of this object
1326
2063
  def update!(**args)
1327
2064
  @mysql_export_options = args[:mysql_export_options] if args.key?(:mysql_export_options)
2065
+ @parallel = args[:parallel] if args.key?(:parallel)
2066
+ @postgres_export_options = args[:postgres_export_options] if args.key?(:postgres_export_options)
1328
2067
  @schema_only = args[:schema_only] if args.key?(:schema_only)
1329
2068
  @tables = args[:tables] if args.key?(:tables)
2069
+ @threads = args[:threads] if args.key?(:threads)
1330
2070
  end
1331
2071
 
1332
2072
  # Options for exporting from MySQL.
@@ -1351,6 +2091,95 @@ module Google
1351
2091
  @master_data = args[:master_data] if args.key?(:master_data)
1352
2092
  end
1353
2093
  end
2094
+
2095
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2096
+ class PostgresExportOptions
2097
+ include Google::Apis::Core::Hashable
2098
+
2099
+ # Optional. Use this option to include DROP <object> SQL statements. Use these
2100
+ # statements to delete database objects before running the import operation.
2101
+ # Corresponds to the JSON property `clean`
2102
+ # @return [Boolean]
2103
+ attr_accessor :clean
2104
+ alias_method :clean?, :clean
2105
+
2106
+ # Optional. Option to include an IF EXISTS SQL statement with each DROP
2107
+ # statement produced by clean.
2108
+ # Corresponds to the JSON property `ifExists`
2109
+ # @return [Boolean]
2110
+ attr_accessor :if_exists
2111
+ alias_method :if_exists?, :if_exists
2112
+
2113
+ def initialize(**args)
2114
+ update!(**args)
2115
+ end
2116
+
2117
+ # Update properties of this object
2118
+ def update!(**args)
2119
+ @clean = args[:clean] if args.key?(:clean)
2120
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2121
+ end
2122
+ end
2123
+ end
2124
+
2125
+ # Optional. Export parameters specific to SQL Server TDE certificates
2126
+ class TdeExportOptions
2127
+ include Google::Apis::Core::Hashable
2128
+
2129
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2130
+ # fileName. The instance must have write access to the location. Applicable only
2131
+ # for SQL Server instances.
2132
+ # Corresponds to the JSON property `certificatePath`
2133
+ # @return [String]
2134
+ attr_accessor :certificate_path
2135
+
2136
+ # Required. Certificate name. Applicable only for SQL Server instances.
2137
+ # Corresponds to the JSON property `name`
2138
+ # @return [String]
2139
+ attr_accessor :name
2140
+
2141
+ # Required. Password that encrypts the private key.
2142
+ # Corresponds to the JSON property `privateKeyPassword`
2143
+ # @return [String]
2144
+ attr_accessor :private_key_password
2145
+
2146
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2147
+ # fileName. The instance must have write access to the location. Applicable only
2148
+ # for SQL Server instances.
2149
+ # Corresponds to the JSON property `privateKeyPath`
2150
+ # @return [String]
2151
+ attr_accessor :private_key_path
2152
+
2153
+ def initialize(**args)
2154
+ update!(**args)
2155
+ end
2156
+
2157
+ # Update properties of this object
2158
+ def update!(**args)
2159
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2160
+ @name = args[:name] if args.key?(:name)
2161
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2162
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2163
+ end
2164
+ end
2165
+ end
2166
+
2167
+ # The selected object that Cloud SQL migrates.
2168
+ class ExternalSyncSelectedObject
2169
+ include Google::Apis::Core::Hashable
2170
+
2171
+ # The name of the database that Cloud SQL migrates.
2172
+ # Corresponds to the JSON property `database`
2173
+ # @return [String]
2174
+ attr_accessor :database
2175
+
2176
+ def initialize(**args)
2177
+ update!(**args)
2178
+ end
2179
+
2180
+ # Update properties of this object
2181
+ def update!(**args)
2182
+ @database = args[:database] if args.key?(:database)
1354
2183
  end
1355
2184
  end
1356
2185
 
@@ -1406,6 +2235,11 @@ module Google
1406
2235
  # @return [Array<String>]
1407
2236
  attr_accessor :applies_to
1408
2237
 
2238
+ # Scope of flag.
2239
+ # Corresponds to the JSON property `flagScope`
2240
+ # @return [String]
2241
+ attr_accessor :flag_scope
2242
+
1409
2243
  # Whether or not the flag is considered in beta.
1410
2244
  # Corresponds to the JSON property `inBeta`
1411
2245
  # @return [Boolean]
@@ -1433,6 +2267,16 @@ module Google
1433
2267
  # @return [String]
1434
2268
  attr_accessor :name
1435
2269
 
2270
+ # Recommended flag value in integer format for UI display.
2271
+ # Corresponds to the JSON property `recommendedIntValue`
2272
+ # @return [Fixnum]
2273
+ attr_accessor :recommended_int_value
2274
+
2275
+ # Recommended flag value in string format for UI display.
2276
+ # Corresponds to the JSON property `recommendedStringValue`
2277
+ # @return [String]
2278
+ attr_accessor :recommended_string_value
2279
+
1436
2280
  # Indicates whether changing this flag will trigger a database restart. Only
1437
2281
  # applicable to Second Generation instances.
1438
2282
  # Corresponds to the JSON property `requiresRestart`
@@ -1456,11 +2300,14 @@ module Google
1456
2300
  @allowed_int_values = args[:allowed_int_values] if args.key?(:allowed_int_values)
1457
2301
  @allowed_string_values = args[:allowed_string_values] if args.key?(:allowed_string_values)
1458
2302
  @applies_to = args[:applies_to] if args.key?(:applies_to)
2303
+ @flag_scope = args[:flag_scope] if args.key?(:flag_scope)
1459
2304
  @in_beta = args[:in_beta] if args.key?(:in_beta)
1460
2305
  @kind = args[:kind] if args.key?(:kind)
1461
2306
  @max_value = args[:max_value] if args.key?(:max_value)
1462
2307
  @min_value = args[:min_value] if args.key?(:min_value)
1463
2308
  @name = args[:name] if args.key?(:name)
2309
+ @recommended_int_value = args[:recommended_int_value] if args.key?(:recommended_int_value)
2310
+ @recommended_string_value = args[:recommended_string_value] if args.key?(:recommended_string_value)
1464
2311
  @requires_restart = args[:requires_restart] if args.key?(:requires_restart)
1465
2312
  @type = args[:type] if args.key?(:type)
1466
2313
  end
@@ -1491,6 +2338,61 @@ module Google
1491
2338
  end
1492
2339
  end
1493
2340
 
2341
+ # Gemini instance configuration.
2342
+ class GeminiInstanceConfig
2343
+ include Google::Apis::Core::Hashable
2344
+
2345
+ # Output only. Whether the active query is enabled.
2346
+ # Corresponds to the JSON property `activeQueryEnabled`
2347
+ # @return [Boolean]
2348
+ attr_accessor :active_query_enabled
2349
+ alias_method :active_query_enabled?, :active_query_enabled
2350
+
2351
+ # Output only. Whether Gemini is enabled.
2352
+ # Corresponds to the JSON property `entitled`
2353
+ # @return [Boolean]
2354
+ attr_accessor :entitled
2355
+ alias_method :entitled?, :entitled
2356
+
2357
+ # Output only. Whether the flag recommender is enabled.
2358
+ # Corresponds to the JSON property `flagRecommenderEnabled`
2359
+ # @return [Boolean]
2360
+ attr_accessor :flag_recommender_enabled
2361
+ alias_method :flag_recommender_enabled?, :flag_recommender_enabled
2362
+
2363
+ # Output only. Whether the vacuum management is enabled.
2364
+ # Corresponds to the JSON property `googleVacuumMgmtEnabled`
2365
+ # @return [Boolean]
2366
+ attr_accessor :google_vacuum_mgmt_enabled
2367
+ alias_method :google_vacuum_mgmt_enabled?, :google_vacuum_mgmt_enabled
2368
+
2369
+ # Output only. Whether the index advisor is enabled.
2370
+ # Corresponds to the JSON property `indexAdvisorEnabled`
2371
+ # @return [Boolean]
2372
+ attr_accessor :index_advisor_enabled
2373
+ alias_method :index_advisor_enabled?, :index_advisor_enabled
2374
+
2375
+ # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
2376
+ # Corresponds to the JSON property `oomSessionCancelEnabled`
2377
+ # @return [Boolean]
2378
+ attr_accessor :oom_session_cancel_enabled
2379
+ alias_method :oom_session_cancel_enabled?, :oom_session_cancel_enabled
2380
+
2381
+ def initialize(**args)
2382
+ update!(**args)
2383
+ end
2384
+
2385
+ # Update properties of this object
2386
+ def update!(**args)
2387
+ @active_query_enabled = args[:active_query_enabled] if args.key?(:active_query_enabled)
2388
+ @entitled = args[:entitled] if args.key?(:entitled)
2389
+ @flag_recommender_enabled = args[:flag_recommender_enabled] if args.key?(:flag_recommender_enabled)
2390
+ @google_vacuum_mgmt_enabled = args[:google_vacuum_mgmt_enabled] if args.key?(:google_vacuum_mgmt_enabled)
2391
+ @index_advisor_enabled = args[:index_advisor_enabled] if args.key?(:index_advisor_enabled)
2392
+ @oom_session_cancel_enabled = args[:oom_session_cancel_enabled] if args.key?(:oom_session_cancel_enabled)
2393
+ end
2394
+ end
2395
+
1494
2396
  # Ephemeral certificate creation request.
1495
2397
  class GenerateEphemeralCertRequest
1496
2398
  include Google::Apis::Core::Hashable
@@ -1563,8 +2465,10 @@ module Google
1563
2465
 
1564
2466
  # The target database for the import. If `fileType` is `SQL`, this field is
1565
2467
  # 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.
2468
+ # overridden by any database specification in the import file. For entire
2469
+ # instance parallel import operations, the database is overridden by the
2470
+ # database name stored in subdirectory name. If `fileType` is `CSV`, one
2471
+ # database must be specified.
1568
2472
  # Corresponds to the JSON property `database`
1569
2473
  # @return [String]
1570
2474
  attr_accessor :database
@@ -1586,6 +2490,17 @@ module Google
1586
2490
  # @return [String]
1587
2491
  attr_accessor :kind
1588
2492
 
2493
+ # Optional. Options for importing data from SQL statements.
2494
+ # Corresponds to the JSON property `sqlImportOptions`
2495
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions]
2496
+ attr_accessor :sql_import_options
2497
+
2498
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2499
+ # parameters specific to SQL Server TDE certificates
2500
+ # Corresponds to the JSON property `tdeImportOptions`
2501
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::TdeImportOptions]
2502
+ attr_accessor :tde_import_options
2503
+
1589
2504
  # Path to the import file in Cloud Storage, in the form `gs://bucketName/
1590
2505
  # fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`.
1591
2506
  # The instance must have write permissions to the bucket and read access to the
@@ -1606,6 +2521,8 @@ module Google
1606
2521
  @file_type = args[:file_type] if args.key?(:file_type)
1607
2522
  @import_user = args[:import_user] if args.key?(:import_user)
1608
2523
  @kind = args[:kind] if args.key?(:kind)
2524
+ @sql_import_options = args[:sql_import_options] if args.key?(:sql_import_options)
2525
+ @tde_import_options = args[:tde_import_options] if args.key?(:tde_import_options)
1609
2526
  @uri = args[:uri] if args.key?(:uri)
1610
2527
  end
1611
2528
 
@@ -1613,11 +2530,47 @@ module Google
1613
2530
  class BakImportOptions
1614
2531
  include Google::Apis::Core::Hashable
1615
2532
 
2533
+ # Type of the bak content, FULL or DIFF.
2534
+ # Corresponds to the JSON property `bakType`
2535
+ # @return [String]
2536
+ attr_accessor :bak_type
2537
+
1616
2538
  #
1617
2539
  # Corresponds to the JSON property `encryptionOptions`
1618
2540
  # @return [Google::Apis::SqladminV1beta4::ImportContext::BakImportOptions::EncryptionOptions]
1619
2541
  attr_accessor :encryption_options
1620
2542
 
2543
+ # Whether or not the backup importing will restore database with NORECOVERY
2544
+ # option Applies only to Cloud SQL for SQL Server.
2545
+ # Corresponds to the JSON property `noRecovery`
2546
+ # @return [Boolean]
2547
+ attr_accessor :no_recovery
2548
+ alias_method :no_recovery?, :no_recovery
2549
+
2550
+ # Whether or not the backup importing request will just bring database online
2551
+ # without downloading Bak content only one of "no_recovery" and "recovery_only"
2552
+ # can be true otherwise error will return. Applies only to Cloud SQL for SQL
2553
+ # Server.
2554
+ # Corresponds to the JSON property `recoveryOnly`
2555
+ # @return [Boolean]
2556
+ attr_accessor :recovery_only
2557
+ alias_method :recovery_only?, :recovery_only
2558
+
2559
+ # Optional. The timestamp when the import should stop. This timestamp is in the [
2560
+ # RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-
2561
+ # 01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies
2562
+ # to Cloud SQL for SQL Server only.
2563
+ # Corresponds to the JSON property `stopAt`
2564
+ # @return [String]
2565
+ attr_accessor :stop_at
2566
+
2567
+ # Optional. The marked transaction where the import should stop. This field is
2568
+ # equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server
2569
+ # only.
2570
+ # Corresponds to the JSON property `stopAtMark`
2571
+ # @return [String]
2572
+ attr_accessor :stop_at_mark
2573
+
1621
2574
  # Whether or not the backup set being restored is striped. Applies only to Cloud
1622
2575
  # SQL for SQL Server.
1623
2576
  # Corresponds to the JSON property `striped`
@@ -1631,7 +2584,12 @@ module Google
1631
2584
 
1632
2585
  # Update properties of this object
1633
2586
  def update!(**args)
2587
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
1634
2588
  @encryption_options = args[:encryption_options] if args.key?(:encryption_options)
2589
+ @no_recovery = args[:no_recovery] if args.key?(:no_recovery)
2590
+ @recovery_only = args[:recovery_only] if args.key?(:recovery_only)
2591
+ @stop_at = args[:stop_at] if args.key?(:stop_at)
2592
+ @stop_at_mark = args[:stop_at_mark] if args.key?(:stop_at_mark)
1635
2593
  @striped = args[:striped] if args.key?(:striped)
1636
2594
  end
1637
2595
 
@@ -1646,6 +2604,12 @@ module Google
1646
2604
  # @return [String]
1647
2605
  attr_accessor :cert_path
1648
2606
 
2607
+ # Optional. Whether the imported file remains encrypted.
2608
+ # Corresponds to the JSON property `keepEncrypted`
2609
+ # @return [Boolean]
2610
+ attr_accessor :keep_encrypted
2611
+ alias_method :keep_encrypted?, :keep_encrypted
2612
+
1649
2613
  # Password that encrypts the private key
1650
2614
  # Corresponds to the JSON property `pvkPassword`
1651
2615
  # @return [String]
@@ -1665,6 +2629,7 @@ module Google
1665
2629
  # Update properties of this object
1666
2630
  def update!(**args)
1667
2631
  @cert_path = args[:cert_path] if args.key?(:cert_path)
2632
+ @keep_encrypted = args[:keep_encrypted] if args.key?(:keep_encrypted)
1668
2633
  @pvk_password = args[:pvk_password] if args.key?(:pvk_password)
1669
2634
  @pvk_path = args[:pvk_path] if args.key?(:pvk_path)
1670
2635
  end
@@ -1723,6 +2688,109 @@ module Google
1723
2688
  @table = args[:table] if args.key?(:table)
1724
2689
  end
1725
2690
  end
2691
+
2692
+ # Optional. Options for importing data from SQL statements.
2693
+ class SqlImportOptions
2694
+ include Google::Apis::Core::Hashable
2695
+
2696
+ # Optional. Whether or not the import should be parallel.
2697
+ # Corresponds to the JSON property `parallel`
2698
+ # @return [Boolean]
2699
+ attr_accessor :parallel
2700
+ alias_method :parallel?, :parallel
2701
+
2702
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2703
+ # Corresponds to the JSON property `postgresImportOptions`
2704
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions::PostgresImportOptions]
2705
+ attr_accessor :postgres_import_options
2706
+
2707
+ # Optional. The number of threads to use for parallel import.
2708
+ # Corresponds to the JSON property `threads`
2709
+ # @return [Fixnum]
2710
+ attr_accessor :threads
2711
+
2712
+ def initialize(**args)
2713
+ update!(**args)
2714
+ end
2715
+
2716
+ # Update properties of this object
2717
+ def update!(**args)
2718
+ @parallel = args[:parallel] if args.key?(:parallel)
2719
+ @postgres_import_options = args[:postgres_import_options] if args.key?(:postgres_import_options)
2720
+ @threads = args[:threads] if args.key?(:threads)
2721
+ end
2722
+
2723
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2724
+ class PostgresImportOptions
2725
+ include Google::Apis::Core::Hashable
2726
+
2727
+ # Optional. The --clean flag for the pg_restore utility. This flag applies only
2728
+ # if you enabled Cloud SQL to import files in parallel.
2729
+ # Corresponds to the JSON property `clean`
2730
+ # @return [Boolean]
2731
+ attr_accessor :clean
2732
+ alias_method :clean?, :clean
2733
+
2734
+ # Optional. The --if-exists flag for the pg_restore utility. This flag applies
2735
+ # only if you enabled Cloud SQL to import files in parallel.
2736
+ # Corresponds to the JSON property `ifExists`
2737
+ # @return [Boolean]
2738
+ attr_accessor :if_exists
2739
+ alias_method :if_exists?, :if_exists
2740
+
2741
+ def initialize(**args)
2742
+ update!(**args)
2743
+ end
2744
+
2745
+ # Update properties of this object
2746
+ def update!(**args)
2747
+ @clean = args[:clean] if args.key?(:clean)
2748
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2749
+ end
2750
+ end
2751
+ end
2752
+
2753
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2754
+ # parameters specific to SQL Server TDE certificates
2755
+ class TdeImportOptions
2756
+ include Google::Apis::Core::Hashable
2757
+
2758
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2759
+ # fileName. The instance must have read access to the file. Applicable only for
2760
+ # SQL Server instances.
2761
+ # Corresponds to the JSON property `certificatePath`
2762
+ # @return [String]
2763
+ attr_accessor :certificate_path
2764
+
2765
+ # Required. Certificate name. Applicable only for SQL Server instances.
2766
+ # Corresponds to the JSON property `name`
2767
+ # @return [String]
2768
+ attr_accessor :name
2769
+
2770
+ # Required. Password that encrypts the private key.
2771
+ # Corresponds to the JSON property `privateKeyPassword`
2772
+ # @return [String]
2773
+ attr_accessor :private_key_password
2774
+
2775
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2776
+ # fileName. The instance must have read access to the file. Applicable only for
2777
+ # SQL Server instances.
2778
+ # Corresponds to the JSON property `privateKeyPath`
2779
+ # @return [String]
2780
+ attr_accessor :private_key_path
2781
+
2782
+ def initialize(**args)
2783
+ update!(**args)
2784
+ end
2785
+
2786
+ # Update properties of this object
2787
+ def update!(**args)
2788
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2789
+ @name = args[:name] if args.key?(:name)
2790
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2791
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2792
+ end
2793
+ end
1726
2794
  end
1727
2795
 
1728
2796
  # Insights configuration. This specifies when Cloud SQL Insights feature is
@@ -1743,8 +2811,8 @@ module Google
1743
2811
  attr_accessor :query_plans_per_minute
1744
2812
 
1745
2813
  # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-
1746
- # 4500 bytes. Query length more than this field value will be truncated to this
1747
- # value. When unset, query length will be the default value. Changing query
2814
+ # 4500 bytes. Query lengths greater than this field value will be truncated to
2815
+ # this value. When unset, query length will be the default value. Changing query
1748
2816
  # length will restart the database.
1749
2817
  # Corresponds to the JSON property `queryStringLength`
1750
2818
  # @return [Fixnum]
@@ -1809,6 +2877,25 @@ module Google
1809
2877
  end
1810
2878
  end
1811
2879
 
2880
+ # Request to acquire an SSRS lease for an instance.
2881
+ class InstancesAcquireSsrsLeaseRequest
2882
+ include Google::Apis::Core::Hashable
2883
+
2884
+ # Acquire SSRS lease context.
2885
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
2886
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
2887
+ attr_accessor :acquire_ssrs_lease_context
2888
+
2889
+ def initialize(**args)
2890
+ update!(**args)
2891
+ end
2892
+
2893
+ # Update properties of this object
2894
+ def update!(**args)
2895
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
2896
+ end
2897
+ end
2898
+
1812
2899
  # Database instance clone request.
1813
2900
  class CloneInstancesRequest
1814
2901
  include Google::Apis::Core::Hashable
@@ -1847,6 +2934,27 @@ module Google
1847
2934
  end
1848
2935
  end
1849
2936
 
2937
+ # This request is used to demote an existing standalone instance to be a Cloud
2938
+ # SQL read replica for an external database server.
2939
+ class InstancesDemoteRequest
2940
+ include Google::Apis::Core::Hashable
2941
+
2942
+ # This context is used to demote an existing standalone instance to be a Cloud
2943
+ # SQL read replica for an external database server.
2944
+ # Corresponds to the JSON property `demoteContext`
2945
+ # @return [Google::Apis::SqladminV1beta4::DemoteContext]
2946
+ attr_accessor :demote_context
2947
+
2948
+ def initialize(**args)
2949
+ update!(**args)
2950
+ end
2951
+
2952
+ # Update properties of this object
2953
+ def update!(**args)
2954
+ @demote_context = args[:demote_context] if args.key?(:demote_context)
2955
+ end
2956
+ end
2957
+
1850
2958
  # Database instance export request.
1851
2959
  class ExportInstancesRequest
1852
2960
  include Google::Apis::Core::Hashable
@@ -1973,34 +3081,133 @@ module Google
1973
3081
  end
1974
3082
  end
1975
3083
 
3084
+ # Instances ListServerCertificatess response.
3085
+ class InstancesListServerCertificatesResponse
3086
+ include Google::Apis::Core::Hashable
3087
+
3088
+ # The `sha1_fingerprint` of the active certificate from `server_certs`.
3089
+ # Corresponds to the JSON property `activeVersion`
3090
+ # @return [String]
3091
+ attr_accessor :active_version
3092
+
3093
+ # List of server CA certificates for the instance.
3094
+ # Corresponds to the JSON property `caCerts`
3095
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3096
+ attr_accessor :ca_certs
3097
+
3098
+ # This is always `sql#instancesListServerCertificates`.
3099
+ # Corresponds to the JSON property `kind`
3100
+ # @return [String]
3101
+ attr_accessor :kind
3102
+
3103
+ # List of server certificates for the instance, signed by the corresponding CA
3104
+ # from the `ca_certs` list.
3105
+ # Corresponds to the JSON property `serverCerts`
3106
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3107
+ attr_accessor :server_certs
3108
+
3109
+ def initialize(**args)
3110
+ update!(**args)
3111
+ end
3112
+
3113
+ # Update properties of this object
3114
+ def update!(**args)
3115
+ @active_version = args[:active_version] if args.key?(:active_version)
3116
+ @ca_certs = args[:ca_certs] if args.key?(:ca_certs)
3117
+ @kind = args[:kind] if args.key?(:kind)
3118
+ @server_certs = args[:server_certs] if args.key?(:server_certs)
3119
+ end
3120
+ end
3121
+
3122
+ # Database Instance reencrypt request.
3123
+ class InstancesReencryptRequest
3124
+ include Google::Apis::Core::Hashable
3125
+
3126
+ # Backup Reencryption Config
3127
+ # Corresponds to the JSON property `backupReencryptionConfig`
3128
+ # @return [Google::Apis::SqladminV1beta4::BackupReencryptionConfig]
3129
+ attr_accessor :backup_reencryption_config
3130
+
3131
+ def initialize(**args)
3132
+ update!(**args)
3133
+ end
3134
+
3135
+ # Update properties of this object
3136
+ def update!(**args)
3137
+ @backup_reencryption_config = args[:backup_reencryption_config] if args.key?(:backup_reencryption_config)
3138
+ end
3139
+ end
3140
+
1976
3141
  # Database instance restore backup request.
1977
3142
  class RestoreInstancesBackupRequest
1978
3143
  include Google::Apis::Core::Hashable
1979
3144
 
3145
+ # The name of the backup that's used to restore a Cloud SQL instance: Format:
3146
+ # projects/`project-id`/backups/`backup-uid`. Only one of restore_backup_context,
3147
+ # backup, backupdr_backup can be passed to the input.
3148
+ # Corresponds to the JSON property `backup`
3149
+ # @return [String]
3150
+ attr_accessor :backup
3151
+
3152
+ # The name of the backup that's used to restore a Cloud SQL instance: Format: "
3153
+ # projects/`project-id`/locations/`location`/backupVaults/`backupvault`/
3154
+ # dataSources/`datasource`/backups/`backup-uid`". Only one of
3155
+ # restore_backup_context, backup, backupdr_backup can be passed to the input.
3156
+ # Corresponds to the JSON property `backupdrBackup`
3157
+ # @return [String]
3158
+ attr_accessor :backupdr_backup
3159
+
1980
3160
  # Database instance restore from backup context. Backup context contains source
1981
3161
  # instance id and project id.
1982
3162
  # Corresponds to the JSON property `restoreBackupContext`
1983
3163
  # @return [Google::Apis::SqladminV1beta4::RestoreBackupContext]
1984
3164
  attr_accessor :restore_backup_context
1985
3165
 
3166
+ # A Cloud SQL instance resource.
3167
+ # Corresponds to the JSON property `restoreInstanceSettings`
3168
+ # @return [Google::Apis::SqladminV1beta4::DatabaseInstance]
3169
+ attr_accessor :restore_instance_settings
3170
+
3171
+ def initialize(**args)
3172
+ update!(**args)
3173
+ end
3174
+
3175
+ # Update properties of this object
3176
+ def update!(**args)
3177
+ @backup = args[:backup] if args.key?(:backup)
3178
+ @backupdr_backup = args[:backupdr_backup] if args.key?(:backupdr_backup)
3179
+ @restore_backup_context = args[:restore_backup_context] if args.key?(:restore_backup_context)
3180
+ @restore_instance_settings = args[:restore_instance_settings] if args.key?(:restore_instance_settings)
3181
+ end
3182
+ end
3183
+
3184
+ # Rotate Server CA request.
3185
+ class InstancesRotateServerCaRequest
3186
+ include Google::Apis::Core::Hashable
3187
+
3188
+ # Instance rotate server CA context.
3189
+ # Corresponds to the JSON property `rotateServerCaContext`
3190
+ # @return [Google::Apis::SqladminV1beta4::RotateServerCaContext]
3191
+ attr_accessor :rotate_server_ca_context
3192
+
1986
3193
  def initialize(**args)
1987
3194
  update!(**args)
1988
3195
  end
1989
3196
 
1990
3197
  # Update properties of this object
1991
3198
  def update!(**args)
1992
- @restore_backup_context = args[:restore_backup_context] if args.key?(:restore_backup_context)
3199
+ @rotate_server_ca_context = args[:rotate_server_ca_context] if args.key?(:rotate_server_ca_context)
1993
3200
  end
1994
3201
  end
1995
3202
 
1996
- # Rotate Server CA request.
1997
- class InstancesRotateServerCaRequest
3203
+ # Rotate Server Certificate request.
3204
+ class InstancesRotateServerCertificateRequest
1998
3205
  include Google::Apis::Core::Hashable
1999
3206
 
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
3207
+ # Instance rotate server certificate context.
3208
+ # Corresponds to the JSON property `rotateServerCertificateContext`
3209
+ # @return [Google::Apis::SqladminV1beta4::RotateServerCertificateContext]
3210
+ attr_accessor :rotate_server_certificate_context
2004
3211
 
2005
3212
  def initialize(**args)
2006
3213
  update!(**args)
@@ -2008,7 +3215,7 @@ module Google
2008
3215
 
2009
3216
  # Update properties of this object
2010
3217
  def update!(**args)
2011
- @rotate_server_ca_context = args[:rotate_server_ca_context] if args.key?(:rotate_server_ca_context)
3218
+ @rotate_server_certificate_context = args[:rotate_server_certificate_context] if args.key?(:rotate_server_certificate_context)
2012
3219
  end
2013
3220
  end
2014
3221
 
@@ -2031,6 +3238,36 @@ module Google
2031
3238
  end
2032
3239
  end
2033
3240
 
3241
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
3242
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
3243
+ # When the start equals the end, the interval is empty (matches no time). When
3244
+ # both start and end are unspecified, the interval matches any time.
3245
+ class Interval
3246
+ include Google::Apis::Core::Hashable
3247
+
3248
+ # Optional. Exclusive end of the interval. If specified, a Timestamp matching
3249
+ # this interval will have to be before the end.
3250
+ # Corresponds to the JSON property `endTime`
3251
+ # @return [String]
3252
+ attr_accessor :end_time
3253
+
3254
+ # Optional. Inclusive start of the interval. If specified, a Timestamp matching
3255
+ # this interval will have to be the same or after the start.
3256
+ # Corresponds to the JSON property `startTime`
3257
+ # @return [String]
3258
+ attr_accessor :start_time
3259
+
3260
+ def initialize(**args)
3261
+ update!(**args)
3262
+ end
3263
+
3264
+ # Update properties of this object
3265
+ def update!(**args)
3266
+ @end_time = args[:end_time] if args.key?(:end_time)
3267
+ @start_time = args[:start_time] if args.key?(:start_time)
3268
+ end
3269
+ end
3270
+
2034
3271
  # IP Management configuration.
2035
3272
  class IpConfiguration
2036
3273
  include Google::Apis::Core::Hashable
@@ -2051,6 +3288,11 @@ module Google
2051
3288
  # @return [Array<Google::Apis::SqladminV1beta4::AclEntry>]
2052
3289
  attr_accessor :authorized_networks
2053
3290
 
3291
+ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
3292
+ # Corresponds to the JSON property `customSubjectAlternativeNames`
3293
+ # @return [Array<String>]
3294
+ attr_accessor :custom_subject_alternative_names
3295
+
2054
3296
  # Controls connectivity to private IP instances from Google services, such as
2055
3297
  # BigQuery.
2056
3298
  # Corresponds to the JSON property `enablePrivatePathForGoogleCloudServices`
@@ -2072,12 +3314,52 @@ module Google
2072
3314
  # @return [String]
2073
3315
  attr_accessor :private_network
2074
3316
 
2075
- # Whether SSL connections over IP are enforced or not.
3317
+ # PSC settings for a Cloud SQL instance.
3318
+ # Corresponds to the JSON property `pscConfig`
3319
+ # @return [Google::Apis::SqladminV1beta4::PscConfig]
3320
+ attr_accessor :psc_config
3321
+
3322
+ # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If
3323
+ # set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/
3324
+ # TLS connections, the client certificate won't be verified. If set to true,
3325
+ # then only allow connections encrypted with SSL/TLS and with valid client
3326
+ # certificates. If you want to enforce SSL/TLS without enforcing the requirement
3327
+ # for valid client certificates, then use the `ssl_mode` flag instead of the
3328
+ # legacy `require_ssl` flag.
2076
3329
  # Corresponds to the JSON property `requireSsl`
2077
3330
  # @return [Boolean]
2078
3331
  attr_accessor :require_ssl
2079
3332
  alias_method :require_ssl?, :require_ssl
2080
3333
 
3334
+ # Specify what type of CA is used for the server certificate.
3335
+ # Corresponds to the JSON property `serverCaMode`
3336
+ # @return [String]
3337
+ attr_accessor :server_ca_mode
3338
+
3339
+ # Optional. The resource name of the server CA pool for an instance with `
3340
+ # CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/`PROJECT`/
3341
+ # locations/`REGION`/caPools/`CA_POOL_ID`
3342
+ # Corresponds to the JSON property `serverCaPool`
3343
+ # @return [String]
3344
+ attr_accessor :server_ca_pool
3345
+
3346
+ # Specify how SSL/TLS is enforced in database connections. If you must use the `
3347
+ # require_ssl` flag for backward compatibility, then only the following value
3348
+ # pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=
3349
+ # ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3350
+ # ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=
3351
+ # TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `
3352
+ # ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3353
+ # ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority
3354
+ # over the value of `require_ssl`. For example, for the pair `ssl_mode=
3355
+ # ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means
3356
+ # accept only SSL connections, while `require_ssl=false` means accept both non-
3357
+ # SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `
3358
+ # ssl_mode` and accepts only SSL connections.
3359
+ # Corresponds to the JSON property `sslMode`
3360
+ # @return [String]
3361
+ attr_accessor :ssl_mode
3362
+
2081
3363
  def initialize(**args)
2082
3364
  update!(**args)
2083
3365
  end
@@ -2086,14 +3368,19 @@ module Google
2086
3368
  def update!(**args)
2087
3369
  @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
2088
3370
  @authorized_networks = args[:authorized_networks] if args.key?(:authorized_networks)
3371
+ @custom_subject_alternative_names = args[:custom_subject_alternative_names] if args.key?(:custom_subject_alternative_names)
2089
3372
  @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
3373
  @ipv4_enabled = args[:ipv4_enabled] if args.key?(:ipv4_enabled)
2091
3374
  @private_network = args[:private_network] if args.key?(:private_network)
3375
+ @psc_config = args[:psc_config] if args.key?(:psc_config)
2092
3376
  @require_ssl = args[:require_ssl] if args.key?(:require_ssl)
3377
+ @server_ca_mode = args[:server_ca_mode] if args.key?(:server_ca_mode)
3378
+ @server_ca_pool = args[:server_ca_pool] if args.key?(:server_ca_pool)
3379
+ @ssl_mode = args[:ssl_mode] if args.key?(:ssl_mode)
2093
3380
  end
2094
3381
  end
2095
3382
 
2096
- # Database instance IP Mapping.
3383
+ # Database instance IP mapping
2097
3384
  class IpMapping
2098
3385
  include Google::Apis::Core::Hashable
2099
3386
 
@@ -2129,6 +3416,39 @@ module Google
2129
3416
  end
2130
3417
  end
2131
3418
 
3419
+ # The response payload containing a list of the backups.
3420
+ class ListBackupsResponse
3421
+ include Google::Apis::Core::Hashable
3422
+
3423
+ # A list of backups.
3424
+ # Corresponds to the JSON property `backups`
3425
+ # @return [Array<Google::Apis::SqladminV1beta4::Backup>]
3426
+ attr_accessor :backups
3427
+
3428
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
3429
+ # field is omitted, then there aren't subsequent pages.
3430
+ # Corresponds to the JSON property `nextPageToken`
3431
+ # @return [String]
3432
+ attr_accessor :next_page_token
3433
+
3434
+ # If a region isn't unavailable or if an unknown error occurs, then a warning
3435
+ # message is returned.
3436
+ # Corresponds to the JSON property `warnings`
3437
+ # @return [Array<Google::Apis::SqladminV1beta4::ApiWarning>]
3438
+ attr_accessor :warnings
3439
+
3440
+ def initialize(**args)
3441
+ update!(**args)
3442
+ end
3443
+
3444
+ # Update properties of this object
3445
+ def update!(**args)
3446
+ @backups = args[:backups] if args.key?(:backups)
3447
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3448
+ @warnings = args[:warnings] if args.key?(:warnings)
3449
+ end
3450
+ end
3451
+
2132
3452
  # Preferred location. This specifies where a Cloud SQL instance is located. Note
2133
3453
  # that if the preferred location is not available, the instance will be located
2134
3454
  # as close as possible within the region. Only one location may be specified.
@@ -2147,7 +3467,8 @@ module Google
2147
3467
  attr_accessor :kind
2148
3468
 
2149
3469
  # The preferred Compute Engine zone for the secondary/failover (for example: us-
2150
- # central1-a, us-central1-b, etc.).
3470
+ # central1-a, us-central1-b, etc.). To disable this field, set it to '
3471
+ # no_secondary_zone'.
2151
3472
  # Corresponds to the JSON property `secondaryZone`
2152
3473
  # @return [String]
2153
3474
  attr_accessor :secondary_zone
@@ -2176,12 +3497,14 @@ module Google
2176
3497
  class MaintenanceWindow
2177
3498
  include Google::Apis::Core::Hashable
2178
3499
 
2179
- # day of week (1-7), starting on Monday.
3500
+ # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `
3501
+ # SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an
3502
+ # integer, 1 to 7, where `1` equals Monday.
2180
3503
  # Corresponds to the JSON property `day`
2181
3504
  # @return [Fixnum]
2182
3505
  attr_accessor :day
2183
3506
 
2184
- # hour of day - 0 to 23.
3507
+ # Hour of day - 0 to 23. Specify in the UTC time zone.
2185
3508
  # Corresponds to the JSON property `hour`
2186
3509
  # @return [Fixnum]
2187
3510
  attr_accessor :hour
@@ -2191,9 +3514,9 @@ module Google
2191
3514
  # @return [String]
2192
3515
  attr_accessor :kind
2193
3516
 
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).
3517
+ # Maintenance timing settings: `canary`, `stable`, or `week5`. For more
3518
+ # information, see [About maintenance on Cloud SQL instances](https://cloud.
3519
+ # google.com/sql/docs/mysql/maintenance).
2197
3520
  # Corresponds to the JSON property `updateTrack`
2198
3521
  # @return [String]
2199
3522
  attr_accessor :update_track
@@ -2225,7 +3548,7 @@ module Google
2225
3548
  # @return [String]
2226
3549
  attr_accessor :client_certificate
2227
3550
 
2228
- # PEM representation of the replica's private key. The corresponsing public key
3551
+ # PEM representation of the replica's private key. The corresponding public key
2229
3552
  # is encoded in the client's certificate.
2230
3553
  # Corresponds to the JSON property `clientKey`
2231
3554
  # @return [String]
@@ -2330,7 +3653,7 @@ module Google
2330
3653
  # @return [String]
2331
3654
  attr_accessor :client_certificate
2332
3655
 
2333
- # PEM representation of the replica's private key. The corresponsing public key
3656
+ # PEM representation of the replica's private key. The corresponding public key
2334
3657
  # is encoded in the client's certificate.
2335
3658
  # Corresponds to the JSON property `clientKey`
2336
3659
  # @return [String]
@@ -2356,11 +3679,22 @@ module Google
2356
3679
  # @return [String]
2357
3680
  attr_accessor :password
2358
3681
 
3682
+ # Optional. A list of objects that the user selects for replication from an
3683
+ # external source instance.
3684
+ # Corresponds to the JSON property `selectedObjects`
3685
+ # @return [Array<Google::Apis::SqladminV1beta4::SelectedObjects>]
3686
+ attr_accessor :selected_objects
3687
+
2359
3688
  # Reference to another Cloud SQL instance.
2360
3689
  # Corresponds to the JSON property `sourceInstance`
2361
3690
  # @return [Google::Apis::SqladminV1beta4::InstanceReference]
2362
3691
  attr_accessor :source_instance
2363
3692
 
3693
+ # Optional. SslOption for replica connection to the on-premises source.
3694
+ # Corresponds to the JSON property `sslOption`
3695
+ # @return [String]
3696
+ attr_accessor :ssl_option
3697
+
2364
3698
  # The username for connecting to on-premises instance.
2365
3699
  # Corresponds to the JSON property `username`
2366
3700
  # @return [String]
@@ -2379,7 +3713,9 @@ module Google
2379
3713
  @host_port = args[:host_port] if args.key?(:host_port)
2380
3714
  @kind = args[:kind] if args.key?(:kind)
2381
3715
  @password = args[:password] if args.key?(:password)
3716
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
2382
3717
  @source_instance = args[:source_instance] if args.key?(:source_instance)
3718
+ @ssl_option = args[:ssl_option] if args.key?(:ssl_option)
2383
3719
  @username = args[:username] if args.key?(:username)
2384
3720
  end
2385
3721
  end
@@ -2390,6 +3726,16 @@ module Google
2390
3726
  class Operation
2391
3727
  include Google::Apis::Core::Hashable
2392
3728
 
3729
+ # Acquire SSRS lease context.
3730
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
3731
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
3732
+ attr_accessor :acquire_ssrs_lease_context
3733
+
3734
+ # An Admin API warning message.
3735
+ # Corresponds to the JSON property `apiWarning`
3736
+ # @return [Google::Apis::SqladminV1beta4::ApiWarning]
3737
+ attr_accessor :api_warning
3738
+
2393
3739
  # Backup context.
2394
3740
  # Corresponds to the JSON property `backupContext`
2395
3741
  # @return [Google::Apis::SqladminV1beta4::BackupContext]
@@ -2457,7 +3803,12 @@ module Google
2457
3803
  # @return [String]
2458
3804
  attr_accessor :status
2459
3805
 
2460
- # Name of the database instance related to this operation.
3806
+ # The sub operation type based on the operation type.
3807
+ # Corresponds to the JSON property `subOperationType`
3808
+ # @return [Google::Apis::SqladminV1beta4::SqlSubOperationType]
3809
+ attr_accessor :sub_operation_type
3810
+
3811
+ # Name of the resource on which this operation runs.
2461
3812
  # Corresponds to the JSON property `targetId`
2462
3813
  # @return [String]
2463
3814
  attr_accessor :target_id
@@ -2483,6 +3834,8 @@ module Google
2483
3834
 
2484
3835
  # Update properties of this object
2485
3836
  def update!(**args)
3837
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
3838
+ @api_warning = args[:api_warning] if args.key?(:api_warning)
2486
3839
  @backup_context = args[:backup_context] if args.key?(:backup_context)
2487
3840
  @end_time = args[:end_time] if args.key?(:end_time)
2488
3841
  @error = args[:error] if args.key?(:error)
@@ -2495,6 +3848,7 @@ module Google
2495
3848
  @self_link = args[:self_link] if args.key?(:self_link)
2496
3849
  @start_time = args[:start_time] if args.key?(:start_time)
2497
3850
  @status = args[:status] if args.key?(:status)
3851
+ @sub_operation_type = args[:sub_operation_type] if args.key?(:sub_operation_type)
2498
3852
  @target_id = args[:target_id] if args.key?(:target_id)
2499
3853
  @target_link = args[:target_link] if args.key?(:target_link)
2500
3854
  @target_project = args[:target_project] if args.key?(:target_project)
@@ -2558,6 +3912,65 @@ module Google
2558
3912
  end
2559
3913
  end
2560
3914
 
3915
+ # Represents the metadata of the long-running operation.
3916
+ class OperationMetadata
3917
+ include Google::Apis::Core::Hashable
3918
+
3919
+ # Output only. API version used to start the operation.
3920
+ # Corresponds to the JSON property `apiVersion`
3921
+ # @return [String]
3922
+ attr_accessor :api_version
3923
+
3924
+ # Output only. Identifies whether the user has requested cancellation of the
3925
+ # operation. Operations that have been cancelled successfully have google.
3926
+ # longrunning.Operation.error value with a google.rpc.Status.code of `1`,
3927
+ # corresponding to `Code.CANCELLED`.
3928
+ # Corresponds to the JSON property `cancelRequested`
3929
+ # @return [Boolean]
3930
+ attr_accessor :cancel_requested
3931
+ alias_method :cancel_requested?, :cancel_requested
3932
+
3933
+ # Output only. The time the operation was created.
3934
+ # Corresponds to the JSON property `createTime`
3935
+ # @return [String]
3936
+ attr_accessor :create_time
3937
+
3938
+ # Output only. The time the operation finished running.
3939
+ # Corresponds to the JSON property `endTime`
3940
+ # @return [String]
3941
+ attr_accessor :end_time
3942
+
3943
+ # Output only. Human-readable status of the operation, if any.
3944
+ # Corresponds to the JSON property `statusDetail`
3945
+ # @return [String]
3946
+ attr_accessor :status_detail
3947
+
3948
+ # Output only. Server-defined resource path for the target of the operation.
3949
+ # Corresponds to the JSON property `target`
3950
+ # @return [String]
3951
+ attr_accessor :target
3952
+
3953
+ # Output only. Name of the verb executed by the operation.
3954
+ # Corresponds to the JSON property `verb`
3955
+ # @return [String]
3956
+ attr_accessor :verb
3957
+
3958
+ def initialize(**args)
3959
+ update!(**args)
3960
+ end
3961
+
3962
+ # Update properties of this object
3963
+ def update!(**args)
3964
+ @api_version = args[:api_version] if args.key?(:api_version)
3965
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
3966
+ @create_time = args[:create_time] if args.key?(:create_time)
3967
+ @end_time = args[:end_time] if args.key?(:end_time)
3968
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
3969
+ @target = args[:target] if args.key?(:target)
3970
+ @verb = args[:verb] if args.key?(:verb)
3971
+ end
3972
+ end
3973
+
2561
3974
  # Operations list response.
2562
3975
  class ListOperationsResponse
2563
3976
  include Google::Apis::Core::Hashable
@@ -2567,16 +3980,237 @@ module Google
2567
3980
  # @return [Array<Google::Apis::SqladminV1beta4::Operation>]
2568
3981
  attr_accessor :items
2569
3982
 
2570
- # This is always `sql#operationsList`.
2571
- # Corresponds to the JSON property `kind`
3983
+ # This is always `sql#operationsList`.
3984
+ # Corresponds to the JSON property `kind`
3985
+ # @return [String]
3986
+ attr_accessor :kind
3987
+
3988
+ # The continuation token, used to page through large result sets. Provide this
3989
+ # value in a subsequent request to return the next page of results.
3990
+ # Corresponds to the JSON property `nextPageToken`
3991
+ # @return [String]
3992
+ attr_accessor :next_page_token
3993
+
3994
+ def initialize(**args)
3995
+ update!(**args)
3996
+ end
3997
+
3998
+ # Update properties of this object
3999
+ def update!(**args)
4000
+ @items = args[:items] if args.key?(:items)
4001
+ @kind = args[:kind] if args.key?(:kind)
4002
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
4003
+ end
4004
+ end
4005
+
4006
+ # Read-only password status.
4007
+ class PasswordStatus
4008
+ include Google::Apis::Core::Hashable
4009
+
4010
+ # If true, user does not have login privileges.
4011
+ # Corresponds to the JSON property `locked`
4012
+ # @return [Boolean]
4013
+ attr_accessor :locked
4014
+ alias_method :locked?, :locked
4015
+
4016
+ # The expiration time of the current password.
4017
+ # Corresponds to the JSON property `passwordExpirationTime`
4018
+ # @return [String]
4019
+ attr_accessor :password_expiration_time
4020
+
4021
+ def initialize(**args)
4022
+ update!(**args)
4023
+ end
4024
+
4025
+ # Update properties of this object
4026
+ def update!(**args)
4027
+ @locked = args[:locked] if args.key?(:locked)
4028
+ @password_expiration_time = args[:password_expiration_time] if args.key?(:password_expiration_time)
4029
+ end
4030
+ end
4031
+
4032
+ # Database instance local user password validation policy
4033
+ class PasswordValidationPolicy
4034
+ include Google::Apis::Core::Hashable
4035
+
4036
+ # The complexity of the password.
4037
+ # Corresponds to the JSON property `complexity`
4038
+ # @return [String]
4039
+ attr_accessor :complexity
4040
+
4041
+ # This field is deprecated and will be removed in a future version of the API.
4042
+ # Corresponds to the JSON property `disallowCompromisedCredentials`
4043
+ # @return [Boolean]
4044
+ attr_accessor :disallow_compromised_credentials
4045
+ alias_method :disallow_compromised_credentials?, :disallow_compromised_credentials
4046
+
4047
+ # Disallow username as a part of the password.
4048
+ # Corresponds to the JSON property `disallowUsernameSubstring`
4049
+ # @return [Boolean]
4050
+ attr_accessor :disallow_username_substring
4051
+ alias_method :disallow_username_substring?, :disallow_username_substring
4052
+
4053
+ # Whether the password policy is enabled or not.
4054
+ # Corresponds to the JSON property `enablePasswordPolicy`
4055
+ # @return [Boolean]
4056
+ attr_accessor :enable_password_policy
4057
+ alias_method :enable_password_policy?, :enable_password_policy
4058
+
4059
+ # Minimum number of characters allowed.
4060
+ # Corresponds to the JSON property `minLength`
4061
+ # @return [Fixnum]
4062
+ attr_accessor :min_length
4063
+
4064
+ # Minimum interval after which the password can be changed. This flag is only
4065
+ # supported for PostgreSQL.
4066
+ # Corresponds to the JSON property `passwordChangeInterval`
4067
+ # @return [String]
4068
+ attr_accessor :password_change_interval
4069
+
4070
+ # Number of previous passwords that cannot be reused.
4071
+ # Corresponds to the JSON property `reuseInterval`
4072
+ # @return [Fixnum]
4073
+ attr_accessor :reuse_interval
4074
+
4075
+ def initialize(**args)
4076
+ update!(**args)
4077
+ end
4078
+
4079
+ # Update properties of this object
4080
+ def update!(**args)
4081
+ @complexity = args[:complexity] if args.key?(:complexity)
4082
+ @disallow_compromised_credentials = args[:disallow_compromised_credentials] if args.key?(:disallow_compromised_credentials)
4083
+ @disallow_username_substring = args[:disallow_username_substring] if args.key?(:disallow_username_substring)
4084
+ @enable_password_policy = args[:enable_password_policy] if args.key?(:enable_password_policy)
4085
+ @min_length = args[:min_length] if args.key?(:min_length)
4086
+ @password_change_interval = args[:password_change_interval] if args.key?(:password_change_interval)
4087
+ @reuse_interval = args[:reuse_interval] if args.key?(:reuse_interval)
4088
+ end
4089
+ end
4090
+
4091
+ # Perform disk shrink context.
4092
+ class PerformDiskShrinkContext
4093
+ include Google::Apis::Core::Hashable
4094
+
4095
+ # The target disk shrink size in GigaBytes.
4096
+ # Corresponds to the JSON property `targetSizeGb`
4097
+ # @return [Fixnum]
4098
+ attr_accessor :target_size_gb
4099
+
4100
+ def initialize(**args)
4101
+ update!(**args)
4102
+ end
4103
+
4104
+ # Update properties of this object
4105
+ def update!(**args)
4106
+ @target_size_gb = args[:target_size_gb] if args.key?(:target_size_gb)
4107
+ end
4108
+ end
4109
+
4110
+ # Context to perform a point-in-time restore of an instance managed by Google
4111
+ # Cloud Backup and Disaster Recovery.
4112
+ class PointInTimeRestoreContext
4113
+ include Google::Apis::Core::Hashable
4114
+
4115
+ # Optional. The name of the allocated IP range for the internal IP Cloud SQL
4116
+ # instance. For example: "google-managed-services-default". If you set this,
4117
+ # then Cloud SQL creates the IP address for the cloned instance in the allocated
4118
+ # range. This range must comply with [RFC 1035](https://tools.ietf.org/html/
4119
+ # rfc1035) standards. Specifically, the name must be 1-63 characters long and
4120
+ # match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future
4121
+ # use. http://go/speckle-subnet-picker-clone
4122
+ # Corresponds to the JSON property `allocatedIpRange`
4123
+ # @return [String]
4124
+ attr_accessor :allocated_ip_range
4125
+
4126
+ # The Google Cloud Backup and Disaster Recovery Datasource URI. Format: projects/
4127
+ # `project`/locations/`region`/backupVaults/`backupvault`/dataSources/`
4128
+ # datasource`.
4129
+ # Corresponds to the JSON property `datasource`
4130
+ # @return [String]
4131
+ attr_accessor :datasource
4132
+
4133
+ # Required. The date and time to which you want to restore the instance.
4134
+ # Corresponds to the JSON property `pointInTime`
4135
+ # @return [String]
4136
+ attr_accessor :point_in_time
4137
+
4138
+ # Optional. Point-in-time recovery of a regional instance in the specified zones.
4139
+ # If not specified, clone to the same secondary zone as the source instance.
4140
+ # This value cannot be the same as the preferred_zone field.
4141
+ # Corresponds to the JSON property `preferredSecondaryZone`
4142
+ # @return [String]
4143
+ attr_accessor :preferred_secondary_zone
4144
+
4145
+ # Optional. Point-in-time recovery of an instance to the specified zone. If no
4146
+ # zone is specified, then clone to the same primary zone as the source instance.
4147
+ # Corresponds to the JSON property `preferredZone`
4148
+ # @return [String]
4149
+ attr_accessor :preferred_zone
4150
+
4151
+ # Optional. The resource link for the VPC network from which the Cloud SQL
4152
+ # instance is accessible for private IP. For example, `/projects/myProject/
4153
+ # global/networks/default`.
4154
+ # Corresponds to the JSON property `privateNetwork`
4155
+ # @return [String]
4156
+ attr_accessor :private_network
4157
+
4158
+ # Target instance name.
4159
+ # Corresponds to the JSON property `targetInstance`
4160
+ # @return [String]
4161
+ attr_accessor :target_instance
4162
+
4163
+ def initialize(**args)
4164
+ update!(**args)
4165
+ end
4166
+
4167
+ # Update properties of this object
4168
+ def update!(**args)
4169
+ @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
4170
+ @datasource = args[:datasource] if args.key?(:datasource)
4171
+ @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
4172
+ @preferred_secondary_zone = args[:preferred_secondary_zone] if args.key?(:preferred_secondary_zone)
4173
+ @preferred_zone = args[:preferred_zone] if args.key?(:preferred_zone)
4174
+ @private_network = args[:private_network] if args.key?(:private_network)
4175
+ @target_instance = args[:target_instance] if args.key?(:target_instance)
4176
+ end
4177
+ end
4178
+
4179
+ # Details of a single read pool node of a read pool.
4180
+ class PoolNodeConfig
4181
+ include Google::Apis::Core::Hashable
4182
+
4183
+ # Output only. The DNS name of the read pool node.
4184
+ # Corresponds to the JSON property `dnsName`
4185
+ # @return [String]
4186
+ attr_accessor :dns_name
4187
+
4188
+ # Output only. The list of DNS names used by this read pool node.
4189
+ # Corresponds to the JSON property `dnsNames`
4190
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
4191
+ attr_accessor :dns_names
4192
+
4193
+ # Output only. The zone of the read pool node.
4194
+ # Corresponds to the JSON property `gceZone`
4195
+ # @return [String]
4196
+ attr_accessor :gce_zone
4197
+
4198
+ # Output only. Mappings containing IP addresses that can be used to connect to
4199
+ # the read pool node.
4200
+ # Corresponds to the JSON property `ipAddresses`
4201
+ # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
4202
+ attr_accessor :ip_addresses
4203
+
4204
+ # Output only. The name of the read pool node, to be used for retrieving metrics
4205
+ # and logs.
4206
+ # Corresponds to the JSON property `name`
2572
4207
  # @return [String]
2573
- attr_accessor :kind
4208
+ attr_accessor :name
2574
4209
 
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`
4210
+ # Output only. The current state of the read pool node.
4211
+ # Corresponds to the JSON property `state`
2578
4212
  # @return [String]
2579
- attr_accessor :next_page_token
4213
+ attr_accessor :state
2580
4214
 
2581
4215
  def initialize(**args)
2582
4216
  update!(**args)
@@ -2584,26 +4218,49 @@ module Google
2584
4218
 
2585
4219
  # Update properties of this object
2586
4220
  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)
4221
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
4222
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
4223
+ @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
4224
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
4225
+ @name = args[:name] if args.key?(:name)
4226
+ @state = args[:state] if args.key?(:state)
2590
4227
  end
2591
4228
  end
2592
4229
 
2593
- # Read-only password status.
2594
- class PasswordStatus
4230
+ # Settings for an automatically-setup Private Service Connect consumer endpoint
4231
+ # that is used to connect to a Cloud SQL instance.
4232
+ class PscAutoConnectionConfig
2595
4233
  include Google::Apis::Core::Hashable
2596
4234
 
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
4235
+ # Optional. The consumer network of this consumer endpoint. This must be a
4236
+ # resource path that includes both the host project and the network name. For
4237
+ # example, `projects/project1/global/networks/network1`. The consumer host
4238
+ # project of this network might be different from the consumer service project.
4239
+ # Corresponds to the JSON property `consumerNetwork`
4240
+ # @return [String]
4241
+ attr_accessor :consumer_network
2602
4242
 
2603
- # The expiration time of the current password.
2604
- # Corresponds to the JSON property `passwordExpirationTime`
4243
+ # The connection policy status of the consumer network.
4244
+ # Corresponds to the JSON property `consumerNetworkStatus`
2605
4245
  # @return [String]
2606
- attr_accessor :password_expiration_time
4246
+ attr_accessor :consumer_network_status
4247
+
4248
+ # Optional. This is the project ID of consumer service project of this consumer
4249
+ # endpoint. Optional. This is only applicable if consumer_network is a shared
4250
+ # vpc network.
4251
+ # Corresponds to the JSON property `consumerProject`
4252
+ # @return [String]
4253
+ attr_accessor :consumer_project
4254
+
4255
+ # The IP address of the consumer endpoint.
4256
+ # Corresponds to the JSON property `ipAddress`
4257
+ # @return [String]
4258
+ attr_accessor :ip_address
4259
+
4260
+ # The connection status of the consumer endpoint.
4261
+ # Corresponds to the JSON property `status`
4262
+ # @return [String]
4263
+ attr_accessor :status
2607
4264
 
2608
4265
  def initialize(**args)
2609
4266
  update!(**args)
@@ -2611,47 +4268,44 @@ module Google
2611
4268
 
2612
4269
  # Update properties of this object
2613
4270
  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)
4271
+ @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
4272
+ @consumer_network_status = args[:consumer_network_status] if args.key?(:consumer_network_status)
4273
+ @consumer_project = args[:consumer_project] if args.key?(:consumer_project)
4274
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
4275
+ @status = args[:status] if args.key?(:status)
2616
4276
  end
2617
4277
  end
2618
4278
 
2619
- # Database instance local user password validation policy
2620
- class PasswordValidationPolicy
4279
+ # PSC settings for a Cloud SQL instance.
4280
+ class PscConfig
2621
4281
  include Google::Apis::Core::Hashable
2622
4282
 
2623
- # The complexity of the password.
2624
- # Corresponds to the JSON property `complexity`
4283
+ # Optional. The list of consumer projects that are allow-listed for PSC
4284
+ # connections to this instance. This instance can be connected to with PSC from
4285
+ # any network in these projects. Each consumer project in this list may be
4286
+ # represented by a project number (numeric) or by a project id (alphanumeric).
4287
+ # Corresponds to the JSON property `allowedConsumerProjects`
4288
+ # @return [Array<String>]
4289
+ attr_accessor :allowed_consumer_projects
4290
+
4291
+ # Optional. The network attachment of the consumer network that the Private
4292
+ # Service Connect enabled Cloud SQL instance is authorized to connect via PSC
4293
+ # interface. format: projects/PROJECT/regions/REGION/networkAttachments/ID
4294
+ # Corresponds to the JSON property `networkAttachmentUri`
2625
4295
  # @return [String]
2626
- attr_accessor :complexity
4296
+ attr_accessor :network_attachment_uri
2627
4297
 
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
4298
+ # Optional. The list of settings for requested Private Service Connect consumer
4299
+ # endpoints that can be used to connect to this Cloud SQL instance.
4300
+ # Corresponds to the JSON property `pscAutoConnections`
4301
+ # @return [Array<Google::Apis::SqladminV1beta4::PscAutoConnectionConfig>]
4302
+ attr_accessor :psc_auto_connections
2633
4303
 
2634
- # Whether the password policy is enabled or not.
2635
- # Corresponds to the JSON property `enablePasswordPolicy`
4304
+ # Whether PSC connectivity is enabled for this instance.
4305
+ # Corresponds to the JSON property `pscEnabled`
2636
4306
  # @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
4307
+ attr_accessor :psc_enabled
4308
+ alias_method :psc_enabled?, :psc_enabled
2655
4309
 
2656
4310
  def initialize(**args)
2657
4311
  update!(**args)
@@ -2659,12 +4313,10 @@ module Google
2659
4313
 
2660
4314
  # Update properties of this object
2661
4315
  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)
4316
+ @allowed_consumer_projects = args[:allowed_consumer_projects] if args.key?(:allowed_consumer_projects)
4317
+ @network_attachment_uri = args[:network_attachment_uri] if args.key?(:network_attachment_uri)
4318
+ @psc_auto_connections = args[:psc_auto_connections] if args.key?(:psc_auto_connections)
4319
+ @psc_enabled = args[:psc_enabled] if args.key?(:psc_enabled)
2668
4320
  end
2669
4321
  end
2670
4322
 
@@ -2672,6 +4324,14 @@ module Google
2672
4324
  class ReplicaConfiguration
2673
4325
  include Google::Apis::Core::Hashable
2674
4326
 
4327
+ # Optional. Specifies if a SQL Server replica is a cascadable replica. A
4328
+ # cascadable replica is a SQL Server cross region replica that supports replica(
4329
+ # s) under it.
4330
+ # Corresponds to the JSON property `cascadableReplica`
4331
+ # @return [Boolean]
4332
+ attr_accessor :cascadable_replica
4333
+ alias_method :cascadable_replica?, :cascadable_replica
4334
+
2675
4335
  # Specifies if the replica is the failover target. If the field is set to `true`
2676
4336
  # the replica will be designated as a failover replica. In case the primary
2677
4337
  # instance fails, the replica instance will be promoted as the new primary
@@ -2698,12 +4358,59 @@ module Google
2698
4358
 
2699
4359
  # Update properties of this object
2700
4360
  def update!(**args)
4361
+ @cascadable_replica = args[:cascadable_replica] if args.key?(:cascadable_replica)
2701
4362
  @failover_target = args[:failover_target] if args.key?(:failover_target)
2702
4363
  @kind = args[:kind] if args.key?(:kind)
2703
4364
  @mysql_replica_configuration = args[:mysql_replica_configuration] if args.key?(:mysql_replica_configuration)
2704
4365
  end
2705
4366
  end
2706
4367
 
4368
+ # A primary instance and disaster recovery (DR) replica pair. A DR replica is a
4369
+ # cross-region replica that you designate for failover in the event that the
4370
+ # primary instance has regional failure. Applicable to MySQL and PostgreSQL.
4371
+ class ReplicationCluster
4372
+ include Google::Apis::Core::Hashable
4373
+
4374
+ # Output only. Read-only field that indicates whether the replica is a DR
4375
+ # replica. This field is not set if the instance is a primary instance.
4376
+ # Corresponds to the JSON property `drReplica`
4377
+ # @return [Boolean]
4378
+ attr_accessor :dr_replica
4379
+ alias_method :dr_replica?, :dr_replica
4380
+
4381
+ # Optional. If the instance is a primary instance, then this field identifies
4382
+ # the disaster recovery (DR) replica. A DR replica is an optional configuration
4383
+ # for Enterprise Plus edition instances. If the instance is a read replica, then
4384
+ # the field is not set. Set this field to a replica name to designate a DR
4385
+ # replica for a primary instance. Remove the replica name to remove the DR
4386
+ # replica designation.
4387
+ # Corresponds to the JSON property `failoverDrReplicaName`
4388
+ # @return [String]
4389
+ attr_accessor :failover_dr_replica_name
4390
+
4391
+ # Output only. If set, this field indicates this instance has a private service
4392
+ # access (PSA) DNS endpoint that is pointing to the primary instance of the
4393
+ # cluster. If this instance is the primary, then the DNS endpoint points to this
4394
+ # instance. After a switchover or replica failover operation, this DNS endpoint
4395
+ # points to the promoted instance. This is a read-only field, returned to the
4396
+ # user as information. This field can exist even if a standalone instance doesn'
4397
+ # t have a DR replica yet or the DR replica is deleted.
4398
+ # Corresponds to the JSON property `psaWriteEndpoint`
4399
+ # @return [String]
4400
+ attr_accessor :psa_write_endpoint
4401
+
4402
+ def initialize(**args)
4403
+ update!(**args)
4404
+ end
4405
+
4406
+ # Update properties of this object
4407
+ def update!(**args)
4408
+ @dr_replica = args[:dr_replica] if args.key?(:dr_replica)
4409
+ @failover_dr_replica_name = args[:failover_dr_replica_name] if args.key?(:failover_dr_replica_name)
4410
+ @psa_write_endpoint = args[:psa_write_endpoint] if args.key?(:psa_write_endpoint)
4411
+ end
4412
+ end
4413
+
2707
4414
  #
2708
4415
  class Reschedule
2709
4416
  include Google::Apis::Core::Hashable
@@ -2795,6 +4502,53 @@ module Google
2795
4502
  end
2796
4503
  end
2797
4504
 
4505
+ # Instance rotate server certificate context.
4506
+ class RotateServerCertificateContext
4507
+ include Google::Apis::Core::Hashable
4508
+
4509
+ # Optional. This is always `sql#rotateServerCertificateContext`.
4510
+ # Corresponds to the JSON property `kind`
4511
+ # @return [String]
4512
+ attr_accessor :kind
4513
+
4514
+ # Optional. The fingerprint of the next version to be rotated to. If left
4515
+ # unspecified, will be rotated to the most recently added server certificate
4516
+ # version.
4517
+ # Corresponds to the JSON property `nextVersion`
4518
+ # @return [String]
4519
+ attr_accessor :next_version
4520
+
4521
+ def initialize(**args)
4522
+ update!(**args)
4523
+ end
4524
+
4525
+ # Update properties of this object
4526
+ def update!(**args)
4527
+ @kind = args[:kind] if args.key?(:kind)
4528
+ @next_version = args[:next_version] if args.key?(:next_version)
4529
+ end
4530
+ end
4531
+
4532
+ # A list of objects that the user selects for replication from an external
4533
+ # source instance.
4534
+ class SelectedObjects
4535
+ include Google::Apis::Core::Hashable
4536
+
4537
+ # Required. The name of the database to migrate.
4538
+ # Corresponds to the JSON property `database`
4539
+ # @return [String]
4540
+ attr_accessor :database
4541
+
4542
+ def initialize(**args)
4543
+ update!(**args)
4544
+ end
4545
+
4546
+ # Update properties of this object
4547
+ def update!(**args)
4548
+ @database = args[:database] if args.key?(:database)
4549
+ end
4550
+ end
4551
+
2798
4552
  # Database instance settings.
2799
4553
  class Settings
2800
4554
  include Google::Apis::Core::Hashable
@@ -2813,6 +4567,11 @@ module Google
2813
4567
  # @return [Google::Apis::SqladminV1beta4::SqlActiveDirectoryConfig]
2814
4568
  attr_accessor :active_directory_config
2815
4569
 
4570
+ # Specifies options for controlling advanced machine features.
4571
+ # Corresponds to the JSON property `advancedMachineFeatures`
4572
+ # @return [Google::Apis::SqladminV1beta4::AdvancedMachineFeatures]
4573
+ attr_accessor :advanced_machine_features
4574
+
2816
4575
  # The App Engine app IDs that can access this instance. (Deprecated) Applied to
2817
4576
  # First Generation instances only.
2818
4577
  # Corresponds to the JSON property `authorizedGaeApplications`
@@ -2838,6 +4597,11 @@ module Google
2838
4597
  # @return [String]
2839
4598
  attr_accessor :collation
2840
4599
 
4600
+ # The managed connection pooling configuration.
4601
+ # Corresponds to the JSON property `connectionPoolConfig`
4602
+ # @return [Google::Apis::SqladminV1beta4::ConnectionPoolConfig]
4603
+ attr_accessor :connection_pool_config
4604
+
2841
4605
  # Specifies if connections must use Cloud SQL connectors. Option values include
2842
4606
  # the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without
2843
4607
  # Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud
@@ -2857,6 +4621,23 @@ module Google
2857
4621
  attr_accessor :crash_safe_replication_enabled
2858
4622
  alias_method :crash_safe_replication_enabled?, :crash_safe_replication_enabled
2859
4623
 
4624
+ # Data cache configurations.
4625
+ # Corresponds to the JSON property `dataCacheConfig`
4626
+ # @return [Google::Apis::SqladminV1beta4::DataCacheConfig]
4627
+ attr_accessor :data_cache_config
4628
+
4629
+ # Optional. Provisioned number of I/O operations per second for the data disk.
4630
+ # This field is only used for hyperdisk-balanced disk types.
4631
+ # Corresponds to the JSON property `dataDiskProvisionedIops`
4632
+ # @return [Fixnum]
4633
+ attr_accessor :data_disk_provisioned_iops
4634
+
4635
+ # Optional. Provisioned throughput measured in MiB per second for the data disk.
4636
+ # This field is only used for hyperdisk-balanced disk types.
4637
+ # Corresponds to the JSON property `dataDiskProvisionedThroughput`
4638
+ # @return [Fixnum]
4639
+ attr_accessor :data_disk_provisioned_throughput
4640
+
2860
4641
  # The size of data disk, in GB. The data disk size minimum is 10GB.
2861
4642
  # Corresponds to the JSON property `dataDiskSizeGb`
2862
4643
  # @return [Fixnum]
@@ -2891,6 +4672,28 @@ module Google
2891
4672
  # @return [Array<Google::Apis::SqladminV1beta4::DenyMaintenancePeriod>]
2892
4673
  attr_accessor :deny_maintenance_periods
2893
4674
 
4675
+ # Optional. The edition of the instance.
4676
+ # Corresponds to the JSON property `edition`
4677
+ # @return [String]
4678
+ attr_accessor :edition
4679
+
4680
+ # Optional. By default, Cloud SQL instances have schema extraction disabled for
4681
+ # Dataplex. When this parameter is set to true, schema extraction for Dataplex
4682
+ # on Cloud SQL instances is activated.
4683
+ # Corresponds to the JSON property `enableDataplexIntegration`
4684
+ # @return [Boolean]
4685
+ attr_accessor :enable_dataplex_integration
4686
+ alias_method :enable_dataplex_integration?, :enable_dataplex_integration
4687
+
4688
+ # Optional. When this parameter is set to true, Cloud SQL instances can connect
4689
+ # to Vertex AI to pass requests for real-time predictions and insights to the AI.
4690
+ # The default value is false. This applies only to Cloud SQL for MySQL and
4691
+ # Cloud SQL for PostgreSQL instances.
4692
+ # Corresponds to the JSON property `enableGoogleMlIntegration`
4693
+ # @return [Boolean]
4694
+ attr_accessor :enable_google_ml_integration
4695
+ alias_method :enable_google_ml_integration?, :enable_google_ml_integration
4696
+
2894
4697
  # Insights configuration. This specifies when Cloud SQL Insights feature is
2895
4698
  # enabled and optional configuration.
2896
4699
  # Corresponds to the JSON property `insightsConfig`
@@ -2931,6 +4734,12 @@ module Google
2931
4734
  # @return [String]
2932
4735
  attr_accessor :pricing_plan
2933
4736
 
4737
+ # Optional. Configuration value for recreation of replica after certain
4738
+ # replication lag.
4739
+ # Corresponds to the JSON property `replicationLagMaxSeconds`
4740
+ # @return [Fixnum]
4741
+ attr_accessor :replication_lag_max_seconds
4742
+
2934
4743
  # The type of replication this instance uses. This can be either `ASYNCHRONOUS`
2935
4744
  # or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First
2936
4745
  # Generation instances.
@@ -2938,6 +4747,15 @@ module Google
2938
4747
  # @return [String]
2939
4748
  attr_accessor :replication_type
2940
4749
 
4750
+ # Optional. When this parameter is set to true, Cloud SQL retains backups of the
4751
+ # instance even after the instance is deleted. The ON_DEMAND backup will be
4752
+ # retained until customer deletes the backup or the project. The AUTOMATED
4753
+ # backup will be retained based on the backups retention setting.
4754
+ # Corresponds to the JSON property `retainBackupsOnDelete`
4755
+ # @return [Boolean]
4756
+ attr_accessor :retain_backups_on_delete
4757
+ alias_method :retain_backups_on_delete?, :retain_backups_on_delete
4758
+
2941
4759
  # The version of instance settings. This is a required field for update method
2942
4760
  # to make sure concurrent updates are handled properly. During update, use the
2943
4761
  # most recent settingsVersion value for this instance and do not try to update
@@ -2989,18 +4807,26 @@ module Google
2989
4807
  def update!(**args)
2990
4808
  @activation_policy = args[:activation_policy] if args.key?(:activation_policy)
2991
4809
  @active_directory_config = args[:active_directory_config] if args.key?(:active_directory_config)
4810
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
2992
4811
  @authorized_gae_applications = args[:authorized_gae_applications] if args.key?(:authorized_gae_applications)
2993
4812
  @availability_type = args[:availability_type] if args.key?(:availability_type)
2994
4813
  @backup_configuration = args[:backup_configuration] if args.key?(:backup_configuration)
2995
4814
  @collation = args[:collation] if args.key?(:collation)
4815
+ @connection_pool_config = args[:connection_pool_config] if args.key?(:connection_pool_config)
2996
4816
  @connector_enforcement = args[:connector_enforcement] if args.key?(:connector_enforcement)
2997
4817
  @crash_safe_replication_enabled = args[:crash_safe_replication_enabled] if args.key?(:crash_safe_replication_enabled)
4818
+ @data_cache_config = args[:data_cache_config] if args.key?(:data_cache_config)
4819
+ @data_disk_provisioned_iops = args[:data_disk_provisioned_iops] if args.key?(:data_disk_provisioned_iops)
4820
+ @data_disk_provisioned_throughput = args[:data_disk_provisioned_throughput] if args.key?(:data_disk_provisioned_throughput)
2998
4821
  @data_disk_size_gb = args[:data_disk_size_gb] if args.key?(:data_disk_size_gb)
2999
4822
  @data_disk_type = args[:data_disk_type] if args.key?(:data_disk_type)
3000
4823
  @database_flags = args[:database_flags] if args.key?(:database_flags)
3001
4824
  @database_replication_enabled = args[:database_replication_enabled] if args.key?(:database_replication_enabled)
3002
4825
  @deletion_protection_enabled = args[:deletion_protection_enabled] if args.key?(:deletion_protection_enabled)
3003
4826
  @deny_maintenance_periods = args[:deny_maintenance_periods] if args.key?(:deny_maintenance_periods)
4827
+ @edition = args[:edition] if args.key?(:edition)
4828
+ @enable_dataplex_integration = args[:enable_dataplex_integration] if args.key?(:enable_dataplex_integration)
4829
+ @enable_google_ml_integration = args[:enable_google_ml_integration] if args.key?(:enable_google_ml_integration)
3004
4830
  @insights_config = args[:insights_config] if args.key?(:insights_config)
3005
4831
  @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
3006
4832
  @kind = args[:kind] if args.key?(:kind)
@@ -3008,7 +4834,9 @@ module Google
3008
4834
  @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
3009
4835
  @password_validation_policy = args[:password_validation_policy] if args.key?(:password_validation_policy)
3010
4836
  @pricing_plan = args[:pricing_plan] if args.key?(:pricing_plan)
4837
+ @replication_lag_max_seconds = args[:replication_lag_max_seconds] if args.key?(:replication_lag_max_seconds)
3011
4838
  @replication_type = args[:replication_type] if args.key?(:replication_type)
4839
+ @retain_backups_on_delete = args[:retain_backups_on_delete] if args.key?(:retain_backups_on_delete)
3012
4840
  @settings_version = args[:settings_version] if args.key?(:settings_version)
3013
4841
  @sql_server_audit_config = args[:sql_server_audit_config] if args.key?(:sql_server_audit_config)
3014
4842
  @storage_auto_resize = args[:storage_auto_resize] if args.key?(:storage_auto_resize)
@@ -3075,6 +4903,100 @@ module Google
3075
4903
  end
3076
4904
  end
3077
4905
 
4906
+ # Acquire SSRS lease response.
4907
+ class SqlInstancesAcquireSsrsLeaseResponse
4908
+ include Google::Apis::Core::Hashable
4909
+
4910
+ # The unique identifier for this operation.
4911
+ # Corresponds to the JSON property `operationId`
4912
+ # @return [String]
4913
+ attr_accessor :operation_id
4914
+
4915
+ def initialize(**args)
4916
+ update!(**args)
4917
+ end
4918
+
4919
+ # Update properties of this object
4920
+ def update!(**args)
4921
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
4922
+ end
4923
+ end
4924
+
4925
+ # Instance get disk shrink config response.
4926
+ class SqlInstancesGetDiskShrinkConfigResponse
4927
+ include Google::Apis::Core::Hashable
4928
+
4929
+ # This is always `sql#getDiskShrinkConfig`.
4930
+ # Corresponds to the JSON property `kind`
4931
+ # @return [String]
4932
+ attr_accessor :kind
4933
+
4934
+ # Additional message to customers.
4935
+ # Corresponds to the JSON property `message`
4936
+ # @return [String]
4937
+ attr_accessor :message
4938
+
4939
+ # The minimum size to which a disk can be shrunk in GigaBytes.
4940
+ # Corresponds to the JSON property `minimalTargetSizeGb`
4941
+ # @return [Fixnum]
4942
+ attr_accessor :minimal_target_size_gb
4943
+
4944
+ def initialize(**args)
4945
+ update!(**args)
4946
+ end
4947
+
4948
+ # Update properties of this object
4949
+ def update!(**args)
4950
+ @kind = args[:kind] if args.key?(:kind)
4951
+ @message = args[:message] if args.key?(:message)
4952
+ @minimal_target_size_gb = args[:minimal_target_size_gb] if args.key?(:minimal_target_size_gb)
4953
+ end
4954
+ end
4955
+
4956
+ # Instance get latest recovery time response.
4957
+ class SqlInstancesGetLatestRecoveryTimeResponse
4958
+ include Google::Apis::Core::Hashable
4959
+
4960
+ # This is always `sql#getLatestRecoveryTime`.
4961
+ # Corresponds to the JSON property `kind`
4962
+ # @return [String]
4963
+ attr_accessor :kind
4964
+
4965
+ # Timestamp, identifies the latest recovery time of the source instance.
4966
+ # Corresponds to the JSON property `latestRecoveryTime`
4967
+ # @return [String]
4968
+ attr_accessor :latest_recovery_time
4969
+
4970
+ def initialize(**args)
4971
+ update!(**args)
4972
+ end
4973
+
4974
+ # Update properties of this object
4975
+ def update!(**args)
4976
+ @kind = args[:kind] if args.key?(:kind)
4977
+ @latest_recovery_time = args[:latest_recovery_time] if args.key?(:latest_recovery_time)
4978
+ end
4979
+ end
4980
+
4981
+ # The response for the release of the SSRS lease.
4982
+ class SqlInstancesReleaseSsrsLeaseResponse
4983
+ include Google::Apis::Core::Hashable
4984
+
4985
+ # The operation ID.
4986
+ # Corresponds to the JSON property `operationId`
4987
+ # @return [String]
4988
+ attr_accessor :operation_id
4989
+
4990
+ def initialize(**args)
4991
+ update!(**args)
4992
+ end
4993
+
4994
+ # Update properties of this object
4995
+ def update!(**args)
4996
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
4997
+ end
4998
+ end
4999
+
3078
5000
  # Reschedule options for maintenance windows.
3079
5001
  class SqlInstancesRescheduleMaintenanceRequestBody
3080
5002
  include Google::Apis::Core::Hashable
@@ -3094,10 +5016,30 @@ module Google
3094
5016
  end
3095
5017
  end
3096
5018
 
5019
+ # Instance reset replica size request.
5020
+ class SqlInstancesResetReplicaSizeRequest
5021
+ include Google::Apis::Core::Hashable
5022
+
5023
+ def initialize(**args)
5024
+ update!(**args)
5025
+ end
5026
+
5027
+ # Update properties of this object
5028
+ def update!(**args)
5029
+ end
5030
+ end
5031
+
3097
5032
  #
3098
5033
  class SqlInstancesStartExternalSyncRequest
3099
5034
  include Google::Apis::Core::Hashable
3100
5035
 
5036
+ # Optional. MigrationType configures the migration to use physical files or
5037
+ # logical dump files. If not set, then the logical dump file configuration is
5038
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5039
+ # Corresponds to the JSON property `migrationType`
5040
+ # @return [String]
5041
+ attr_accessor :migration_type
5042
+
3101
5043
  # MySQL-specific external server sync settings.
3102
5044
  # Corresponds to the JSON property `mysqlSyncConfig`
3103
5045
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
@@ -3114,15 +5056,23 @@ module Google
3114
5056
  # @return [String]
3115
5057
  attr_accessor :sync_mode
3116
5058
 
5059
+ # Optional. Parallel level for initial data sync. Currently only applicable for
5060
+ # MySQL.
5061
+ # Corresponds to the JSON property `syncParallelLevel`
5062
+ # @return [String]
5063
+ attr_accessor :sync_parallel_level
5064
+
3117
5065
  def initialize(**args)
3118
5066
  update!(**args)
3119
5067
  end
3120
5068
 
3121
5069
  # Update properties of this object
3122
5070
  def update!(**args)
5071
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3123
5072
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
3124
5073
  @skip_verification = args[:skip_verification] if args.key?(:skip_verification)
3125
5074
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5075
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3126
5076
  end
3127
5077
  end
3128
5078
 
@@ -3130,16 +5080,34 @@ module Google
3130
5080
  class SqlInstancesVerifyExternalSyncSettingsRequest
3131
5081
  include Google::Apis::Core::Hashable
3132
5082
 
5083
+ # Optional. MigrationType configures the migration to use physical files or
5084
+ # logical dump files. If not set, then the logical dump file configuration is
5085
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5086
+ # Corresponds to the JSON property `migrationType`
5087
+ # @return [String]
5088
+ attr_accessor :migration_type
5089
+
3133
5090
  # MySQL-specific external server sync settings.
3134
5091
  # Corresponds to the JSON property `mysqlSyncConfig`
3135
5092
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
3136
5093
  attr_accessor :mysql_sync_config
3137
5094
 
5095
+ # Optional. Migrate only the specified objects from the source instance. If this
5096
+ # field is empty, then migrate all objects.
5097
+ # Corresponds to the JSON property `selectedObjects`
5098
+ # @return [Array<Google::Apis::SqladminV1beta4::ExternalSyncSelectedObject>]
5099
+ attr_accessor :selected_objects
5100
+
3138
5101
  # External sync mode
3139
5102
  # Corresponds to the JSON property `syncMode`
3140
5103
  # @return [String]
3141
5104
  attr_accessor :sync_mode
3142
5105
 
5106
+ # Optional. Parallel level for initial data sync. Only applicable for PostgreSQL.
5107
+ # Corresponds to the JSON property `syncParallelLevel`
5108
+ # @return [String]
5109
+ attr_accessor :sync_parallel_level
5110
+
3143
5111
  # Flag to enable verifying connection only
3144
5112
  # Corresponds to the JSON property `verifyConnectionOnly`
3145
5113
  # @return [Boolean]
@@ -3158,8 +5126,11 @@ module Google
3158
5126
 
3159
5127
  # Update properties of this object
3160
5128
  def update!(**args)
5129
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3161
5130
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
5131
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
3162
5132
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5133
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3163
5134
  @verify_connection_only = args[:verify_connection_only] if args.key?(:verify_connection_only)
3164
5135
  @verify_replication_only = args[:verify_replication_only] if args.key?(:verify_replication_only)
3165
5136
  end
@@ -3352,6 +5323,25 @@ module Google
3352
5323
  end
3353
5324
  end
3354
5325
 
5326
+ # The sub operation type based on the operation type.
5327
+ class SqlSubOperationType
5328
+ include Google::Apis::Core::Hashable
5329
+
5330
+ # The type of maintenance to be performed on the instance.
5331
+ # Corresponds to the JSON property `maintenanceType`
5332
+ # @return [String]
5333
+ attr_accessor :maintenance_type
5334
+
5335
+ def initialize(**args)
5336
+ update!(**args)
5337
+ end
5338
+
5339
+ # Update properties of this object
5340
+ def update!(**args)
5341
+ @maintenance_type = args[:maintenance_type] if args.key?(:maintenance_type)
5342
+ end
5343
+ end
5344
+
3355
5345
  # SslCerts Resource
3356
5346
  class SslCert
3357
5347
  include Google::Apis::Core::Hashable
@@ -3826,9 +5816,7 @@ module Google
3826
5816
  # @return [String]
3827
5817
  attr_accessor :kind
3828
5818
 
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.
5819
+ # Unused.
3832
5820
  # Corresponds to the JSON property `nextPageToken`
3833
5821
  # @return [String]
3834
5822
  attr_accessor :next_page_token