google-apis-sqladmin_v1beta4 0.41.0 → 0.96.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.
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,26 @@ 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
+
784
+ # The timestamp used to identify the time when the source instance is deleted.
785
+ # If this instance is deleted, then you must set the timestamp.
786
+ # Corresponds to the JSON property `sourceInstanceDeletionTime`
787
+ # @return [String]
788
+ attr_accessor :source_instance_deletion_time
789
+
456
790
  def initialize(**args)
457
791
  update!(**args)
458
792
  end
@@ -466,6 +800,72 @@ module Google
466
800
  @kind = args[:kind] if args.key?(:kind)
467
801
  @pitr_timestamp_ms = args[:pitr_timestamp_ms] if args.key?(:pitr_timestamp_ms)
468
802
  @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
803
+ @preferred_secondary_zone = args[:preferred_secondary_zone] if args.key?(:preferred_secondary_zone)
804
+ @preferred_zone = args[:preferred_zone] if args.key?(:preferred_zone)
805
+ @source_instance_deletion_time = args[:source_instance_deletion_time] if args.key?(:source_instance_deletion_time)
806
+ end
807
+ end
808
+
809
+ # Contains the name and datatype of a column.
810
+ class Column
811
+ include Google::Apis::Core::Hashable
812
+
813
+ # Name of the column.
814
+ # Corresponds to the JSON property `name`
815
+ # @return [String]
816
+ attr_accessor :name
817
+
818
+ # Datatype of the column.
819
+ # Corresponds to the JSON property `type`
820
+ # @return [String]
821
+ attr_accessor :type
822
+
823
+ def initialize(**args)
824
+ update!(**args)
825
+ end
826
+
827
+ # Update properties of this object
828
+ def update!(**args)
829
+ @name = args[:name] if args.key?(:name)
830
+ @type = args[:type] if args.key?(:type)
831
+ end
832
+ end
833
+
834
+ # Details of a single read pool node of a read pool.
835
+ class ConnectPoolNodeConfig
836
+ include Google::Apis::Core::Hashable
837
+
838
+ # Output only. The DNS name of the read pool node.
839
+ # Corresponds to the JSON property `dnsName`
840
+ # @return [String]
841
+ attr_accessor :dns_name
842
+
843
+ # Output only. The list of DNS names used by this read pool node.
844
+ # Corresponds to the JSON property `dnsNames`
845
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
846
+ attr_accessor :dns_names
847
+
848
+ # Output only. Mappings containing IP addresses that can be used to connect to
849
+ # the read pool node.
850
+ # Corresponds to the JSON property `ipAddresses`
851
+ # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
852
+ attr_accessor :ip_addresses
853
+
854
+ # Output only. The name of the read pool node. Doesn't include the project ID.
855
+ # Corresponds to the JSON property `name`
856
+ # @return [String]
857
+ attr_accessor :name
858
+
859
+ def initialize(**args)
860
+ update!(**args)
861
+ end
862
+
863
+ # Update properties of this object
864
+ def update!(**args)
865
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
866
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
867
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
868
+ @name = args[:name] if args.key?(:name)
469
869
  end
470
870
  end
471
871
 
@@ -480,6 +880,11 @@ module Google
480
880
  # @return [String]
481
881
  attr_accessor :backend_type
482
882
 
883
+ # Custom subject alternative names for the server certificate.
884
+ # Corresponds to the JSON property `customSubjectAlternativeNames`
885
+ # @return [Array<String>]
886
+ attr_accessor :custom_subject_alternative_names
887
+
483
888
  # The database engine type and version. The `databaseVersion` field cannot be
484
889
  # changed after instance creation. MySQL instances: `MYSQL_8_0`, `MYSQL_5_7` (
485
890
  # default), or `MYSQL_5_6`. PostgreSQL instances: `POSTGRES_9_6`, `POSTGRES_10`,
@@ -492,6 +897,16 @@ module Google
492
897
  # @return [String]
493
898
  attr_accessor :database_version
494
899
 
900
+ # The dns name of the instance.
901
+ # Corresponds to the JSON property `dnsName`
902
+ # @return [String]
903
+ attr_accessor :dns_name
904
+
905
+ # Output only. The list of DNS names used by this instance.
906
+ # Corresponds to the JSON property `dnsNames`
907
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
908
+ attr_accessor :dns_names
909
+
495
910
  # The assigned IP addresses for the instance.
496
911
  # Corresponds to the JSON property `ipAddresses`
497
912
  # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
@@ -502,6 +917,32 @@ module Google
502
917
  # @return [String]
503
918
  attr_accessor :kind
504
919
 
920
+ # Optional. Output only. mdx_protocol_support controls how the client uses
921
+ # metadata exchange when connecting to the instance. The values in the list
922
+ # representing parts of the MDX protocol that are supported by this instance.
923
+ # When the list is empty, the instance does not support MDX, so the client must
924
+ # not send an MDX request. The default is empty.
925
+ # Corresponds to the JSON property `mdxProtocolSupport`
926
+ # @return [Array<String>]
927
+ attr_accessor :mdx_protocol_support
928
+
929
+ # The number of read pool nodes in a read pool.
930
+ # Corresponds to the JSON property `nodeCount`
931
+ # @return [Fixnum]
932
+ attr_accessor :node_count
933
+
934
+ # Output only. Entries containing information about each read pool node of the
935
+ # read pool.
936
+ # Corresponds to the JSON property `nodes`
937
+ # @return [Array<Google::Apis::SqladminV1beta4::ConnectPoolNodeConfig>]
938
+ attr_accessor :nodes
939
+
940
+ # Whether PSC connectivity is enabled for this instance.
941
+ # Corresponds to the JSON property `pscEnabled`
942
+ # @return [Boolean]
943
+ attr_accessor :psc_enabled
944
+ alias_method :psc_enabled?, :psc_enabled
945
+
505
946
  # The cloud region for the instance. e.g. `us-central1`, `europe-west1`. The
506
947
  # region cannot be changed after instance creation.
507
948
  # Corresponds to the JSON property `region`
@@ -513,6 +954,11 @@ module Google
513
954
  # @return [Google::Apis::SqladminV1beta4::SslCert]
514
955
  attr_accessor :server_ca_cert
515
956
 
957
+ # Specify what type of CA is used for the server certificate.
958
+ # Corresponds to the JSON property `serverCaMode`
959
+ # @return [String]
960
+ attr_accessor :server_ca_mode
961
+
516
962
  def initialize(**args)
517
963
  update!(**args)
518
964
  end
@@ -520,29 +966,116 @@ module Google
520
966
  # Update properties of this object
521
967
  def update!(**args)
522
968
  @backend_type = args[:backend_type] if args.key?(:backend_type)
969
+ @custom_subject_alternative_names = args[:custom_subject_alternative_names] if args.key?(:custom_subject_alternative_names)
523
970
  @database_version = args[:database_version] if args.key?(:database_version)
971
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
972
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
524
973
  @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
525
974
  @kind = args[:kind] if args.key?(:kind)
975
+ @mdx_protocol_support = args[:mdx_protocol_support] if args.key?(:mdx_protocol_support)
976
+ @node_count = args[:node_count] if args.key?(:node_count)
977
+ @nodes = args[:nodes] if args.key?(:nodes)
978
+ @psc_enabled = args[:psc_enabled] if args.key?(:psc_enabled)
526
979
  @region = args[:region] if args.key?(:region)
527
980
  @server_ca_cert = args[:server_ca_cert] if args.key?(:server_ca_cert)
981
+ @server_ca_mode = args[:server_ca_mode] if args.key?(:server_ca_mode)
528
982
  end
529
983
  end
530
984
 
531
- # Represents a SQL database on the Cloud SQL instance.
532
- class Database
985
+ # The managed connection pooling configuration.
986
+ class ConnectionPoolConfig
533
987
  include Google::Apis::Core::Hashable
534
988
 
535
- # The Cloud SQL charset value.
536
- # Corresponds to the JSON property `charset`
537
- # @return [String]
538
- attr_accessor :charset
989
+ # Whether managed connection pooling is enabled.
990
+ # Corresponds to the JSON property `connectionPoolingEnabled`
991
+ # @return [Boolean]
992
+ attr_accessor :connection_pooling_enabled
993
+ alias_method :connection_pooling_enabled?, :connection_pooling_enabled
539
994
 
540
- # The Cloud SQL collation value.
541
- # Corresponds to the JSON property `collation`
542
- # @return [String]
543
- attr_accessor :collation
995
+ # Optional. List of connection pool configuration flags.
996
+ # Corresponds to the JSON property `flags`
997
+ # @return [Array<Google::Apis::SqladminV1beta4::ConnectionPoolFlags>]
998
+ attr_accessor :flags
544
999
 
545
- # This field is deprecated and will be removed from a future version of the API.
1000
+ # Output only. Number of connection poolers.
1001
+ # Corresponds to the JSON property `poolerCount`
1002
+ # @return [Fixnum]
1003
+ attr_accessor :pooler_count
1004
+
1005
+ def initialize(**args)
1006
+ update!(**args)
1007
+ end
1008
+
1009
+ # Update properties of this object
1010
+ def update!(**args)
1011
+ @connection_pooling_enabled = args[:connection_pooling_enabled] if args.key?(:connection_pooling_enabled)
1012
+ @flags = args[:flags] if args.key?(:flags)
1013
+ @pooler_count = args[:pooler_count] if args.key?(:pooler_count)
1014
+ end
1015
+ end
1016
+
1017
+ # Connection pool flags for Cloud SQL instances managed connection pool
1018
+ # configuration.
1019
+ class ConnectionPoolFlags
1020
+ include Google::Apis::Core::Hashable
1021
+
1022
+ # Required. The name of the flag.
1023
+ # Corresponds to the JSON property `name`
1024
+ # @return [String]
1025
+ attr_accessor :name
1026
+
1027
+ # Required. The value of the flag. Boolean flags are set to `on` for true and `
1028
+ # off` for false. This field must be omitted if the flag doesn't take a value.
1029
+ # Corresponds to the JSON property `value`
1030
+ # @return [String]
1031
+ attr_accessor :value
1032
+
1033
+ def initialize(**args)
1034
+ update!(**args)
1035
+ end
1036
+
1037
+ # Update properties of this object
1038
+ def update!(**args)
1039
+ @name = args[:name] if args.key?(:name)
1040
+ @value = args[:value] if args.key?(:value)
1041
+ end
1042
+ end
1043
+
1044
+ # Data cache configurations.
1045
+ class DataCacheConfig
1046
+ include Google::Apis::Core::Hashable
1047
+
1048
+ # Whether data cache is enabled for the instance.
1049
+ # Corresponds to the JSON property `dataCacheEnabled`
1050
+ # @return [Boolean]
1051
+ attr_accessor :data_cache_enabled
1052
+ alias_method :data_cache_enabled?, :data_cache_enabled
1053
+
1054
+ def initialize(**args)
1055
+ update!(**args)
1056
+ end
1057
+
1058
+ # Update properties of this object
1059
+ def update!(**args)
1060
+ @data_cache_enabled = args[:data_cache_enabled] if args.key?(:data_cache_enabled)
1061
+ end
1062
+ end
1063
+
1064
+ # Represents a SQL database on the Cloud SQL instance.
1065
+ class Database
1066
+ include Google::Apis::Core::Hashable
1067
+
1068
+ # The Cloud SQL charset value.
1069
+ # Corresponds to the JSON property `charset`
1070
+ # @return [String]
1071
+ attr_accessor :charset
1072
+
1073
+ # The Cloud SQL collation value.
1074
+ # Corresponds to the JSON property `collation`
1075
+ # @return [String]
1076
+ attr_accessor :collation
1077
+
1078
+ # This field is deprecated and will be removed from a future version of the API.
546
1079
  # Corresponds to the JSON property `etag`
547
1080
  # @return [String]
548
1081
  attr_accessor :etag
@@ -630,7 +1163,7 @@ module Google
630
1163
  class DatabaseInstance
631
1164
  include Google::Apis::Core::Hashable
632
1165
 
633
- # List all maintenance versions applicable on the instance
1166
+ # Output only. List all maintenance versions applicable on the instance
634
1167
  # Corresponds to the JSON property `availableMaintenanceVersions`
635
1168
  # @return [Array<String>]
636
1169
  attr_accessor :available_maintenance_versions
@@ -684,6 +1217,16 @@ module Google
684
1217
  # @return [Google::Apis::SqladminV1beta4::DiskEncryptionStatus]
685
1218
  attr_accessor :disk_encryption_status
686
1219
 
1220
+ # Output only. The dns name of the instance.
1221
+ # Corresponds to the JSON property `dnsName`
1222
+ # @return [String]
1223
+ attr_accessor :dns_name
1224
+
1225
+ # Output only. The list of DNS names used by this instance.
1226
+ # Corresponds to the JSON property `dnsNames`
1227
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
1228
+ attr_accessor :dns_names
1229
+
687
1230
  # This field is deprecated and will be removed from a future version of the API.
688
1231
  # Use the `settings.settingsVersion` field instead.
689
1232
  # Corresponds to the JSON property `etag`
@@ -703,6 +1246,19 @@ module Google
703
1246
  # @return [String]
704
1247
  attr_accessor :gce_zone
705
1248
 
1249
+ # Gemini instance configuration.
1250
+ # Corresponds to the JSON property `geminiConfig`
1251
+ # @return [Google::Apis::SqladminV1beta4::GeminiInstanceConfig]
1252
+ attr_accessor :gemini_config
1253
+
1254
+ # Input only. Determines whether an in-place major version upgrade of replicas
1255
+ # happens when an in-place major version upgrade of a primary instance is
1256
+ # initiated.
1257
+ # Corresponds to the JSON property `includeReplicasForMajorVersionUpgrade`
1258
+ # @return [Boolean]
1259
+ attr_accessor :include_replicas_for_major_version_upgrade
1260
+ alias_method :include_replicas_for_major_version_upgrade?, :include_replicas_for_major_version_upgrade
1261
+
706
1262
  # The instance type.
707
1263
  # Corresponds to the JSON property `instanceType`
708
1264
  # @return [String]
@@ -744,6 +1300,17 @@ module Google
744
1300
  # @return [String]
745
1301
  attr_accessor :name
746
1302
 
1303
+ # The number of read pool nodes in a read pool.
1304
+ # Corresponds to the JSON property `nodeCount`
1305
+ # @return [Fixnum]
1306
+ attr_accessor :node_count
1307
+
1308
+ # Output only. Entries containing information about each read pool node of the
1309
+ # read pool.
1310
+ # Corresponds to the JSON property `nodes`
1311
+ # @return [Array<Google::Apis::SqladminV1beta4::PoolNodeConfig>]
1312
+ attr_accessor :nodes
1313
+
747
1314
  # On-premises instance configuration.
748
1315
  # Corresponds to the JSON property `onPremisesConfiguration`
749
1316
  # @return [Google::Apis::SqladminV1beta4::OnPremisesConfiguration]
@@ -754,16 +1321,26 @@ module Google
754
1321
  # @return [Google::Apis::SqladminV1beta4::SqlOutOfDiskReport]
755
1322
  attr_accessor :out_of_disk_report
756
1323
 
1324
+ # Output only. DEPRECATED: please use write_endpoint instead.
1325
+ # Corresponds to the JSON property `primaryDnsName`
1326
+ # @return [String]
1327
+ attr_accessor :primary_dns_name
1328
+
757
1329
  # The project ID of the project containing the Cloud SQL instance. The Google
758
1330
  # apps domain is prefixed if applicable.
759
1331
  # Corresponds to the JSON property `project`
760
1332
  # @return [String]
761
1333
  attr_accessor :project
762
1334
 
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.
1335
+ # Output only. The link to service attachment of PSC instance.
1336
+ # Corresponds to the JSON property `pscServiceAttachmentLink`
1337
+ # @return [String]
1338
+ attr_accessor :psc_service_attachment_link
1339
+
1340
+ # The geographical region of the Cloud SQL instance. It can be one of the [
1341
+ # regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where
1342
+ # Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-
1343
+ # central1`. The default value is `us-central1`.
767
1344
  # Corresponds to the JSON property `region`
768
1345
  # @return [String]
769
1346
  attr_accessor :region
@@ -778,13 +1355,28 @@ module Google
778
1355
  # @return [Array<String>]
779
1356
  attr_accessor :replica_names
780
1357
 
1358
+ # A primary instance and disaster recovery (DR) replica pair. A DR replica is a
1359
+ # cross-region replica that you designate for failover in the event that the
1360
+ # primary instance has regional failure. Applicable to MySQL and PostgreSQL.
1361
+ # Corresponds to the JSON property `replicationCluster`
1362
+ # @return [Google::Apis::SqladminV1beta4::ReplicationCluster]
1363
+ attr_accessor :replication_cluster
1364
+
781
1365
  # Initial root password. Use only on creation. You must set root passwords
782
1366
  # before you can connect to PostgreSQL instances.
783
1367
  # Corresponds to the JSON property `rootPassword`
784
1368
  # @return [String]
785
1369
  attr_accessor :root_password
786
1370
 
787
- # The status indicating if instance satisfiesPzs. Reserved for future use.
1371
+ # Output only. This status indicates whether the instance satisfies PZI. The
1372
+ # status is reserved for future use.
1373
+ # Corresponds to the JSON property `satisfiesPzi`
1374
+ # @return [Boolean]
1375
+ attr_accessor :satisfies_pzi
1376
+ alias_method :satisfies_pzi?, :satisfies_pzi
1377
+
1378
+ # This status indicates whether the instance satisfies PZS. The status is
1379
+ # reserved for future use.
788
1380
  # Corresponds to the JSON property `satisfiesPzs`
789
1381
  # @return [Boolean]
790
1382
  attr_accessor :satisfies_pzs
@@ -824,6 +1416,11 @@ module Google
824
1416
  # @return [Google::Apis::SqladminV1beta4::Settings]
825
1417
  attr_accessor :settings
826
1418
 
1419
+ # The SQL network architecture for the instance.
1420
+ # Corresponds to the JSON property `sqlNetworkArchitecture`
1421
+ # @return [String]
1422
+ attr_accessor :sql_network_architecture
1423
+
827
1424
  # The current serving state of the Cloud SQL instance.
828
1425
  # Corresponds to the JSON property `state`
829
1426
  # @return [String]
@@ -834,6 +1431,33 @@ module Google
834
1431
  # @return [Array<String>]
835
1432
  attr_accessor :suspension_reason
836
1433
 
1434
+ # Input only. Whether Cloud SQL is enabled to switch storing point-in-time
1435
+ # recovery log files from a data disk to Cloud Storage.
1436
+ # Corresponds to the JSON property `switchTransactionLogsToCloudStorageEnabled`
1437
+ # @return [Boolean]
1438
+ attr_accessor :switch_transaction_logs_to_cloud_storage_enabled
1439
+ alias_method :switch_transaction_logs_to_cloud_storage_enabled?, :switch_transaction_logs_to_cloud_storage_enabled
1440
+
1441
+ # Optional. Input only. Immutable. Tag keys and tag values that are bound to
1442
+ # this instance. You must represent each item in the map as: `"" : ""`. For
1443
+ # example, a single resource can have the following tags: ``` "123/environment":
1444
+ # "production", "123/costCenter": "marketing", ``` For more information on tag
1445
+ # creation and management, see https://cloud.google.com/resource-manager/docs/
1446
+ # tags/tags-overview.
1447
+ # Corresponds to the JSON property `tags`
1448
+ # @return [Hash<String,String>]
1449
+ attr_accessor :tags
1450
+
1451
+ # Output only. All database versions that are available for upgrade.
1452
+ # Corresponds to the JSON property `upgradableDatabaseVersions`
1453
+ # @return [Array<Google::Apis::SqladminV1beta4::AvailableDatabaseVersion>]
1454
+ attr_accessor :upgradable_database_versions
1455
+
1456
+ # Output only. The dns name of the primary instance in a replication group.
1457
+ # Corresponds to the JSON property `writeEndpoint`
1458
+ # @return [String]
1459
+ attr_accessor :write_endpoint
1460
+
837
1461
  def initialize(**args)
838
1462
  update!(**args)
839
1463
  end
@@ -849,9 +1473,13 @@ module Google
849
1473
  @database_version = args[:database_version] if args.key?(:database_version)
850
1474
  @disk_encryption_configuration = args[:disk_encryption_configuration] if args.key?(:disk_encryption_configuration)
851
1475
  @disk_encryption_status = args[:disk_encryption_status] if args.key?(:disk_encryption_status)
1476
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
1477
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
852
1478
  @etag = args[:etag] if args.key?(:etag)
853
1479
  @failover_replica = args[:failover_replica] if args.key?(:failover_replica)
854
1480
  @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
1481
+ @gemini_config = args[:gemini_config] if args.key?(:gemini_config)
1482
+ @include_replicas_for_major_version_upgrade = args[:include_replicas_for_major_version_upgrade] if args.key?(:include_replicas_for_major_version_upgrade)
855
1483
  @instance_type = args[:instance_type] if args.key?(:instance_type)
856
1484
  @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
857
1485
  @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
@@ -860,13 +1488,19 @@ module Google
860
1488
  @master_instance_name = args[:master_instance_name] if args.key?(:master_instance_name)
861
1489
  @max_disk_size = args[:max_disk_size] if args.key?(:max_disk_size)
862
1490
  @name = args[:name] if args.key?(:name)
1491
+ @node_count = args[:node_count] if args.key?(:node_count)
1492
+ @nodes = args[:nodes] if args.key?(:nodes)
863
1493
  @on_premises_configuration = args[:on_premises_configuration] if args.key?(:on_premises_configuration)
864
1494
  @out_of_disk_report = args[:out_of_disk_report] if args.key?(:out_of_disk_report)
1495
+ @primary_dns_name = args[:primary_dns_name] if args.key?(:primary_dns_name)
865
1496
  @project = args[:project] if args.key?(:project)
1497
+ @psc_service_attachment_link = args[:psc_service_attachment_link] if args.key?(:psc_service_attachment_link)
866
1498
  @region = args[:region] if args.key?(:region)
867
1499
  @replica_configuration = args[:replica_configuration] if args.key?(:replica_configuration)
868
1500
  @replica_names = args[:replica_names] if args.key?(:replica_names)
1501
+ @replication_cluster = args[:replication_cluster] if args.key?(:replication_cluster)
869
1502
  @root_password = args[:root_password] if args.key?(:root_password)
1503
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
870
1504
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
871
1505
  @scheduled_maintenance = args[:scheduled_maintenance] if args.key?(:scheduled_maintenance)
872
1506
  @secondary_gce_zone = args[:secondary_gce_zone] if args.key?(:secondary_gce_zone)
@@ -874,8 +1508,13 @@ module Google
874
1508
  @server_ca_cert = args[:server_ca_cert] if args.key?(:server_ca_cert)
875
1509
  @service_account_email_address = args[:service_account_email_address] if args.key?(:service_account_email_address)
876
1510
  @settings = args[:settings] if args.key?(:settings)
1511
+ @sql_network_architecture = args[:sql_network_architecture] if args.key?(:sql_network_architecture)
877
1512
  @state = args[:state] if args.key?(:state)
878
1513
  @suspension_reason = args[:suspension_reason] if args.key?(:suspension_reason)
1514
+ @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)
1515
+ @tags = args[:tags] if args.key?(:tags)
1516
+ @upgradable_database_versions = args[:upgradable_database_versions] if args.key?(:upgradable_database_versions)
1517
+ @write_endpoint = args[:write_endpoint] if args.key?(:write_endpoint)
879
1518
  end
880
1519
 
881
1520
  # The name and status of the failover replica.
@@ -934,6 +1573,33 @@ module Google
934
1573
  end
935
1574
  end
936
1575
 
1576
+ # This context is used to demote an existing standalone instance to be a Cloud
1577
+ # SQL read replica for an external database server.
1578
+ class DemoteContext
1579
+ include Google::Apis::Core::Hashable
1580
+
1581
+ # This is always `sql#demoteContext`.
1582
+ # Corresponds to the JSON property `kind`
1583
+ # @return [String]
1584
+ attr_accessor :kind
1585
+
1586
+ # Required. The name of the instance which acts as an on-premises primary
1587
+ # instance in the replication setup.
1588
+ # Corresponds to the JSON property `sourceRepresentativeInstanceName`
1589
+ # @return [String]
1590
+ attr_accessor :source_representative_instance_name
1591
+
1592
+ def initialize(**args)
1593
+ update!(**args)
1594
+ end
1595
+
1596
+ # Update properties of this object
1597
+ def update!(**args)
1598
+ @kind = args[:kind] if args.key?(:kind)
1599
+ @source_representative_instance_name = args[:source_representative_instance_name] if args.key?(:source_representative_instance_name)
1600
+ end
1601
+ end
1602
+
937
1603
  # Read-replica configuration for connecting to the on-premises primary instance.
938
1604
  class DemoteMasterConfiguration
939
1605
  include Google::Apis::Core::Hashable
@@ -1024,7 +1690,7 @@ module Google
1024
1690
  # @return [String]
1025
1691
  attr_accessor :client_certificate
1026
1692
 
1027
- # PEM representation of the replica's private key. The corresponsing public key
1693
+ # PEM representation of the replica's private key. The corresponding public key
1028
1694
  # is encoded in the client's certificate. The format of the replica's private
1029
1695
  # key can be either PKCS #1 or PKCS #8.
1030
1696
  # Corresponds to the JSON property `clientKey`
@@ -1150,6 +1816,124 @@ module Google
1150
1816
  end
1151
1817
  end
1152
1818
 
1819
+ # DNS metadata.
1820
+ class DnsNameMapping
1821
+ include Google::Apis::Core::Hashable
1822
+
1823
+ # Output only. The connection type of the DNS name.
1824
+ # Corresponds to the JSON property `connectionType`
1825
+ # @return [String]
1826
+ attr_accessor :connection_type
1827
+
1828
+ # Output only. The scope that the DNS name applies to.
1829
+ # Corresponds to the JSON property `dnsScope`
1830
+ # @return [String]
1831
+ attr_accessor :dns_scope
1832
+
1833
+ # Output only. The DNS name.
1834
+ # Corresponds to the JSON property `name`
1835
+ # @return [String]
1836
+ attr_accessor :name
1837
+
1838
+ # Output only. The manager for this DNS record.
1839
+ # Corresponds to the JSON property `recordManager`
1840
+ # @return [String]
1841
+ attr_accessor :record_manager
1842
+
1843
+ def initialize(**args)
1844
+ update!(**args)
1845
+ end
1846
+
1847
+ # Update properties of this object
1848
+ def update!(**args)
1849
+ @connection_type = args[:connection_type] if args.key?(:connection_type)
1850
+ @dns_scope = args[:dns_scope] if args.key?(:dns_scope)
1851
+ @name = args[:name] if args.key?(:name)
1852
+ @record_manager = args[:record_manager] if args.key?(:record_manager)
1853
+ end
1854
+ end
1855
+
1856
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1857
+ # messages in your APIs. A typical example is to use it as the request or the
1858
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1859
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1860
+ class Empty
1861
+ include Google::Apis::Core::Hashable
1862
+
1863
+ def initialize(**args)
1864
+ update!(**args)
1865
+ end
1866
+
1867
+ # Update properties of this object
1868
+ def update!(**args)
1869
+ end
1870
+ end
1871
+
1872
+ # The request payload used to execute SQL statements.
1873
+ class ExecuteSqlPayload
1874
+ include Google::Apis::Core::Hashable
1875
+
1876
+ # Optional. Specifies the name of the application that is making the request.
1877
+ # This field is used for telemetry. Only alphanumeric characters, dashes, and
1878
+ # underscores are allowed. The maximum length is 32 characters.
1879
+ # Corresponds to the JSON property `application`
1880
+ # @return [String]
1881
+ attr_accessor :application
1882
+
1883
+ # Optional. When set to true, the API caller identity associated with the
1884
+ # request is used for database authentication. The API caller must be an IAM
1885
+ # user in the database.
1886
+ # Corresponds to the JSON property `autoIamAuthn`
1887
+ # @return [Boolean]
1888
+ attr_accessor :auto_iam_authn
1889
+ alias_method :auto_iam_authn?, :auto_iam_authn
1890
+
1891
+ # Optional. Name of the database on which the statement will be executed.
1892
+ # Corresponds to the JSON property `database`
1893
+ # @return [String]
1894
+ attr_accessor :database
1895
+
1896
+ # Optional. Controls how the API should respond when the SQL execution result is
1897
+ # incomplete due to the size limit or another error. The default mode is to
1898
+ # throw an error.
1899
+ # Corresponds to the JSON property `partialResultMode`
1900
+ # @return [String]
1901
+ attr_accessor :partial_result_mode
1902
+
1903
+ # Optional. The maximum number of rows returned per SQL statement.
1904
+ # Corresponds to the JSON property `rowLimit`
1905
+ # @return [Fixnum]
1906
+ attr_accessor :row_limit
1907
+
1908
+ # Required. SQL statements to run on the database. It can be a single statement
1909
+ # or a sequence of statements separated by semicolons.
1910
+ # Corresponds to the JSON property `sqlStatement`
1911
+ # @return [String]
1912
+ attr_accessor :sql_statement
1913
+
1914
+ # Optional. The name of an existing database user to connect to the database.
1915
+ # When `auto_iam_authn` is set to true, this field is ignored and the API caller'
1916
+ # s IAM user is used.
1917
+ # Corresponds to the JSON property `user`
1918
+ # @return [String]
1919
+ attr_accessor :user
1920
+
1921
+ def initialize(**args)
1922
+ update!(**args)
1923
+ end
1924
+
1925
+ # Update properties of this object
1926
+ def update!(**args)
1927
+ @application = args[:application] if args.key?(:application)
1928
+ @auto_iam_authn = args[:auto_iam_authn] if args.key?(:auto_iam_authn)
1929
+ @database = args[:database] if args.key?(:database)
1930
+ @partial_result_mode = args[:partial_result_mode] if args.key?(:partial_result_mode)
1931
+ @row_limit = args[:row_limit] if args.key?(:row_limit)
1932
+ @sql_statement = args[:sql_statement] if args.key?(:sql_statement)
1933
+ @user = args[:user] if args.key?(:user)
1934
+ end
1935
+ end
1936
+
1153
1937
  # Database instance export context.
1154
1938
  class ExportContext
1155
1939
  include Google::Apis::Core::Hashable
@@ -1168,11 +1952,14 @@ module Google
1168
1952
  # database is specified, all databases are exported, except for the `mysql`
1169
1953
  # system database. If `fileType` is `CSV`, you can specify one database, either
1170
1954
  # 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`.
1955
+ # which takes precedence over this property. `PostgreSQL instances:` If you don'
1956
+ # t specify a database by name, all user databases in the instance are exported.
1957
+ # This excludes system databases and Cloud SQL databases used to manage internal
1958
+ # operations. Exporting all user databases is only available for directory-
1959
+ # formatted parallel export. If `fileType` is `CSV`, this database must match
1960
+ # the one specified in the `csvExportOptions.selectQuery` property. `SQL Server
1961
+ # instances:` You must specify one database to be exported, and the `fileType`
1962
+ # must be `BAK`.
1176
1963
  # Corresponds to the JSON property `databases`
1177
1964
  # @return [Array<String>]
1178
1965
  attr_accessor :databases
@@ -1187,7 +1974,7 @@ module Google
1187
1974
  # @return [String]
1188
1975
  attr_accessor :kind
1189
1976
 
1190
- # Option for export offload.
1977
+ # Whether to perform a serverless export.
1191
1978
  # Corresponds to the JSON property `offload`
1192
1979
  # @return [Boolean]
1193
1980
  attr_accessor :offload
@@ -1198,6 +1985,11 @@ module Google
1198
1985
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions]
1199
1986
  attr_accessor :sql_export_options
1200
1987
 
1988
+ # Optional. Export parameters specific to SQL Server TDE certificates
1989
+ # Corresponds to the JSON property `tdeExportOptions`
1990
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::TdeExportOptions]
1991
+ attr_accessor :tde_export_options
1992
+
1201
1993
  # The path to the file in Google Cloud Storage where the export will be stored.
1202
1994
  # The URI is in the form `gs://bucketName/fileName`. If the file already exists,
1203
1995
  # the request succeeds, but the operation fails. If `fileType` is `SQL` and the
@@ -1219,6 +2011,7 @@ module Google
1219
2011
  @kind = args[:kind] if args.key?(:kind)
1220
2012
  @offload = args[:offload] if args.key?(:offload)
1221
2013
  @sql_export_options = args[:sql_export_options] if args.key?(:sql_export_options)
2014
+ @tde_export_options = args[:tde_export_options] if args.key?(:tde_export_options)
1222
2015
  @uri = args[:uri] if args.key?(:uri)
1223
2016
  end
1224
2017
 
@@ -1226,6 +2019,41 @@ module Google
1226
2019
  class BakExportOptions
1227
2020
  include Google::Apis::Core::Hashable
1228
2021
 
2022
+ # Type of this bak file will be export, FULL or DIFF, SQL Server only
2023
+ # Corresponds to the JSON property `bakType`
2024
+ # @return [String]
2025
+ attr_accessor :bak_type
2026
+
2027
+ # Deprecated: copy_only is deprecated. Use differential_base instead
2028
+ # Corresponds to the JSON property `copyOnly`
2029
+ # @return [Boolean]
2030
+ attr_accessor :copy_only
2031
+ alias_method :copy_only?, :copy_only
2032
+
2033
+ # Whether or not the backup can be used as a differential base copy_only backup
2034
+ # can not be served as differential base
2035
+ # Corresponds to the JSON property `differentialBase`
2036
+ # @return [Boolean]
2037
+ attr_accessor :differential_base
2038
+ alias_method :differential_base?, :differential_base
2039
+
2040
+ # Optional. The end timestamp when transaction log will be included in the
2041
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
2042
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
2043
+ # until current time will be included. Only applied to Cloud SQL for SQL Server.
2044
+ # Corresponds to the JSON property `exportLogEndTime`
2045
+ # @return [String]
2046
+ attr_accessor :export_log_end_time
2047
+
2048
+ # Optional. The begin timestamp when transaction log will be included in the
2049
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
2050
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
2051
+ # from the beginning of retention period will be included. Only applied to Cloud
2052
+ # SQL for SQL Server.
2053
+ # Corresponds to the JSON property `exportLogStartTime`
2054
+ # @return [String]
2055
+ attr_accessor :export_log_start_time
2056
+
1229
2057
  # Option for specifying how many stripes to use for the export. If blank, and
1230
2058
  # the value of the striped field is true, the number of stripes is automatically
1231
2059
  # chosen.
@@ -1245,6 +2073,11 @@ module Google
1245
2073
 
1246
2074
  # Update properties of this object
1247
2075
  def update!(**args)
2076
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
2077
+ @copy_only = args[:copy_only] if args.key?(:copy_only)
2078
+ @differential_base = args[:differential_base] if args.key?(:differential_base)
2079
+ @export_log_end_time = args[:export_log_end_time] if args.key?(:export_log_end_time)
2080
+ @export_log_start_time = args[:export_log_start_time] if args.key?(:export_log_start_time)
1248
2081
  @stripe_count = args[:stripe_count] if args.key?(:stripe_count)
1249
2082
  @striped = args[:striped] if args.key?(:striped)
1250
2083
  end
@@ -1305,6 +2138,17 @@ module Google
1305
2138
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::MysqlExportOptions]
1306
2139
  attr_accessor :mysql_export_options
1307
2140
 
2141
+ # Optional. Whether or not the export should be parallel.
2142
+ # Corresponds to the JSON property `parallel`
2143
+ # @return [Boolean]
2144
+ attr_accessor :parallel
2145
+ alias_method :parallel?, :parallel
2146
+
2147
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2148
+ # Corresponds to the JSON property `postgresExportOptions`
2149
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::PostgresExportOptions]
2150
+ attr_accessor :postgres_export_options
2151
+
1308
2152
  # Export only schemas.
1309
2153
  # Corresponds to the JSON property `schemaOnly`
1310
2154
  # @return [Boolean]
@@ -1318,6 +2162,11 @@ module Google
1318
2162
  # @return [Array<String>]
1319
2163
  attr_accessor :tables
1320
2164
 
2165
+ # Optional. The number of threads to use for parallel export.
2166
+ # Corresponds to the JSON property `threads`
2167
+ # @return [Fixnum]
2168
+ attr_accessor :threads
2169
+
1321
2170
  def initialize(**args)
1322
2171
  update!(**args)
1323
2172
  end
@@ -1325,8 +2174,11 @@ module Google
1325
2174
  # Update properties of this object
1326
2175
  def update!(**args)
1327
2176
  @mysql_export_options = args[:mysql_export_options] if args.key?(:mysql_export_options)
2177
+ @parallel = args[:parallel] if args.key?(:parallel)
2178
+ @postgres_export_options = args[:postgres_export_options] if args.key?(:postgres_export_options)
1328
2179
  @schema_only = args[:schema_only] if args.key?(:schema_only)
1329
2180
  @tables = args[:tables] if args.key?(:tables)
2181
+ @threads = args[:threads] if args.key?(:threads)
1330
2182
  end
1331
2183
 
1332
2184
  # Options for exporting from MySQL.
@@ -1351,6 +2203,95 @@ module Google
1351
2203
  @master_data = args[:master_data] if args.key?(:master_data)
1352
2204
  end
1353
2205
  end
2206
+
2207
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2208
+ class PostgresExportOptions
2209
+ include Google::Apis::Core::Hashable
2210
+
2211
+ # Optional. Use this option to include DROP <object> SQL statements. Use these
2212
+ # statements to delete database objects before running the import operation.
2213
+ # Corresponds to the JSON property `clean`
2214
+ # @return [Boolean]
2215
+ attr_accessor :clean
2216
+ alias_method :clean?, :clean
2217
+
2218
+ # Optional. Option to include an IF EXISTS SQL statement with each DROP
2219
+ # statement produced by clean.
2220
+ # Corresponds to the JSON property `ifExists`
2221
+ # @return [Boolean]
2222
+ attr_accessor :if_exists
2223
+ alias_method :if_exists?, :if_exists
2224
+
2225
+ def initialize(**args)
2226
+ update!(**args)
2227
+ end
2228
+
2229
+ # Update properties of this object
2230
+ def update!(**args)
2231
+ @clean = args[:clean] if args.key?(:clean)
2232
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2233
+ end
2234
+ end
2235
+ end
2236
+
2237
+ # Optional. Export parameters specific to SQL Server TDE certificates
2238
+ class TdeExportOptions
2239
+ include Google::Apis::Core::Hashable
2240
+
2241
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2242
+ # fileName. The instance must have write access to the location. Applicable only
2243
+ # for SQL Server instances.
2244
+ # Corresponds to the JSON property `certificatePath`
2245
+ # @return [String]
2246
+ attr_accessor :certificate_path
2247
+
2248
+ # Required. Certificate name. Applicable only for SQL Server instances.
2249
+ # Corresponds to the JSON property `name`
2250
+ # @return [String]
2251
+ attr_accessor :name
2252
+
2253
+ # Required. Password that encrypts the private key.
2254
+ # Corresponds to the JSON property `privateKeyPassword`
2255
+ # @return [String]
2256
+ attr_accessor :private_key_password
2257
+
2258
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2259
+ # fileName. The instance must have write access to the location. Applicable only
2260
+ # for SQL Server instances.
2261
+ # Corresponds to the JSON property `privateKeyPath`
2262
+ # @return [String]
2263
+ attr_accessor :private_key_path
2264
+
2265
+ def initialize(**args)
2266
+ update!(**args)
2267
+ end
2268
+
2269
+ # Update properties of this object
2270
+ def update!(**args)
2271
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2272
+ @name = args[:name] if args.key?(:name)
2273
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2274
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2275
+ end
2276
+ end
2277
+ end
2278
+
2279
+ # The selected object that Cloud SQL migrates.
2280
+ class ExternalSyncSelectedObject
2281
+ include Google::Apis::Core::Hashable
2282
+
2283
+ # The name of the database that Cloud SQL migrates.
2284
+ # Corresponds to the JSON property `database`
2285
+ # @return [String]
2286
+ attr_accessor :database
2287
+
2288
+ def initialize(**args)
2289
+ update!(**args)
2290
+ end
2291
+
2292
+ # Update properties of this object
2293
+ def update!(**args)
2294
+ @database = args[:database] if args.key?(:database)
1354
2295
  end
1355
2296
  end
1356
2297
 
@@ -1380,6 +2321,33 @@ module Google
1380
2321
  end
1381
2322
  end
1382
2323
 
2324
+ # Config used to determine the final backup settings for the instance.
2325
+ class FinalBackupConfig
2326
+ include Google::Apis::Core::Hashable
2327
+
2328
+ # Whether the final backup is enabled for the instance.
2329
+ # Corresponds to the JSON property `enabled`
2330
+ # @return [Boolean]
2331
+ attr_accessor :enabled
2332
+ alias_method :enabled?, :enabled
2333
+
2334
+ # The number of days to retain the final backup after the instance deletion. The
2335
+ # final backup will be purged at (time_of_instance_deletion + retention_days).
2336
+ # Corresponds to the JSON property `retentionDays`
2337
+ # @return [Fixnum]
2338
+ attr_accessor :retention_days
2339
+
2340
+ def initialize(**args)
2341
+ update!(**args)
2342
+ end
2343
+
2344
+ # Update properties of this object
2345
+ def update!(**args)
2346
+ @enabled = args[:enabled] if args.key?(:enabled)
2347
+ @retention_days = args[:retention_days] if args.key?(:retention_days)
2348
+ end
2349
+ end
2350
+
1383
2351
  # A flag resource.
1384
2352
  class Flag
1385
2353
  include Google::Apis::Core::Hashable
@@ -1406,6 +2374,11 @@ module Google
1406
2374
  # @return [Array<String>]
1407
2375
  attr_accessor :applies_to
1408
2376
 
2377
+ # Scope of flag.
2378
+ # Corresponds to the JSON property `flagScope`
2379
+ # @return [String]
2380
+ attr_accessor :flag_scope
2381
+
1409
2382
  # Whether or not the flag is considered in beta.
1410
2383
  # Corresponds to the JSON property `inBeta`
1411
2384
  # @return [Boolean]
@@ -1433,6 +2406,16 @@ module Google
1433
2406
  # @return [String]
1434
2407
  attr_accessor :name
1435
2408
 
2409
+ # Recommended flag value in integer format for UI display.
2410
+ # Corresponds to the JSON property `recommendedIntValue`
2411
+ # @return [Fixnum]
2412
+ attr_accessor :recommended_int_value
2413
+
2414
+ # Recommended flag value in string format for UI display.
2415
+ # Corresponds to the JSON property `recommendedStringValue`
2416
+ # @return [String]
2417
+ attr_accessor :recommended_string_value
2418
+
1436
2419
  # Indicates whether changing this flag will trigger a database restart. Only
1437
2420
  # applicable to Second Generation instances.
1438
2421
  # Corresponds to the JSON property `requiresRestart`
@@ -1456,11 +2439,14 @@ module Google
1456
2439
  @allowed_int_values = args[:allowed_int_values] if args.key?(:allowed_int_values)
1457
2440
  @allowed_string_values = args[:allowed_string_values] if args.key?(:allowed_string_values)
1458
2441
  @applies_to = args[:applies_to] if args.key?(:applies_to)
2442
+ @flag_scope = args[:flag_scope] if args.key?(:flag_scope)
1459
2443
  @in_beta = args[:in_beta] if args.key?(:in_beta)
1460
2444
  @kind = args[:kind] if args.key?(:kind)
1461
2445
  @max_value = args[:max_value] if args.key?(:max_value)
1462
2446
  @min_value = args[:min_value] if args.key?(:min_value)
1463
2447
  @name = args[:name] if args.key?(:name)
2448
+ @recommended_int_value = args[:recommended_int_value] if args.key?(:recommended_int_value)
2449
+ @recommended_string_value = args[:recommended_string_value] if args.key?(:recommended_string_value)
1464
2450
  @requires_restart = args[:requires_restart] if args.key?(:requires_restart)
1465
2451
  @type = args[:type] if args.key?(:type)
1466
2452
  end
@@ -1491,6 +2477,61 @@ module Google
1491
2477
  end
1492
2478
  end
1493
2479
 
2480
+ # Gemini instance configuration.
2481
+ class GeminiInstanceConfig
2482
+ include Google::Apis::Core::Hashable
2483
+
2484
+ # Output only. Whether the active query is enabled.
2485
+ # Corresponds to the JSON property `activeQueryEnabled`
2486
+ # @return [Boolean]
2487
+ attr_accessor :active_query_enabled
2488
+ alias_method :active_query_enabled?, :active_query_enabled
2489
+
2490
+ # Output only. Whether Gemini is enabled.
2491
+ # Corresponds to the JSON property `entitled`
2492
+ # @return [Boolean]
2493
+ attr_accessor :entitled
2494
+ alias_method :entitled?, :entitled
2495
+
2496
+ # Output only. Whether the flag recommender is enabled.
2497
+ # Corresponds to the JSON property `flagRecommenderEnabled`
2498
+ # @return [Boolean]
2499
+ attr_accessor :flag_recommender_enabled
2500
+ alias_method :flag_recommender_enabled?, :flag_recommender_enabled
2501
+
2502
+ # Output only. Whether the vacuum management is enabled.
2503
+ # Corresponds to the JSON property `googleVacuumMgmtEnabled`
2504
+ # @return [Boolean]
2505
+ attr_accessor :google_vacuum_mgmt_enabled
2506
+ alias_method :google_vacuum_mgmt_enabled?, :google_vacuum_mgmt_enabled
2507
+
2508
+ # Output only. Whether the index advisor is enabled.
2509
+ # Corresponds to the JSON property `indexAdvisorEnabled`
2510
+ # @return [Boolean]
2511
+ attr_accessor :index_advisor_enabled
2512
+ alias_method :index_advisor_enabled?, :index_advisor_enabled
2513
+
2514
+ # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
2515
+ # Corresponds to the JSON property `oomSessionCancelEnabled`
2516
+ # @return [Boolean]
2517
+ attr_accessor :oom_session_cancel_enabled
2518
+ alias_method :oom_session_cancel_enabled?, :oom_session_cancel_enabled
2519
+
2520
+ def initialize(**args)
2521
+ update!(**args)
2522
+ end
2523
+
2524
+ # Update properties of this object
2525
+ def update!(**args)
2526
+ @active_query_enabled = args[:active_query_enabled] if args.key?(:active_query_enabled)
2527
+ @entitled = args[:entitled] if args.key?(:entitled)
2528
+ @flag_recommender_enabled = args[:flag_recommender_enabled] if args.key?(:flag_recommender_enabled)
2529
+ @google_vacuum_mgmt_enabled = args[:google_vacuum_mgmt_enabled] if args.key?(:google_vacuum_mgmt_enabled)
2530
+ @index_advisor_enabled = args[:index_advisor_enabled] if args.key?(:index_advisor_enabled)
2531
+ @oom_session_cancel_enabled = args[:oom_session_cancel_enabled] if args.key?(:oom_session_cancel_enabled)
2532
+ end
2533
+ end
2534
+
1494
2535
  # Ephemeral certificate creation request.
1495
2536
  class GenerateEphemeralCertRequest
1496
2537
  include Google::Apis::Core::Hashable
@@ -1563,8 +2604,10 @@ module Google
1563
2604
 
1564
2605
  # The target database for the import. If `fileType` is `SQL`, this field is
1565
2606
  # 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.
2607
+ # overridden by any database specification in the import file. For entire
2608
+ # instance parallel import operations, the database is overridden by the
2609
+ # database name stored in subdirectory name. If `fileType` is `CSV`, one
2610
+ # database must be specified.
1568
2611
  # Corresponds to the JSON property `database`
1569
2612
  # @return [String]
1570
2613
  attr_accessor :database
@@ -1586,6 +2629,17 @@ module Google
1586
2629
  # @return [String]
1587
2630
  attr_accessor :kind
1588
2631
 
2632
+ # Optional. Options for importing data from SQL statements.
2633
+ # Corresponds to the JSON property `sqlImportOptions`
2634
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions]
2635
+ attr_accessor :sql_import_options
2636
+
2637
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2638
+ # parameters specific to SQL Server TDE certificates
2639
+ # Corresponds to the JSON property `tdeImportOptions`
2640
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::TdeImportOptions]
2641
+ attr_accessor :tde_import_options
2642
+
1589
2643
  # Path to the import file in Cloud Storage, in the form `gs://bucketName/
1590
2644
  # fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`.
1591
2645
  # The instance must have write permissions to the bucket and read access to the
@@ -1606,6 +2660,8 @@ module Google
1606
2660
  @file_type = args[:file_type] if args.key?(:file_type)
1607
2661
  @import_user = args[:import_user] if args.key?(:import_user)
1608
2662
  @kind = args[:kind] if args.key?(:kind)
2663
+ @sql_import_options = args[:sql_import_options] if args.key?(:sql_import_options)
2664
+ @tde_import_options = args[:tde_import_options] if args.key?(:tde_import_options)
1609
2665
  @uri = args[:uri] if args.key?(:uri)
1610
2666
  end
1611
2667
 
@@ -1613,11 +2669,47 @@ module Google
1613
2669
  class BakImportOptions
1614
2670
  include Google::Apis::Core::Hashable
1615
2671
 
2672
+ # Type of the bak content, FULL or DIFF.
2673
+ # Corresponds to the JSON property `bakType`
2674
+ # @return [String]
2675
+ attr_accessor :bak_type
2676
+
1616
2677
  #
1617
2678
  # Corresponds to the JSON property `encryptionOptions`
1618
2679
  # @return [Google::Apis::SqladminV1beta4::ImportContext::BakImportOptions::EncryptionOptions]
1619
2680
  attr_accessor :encryption_options
1620
2681
 
2682
+ # Whether or not the backup importing will restore database with NORECOVERY
2683
+ # option. Applies only to Cloud SQL for SQL Server.
2684
+ # Corresponds to the JSON property `noRecovery`
2685
+ # @return [Boolean]
2686
+ attr_accessor :no_recovery
2687
+ alias_method :no_recovery?, :no_recovery
2688
+
2689
+ # Whether or not the backup importing request will just bring database online
2690
+ # without downloading Bak content only one of "no_recovery" and "recovery_only"
2691
+ # can be true otherwise error will return. Applies only to Cloud SQL for SQL
2692
+ # Server.
2693
+ # Corresponds to the JSON property `recoveryOnly`
2694
+ # @return [Boolean]
2695
+ attr_accessor :recovery_only
2696
+ alias_method :recovery_only?, :recovery_only
2697
+
2698
+ # Optional. The timestamp when the import should stop. This timestamp is in the [
2699
+ # RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-
2700
+ # 01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies
2701
+ # to Cloud SQL for SQL Server only.
2702
+ # Corresponds to the JSON property `stopAt`
2703
+ # @return [String]
2704
+ attr_accessor :stop_at
2705
+
2706
+ # Optional. The marked transaction where the import should stop. This field is
2707
+ # equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server
2708
+ # only.
2709
+ # Corresponds to the JSON property `stopAtMark`
2710
+ # @return [String]
2711
+ attr_accessor :stop_at_mark
2712
+
1621
2713
  # Whether or not the backup set being restored is striped. Applies only to Cloud
1622
2714
  # SQL for SQL Server.
1623
2715
  # Corresponds to the JSON property `striped`
@@ -1631,7 +2723,12 @@ module Google
1631
2723
 
1632
2724
  # Update properties of this object
1633
2725
  def update!(**args)
2726
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
1634
2727
  @encryption_options = args[:encryption_options] if args.key?(:encryption_options)
2728
+ @no_recovery = args[:no_recovery] if args.key?(:no_recovery)
2729
+ @recovery_only = args[:recovery_only] if args.key?(:recovery_only)
2730
+ @stop_at = args[:stop_at] if args.key?(:stop_at)
2731
+ @stop_at_mark = args[:stop_at_mark] if args.key?(:stop_at_mark)
1635
2732
  @striped = args[:striped] if args.key?(:striped)
1636
2733
  end
1637
2734
 
@@ -1646,6 +2743,12 @@ module Google
1646
2743
  # @return [String]
1647
2744
  attr_accessor :cert_path
1648
2745
 
2746
+ # Optional. Whether the imported file remains encrypted.
2747
+ # Corresponds to the JSON property `keepEncrypted`
2748
+ # @return [Boolean]
2749
+ attr_accessor :keep_encrypted
2750
+ alias_method :keep_encrypted?, :keep_encrypted
2751
+
1649
2752
  # Password that encrypts the private key
1650
2753
  # Corresponds to the JSON property `pvkPassword`
1651
2754
  # @return [String]
@@ -1665,6 +2768,7 @@ module Google
1665
2768
  # Update properties of this object
1666
2769
  def update!(**args)
1667
2770
  @cert_path = args[:cert_path] if args.key?(:cert_path)
2771
+ @keep_encrypted = args[:keep_encrypted] if args.key?(:keep_encrypted)
1668
2772
  @pvk_password = args[:pvk_password] if args.key?(:pvk_password)
1669
2773
  @pvk_path = args[:pvk_path] if args.key?(:pvk_path)
1670
2774
  end
@@ -1723,6 +2827,109 @@ module Google
1723
2827
  @table = args[:table] if args.key?(:table)
1724
2828
  end
1725
2829
  end
2830
+
2831
+ # Optional. Options for importing data from SQL statements.
2832
+ class SqlImportOptions
2833
+ include Google::Apis::Core::Hashable
2834
+
2835
+ # Optional. Whether or not the import should be parallel.
2836
+ # Corresponds to the JSON property `parallel`
2837
+ # @return [Boolean]
2838
+ attr_accessor :parallel
2839
+ alias_method :parallel?, :parallel
2840
+
2841
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2842
+ # Corresponds to the JSON property `postgresImportOptions`
2843
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions::PostgresImportOptions]
2844
+ attr_accessor :postgres_import_options
2845
+
2846
+ # Optional. The number of threads to use for parallel import.
2847
+ # Corresponds to the JSON property `threads`
2848
+ # @return [Fixnum]
2849
+ attr_accessor :threads
2850
+
2851
+ def initialize(**args)
2852
+ update!(**args)
2853
+ end
2854
+
2855
+ # Update properties of this object
2856
+ def update!(**args)
2857
+ @parallel = args[:parallel] if args.key?(:parallel)
2858
+ @postgres_import_options = args[:postgres_import_options] if args.key?(:postgres_import_options)
2859
+ @threads = args[:threads] if args.key?(:threads)
2860
+ end
2861
+
2862
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2863
+ class PostgresImportOptions
2864
+ include Google::Apis::Core::Hashable
2865
+
2866
+ # Optional. The --clean flag for the pg_restore utility. This flag applies only
2867
+ # if you enabled Cloud SQL to import files in parallel.
2868
+ # Corresponds to the JSON property `clean`
2869
+ # @return [Boolean]
2870
+ attr_accessor :clean
2871
+ alias_method :clean?, :clean
2872
+
2873
+ # Optional. The --if-exists flag for the pg_restore utility. This flag applies
2874
+ # only if you enabled Cloud SQL to import files in parallel.
2875
+ # Corresponds to the JSON property `ifExists`
2876
+ # @return [Boolean]
2877
+ attr_accessor :if_exists
2878
+ alias_method :if_exists?, :if_exists
2879
+
2880
+ def initialize(**args)
2881
+ update!(**args)
2882
+ end
2883
+
2884
+ # Update properties of this object
2885
+ def update!(**args)
2886
+ @clean = args[:clean] if args.key?(:clean)
2887
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2888
+ end
2889
+ end
2890
+ end
2891
+
2892
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2893
+ # parameters specific to SQL Server TDE certificates
2894
+ class TdeImportOptions
2895
+ include Google::Apis::Core::Hashable
2896
+
2897
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2898
+ # fileName. The instance must have read access to the file. Applicable only for
2899
+ # SQL Server instances.
2900
+ # Corresponds to the JSON property `certificatePath`
2901
+ # @return [String]
2902
+ attr_accessor :certificate_path
2903
+
2904
+ # Required. Certificate name. Applicable only for SQL Server instances.
2905
+ # Corresponds to the JSON property `name`
2906
+ # @return [String]
2907
+ attr_accessor :name
2908
+
2909
+ # Required. Password that encrypts the private key.
2910
+ # Corresponds to the JSON property `privateKeyPassword`
2911
+ # @return [String]
2912
+ attr_accessor :private_key_password
2913
+
2914
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2915
+ # fileName. The instance must have read access to the file. Applicable only for
2916
+ # SQL Server instances.
2917
+ # Corresponds to the JSON property `privateKeyPath`
2918
+ # @return [String]
2919
+ attr_accessor :private_key_path
2920
+
2921
+ def initialize(**args)
2922
+ update!(**args)
2923
+ end
2924
+
2925
+ # Update properties of this object
2926
+ def update!(**args)
2927
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2928
+ @name = args[:name] if args.key?(:name)
2929
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2930
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2931
+ end
2932
+ end
1726
2933
  end
1727
2934
 
1728
2935
  # Insights configuration. This specifies when Cloud SQL Insights feature is
@@ -1730,6 +2937,12 @@ module Google
1730
2937
  class InsightsConfig
1731
2938
  include Google::Apis::Core::Hashable
1732
2939
 
2940
+ # Optional. Whether enhanced query insights feature is enabled.
2941
+ # Corresponds to the JSON property `enhancedQueryInsightsEnabled`
2942
+ # @return [Boolean]
2943
+ attr_accessor :enhanced_query_insights_enabled
2944
+ alias_method :enhanced_query_insights_enabled?, :enhanced_query_insights_enabled
2945
+
1733
2946
  # Whether Query Insights feature is enabled.
1734
2947
  # Corresponds to the JSON property `queryInsightsEnabled`
1735
2948
  # @return [Boolean]
@@ -1743,8 +2956,8 @@ module Google
1743
2956
  attr_accessor :query_plans_per_minute
1744
2957
 
1745
2958
  # 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
2959
+ # 4500 bytes. Query lengths greater than this field value will be truncated to
2960
+ # this value. When unset, query length will be the default value. Changing query
1748
2961
  # length will restart the database.
1749
2962
  # Corresponds to the JSON property `queryStringLength`
1750
2963
  # @return [Fixnum]
@@ -1768,6 +2981,7 @@ module Google
1768
2981
 
1769
2982
  # Update properties of this object
1770
2983
  def update!(**args)
2984
+ @enhanced_query_insights_enabled = args[:enhanced_query_insights_enabled] if args.key?(:enhanced_query_insights_enabled)
1771
2985
  @query_insights_enabled = args[:query_insights_enabled] if args.key?(:query_insights_enabled)
1772
2986
  @query_plans_per_minute = args[:query_plans_per_minute] if args.key?(:query_plans_per_minute)
1773
2987
  @query_string_length = args[:query_string_length] if args.key?(:query_string_length)
@@ -1809,6 +3023,25 @@ module Google
1809
3023
  end
1810
3024
  end
1811
3025
 
3026
+ # Request to acquire an SSRS lease for an instance.
3027
+ class InstancesAcquireSsrsLeaseRequest
3028
+ include Google::Apis::Core::Hashable
3029
+
3030
+ # Acquire SSRS lease context.
3031
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
3032
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
3033
+ attr_accessor :acquire_ssrs_lease_context
3034
+
3035
+ def initialize(**args)
3036
+ update!(**args)
3037
+ end
3038
+
3039
+ # Update properties of this object
3040
+ def update!(**args)
3041
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
3042
+ end
3043
+ end
3044
+
1812
3045
  # Database instance clone request.
1813
3046
  class CloneInstancesRequest
1814
3047
  include Google::Apis::Core::Hashable
@@ -1847,6 +3080,27 @@ module Google
1847
3080
  end
1848
3081
  end
1849
3082
 
3083
+ # This request is used to demote an existing standalone instance to be a Cloud
3084
+ # SQL read replica for an external database server.
3085
+ class InstancesDemoteRequest
3086
+ include Google::Apis::Core::Hashable
3087
+
3088
+ # This context is used to demote an existing standalone instance to be a Cloud
3089
+ # SQL read replica for an external database server.
3090
+ # Corresponds to the JSON property `demoteContext`
3091
+ # @return [Google::Apis::SqladminV1beta4::DemoteContext]
3092
+ attr_accessor :demote_context
3093
+
3094
+ def initialize(**args)
3095
+ update!(**args)
3096
+ end
3097
+
3098
+ # Update properties of this object
3099
+ def update!(**args)
3100
+ @demote_context = args[:demote_context] if args.key?(:demote_context)
3101
+ end
3102
+ end
3103
+
1850
3104
  # Database instance export request.
1851
3105
  class ExportInstancesRequest
1852
3106
  include Google::Apis::Core::Hashable
@@ -1904,6 +3158,37 @@ module Google
1904
3158
  end
1905
3159
  end
1906
3160
 
3161
+ # Instances ListEntraIdCertificates response.
3162
+ class InstancesListEntraIdCertificatesResponse
3163
+ include Google::Apis::Core::Hashable
3164
+
3165
+ # The `sha1_fingerprint` of the active certificate from `certs`.
3166
+ # Corresponds to the JSON property `activeVersion`
3167
+ # @return [String]
3168
+ attr_accessor :active_version
3169
+
3170
+ # List of Entra ID certificates for the instance.
3171
+ # Corresponds to the JSON property `certs`
3172
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3173
+ attr_accessor :certs
3174
+
3175
+ # This is always `sql#instancesListEntraIdCertificates`.
3176
+ # Corresponds to the JSON property `kind`
3177
+ # @return [String]
3178
+ attr_accessor :kind
3179
+
3180
+ def initialize(**args)
3181
+ update!(**args)
3182
+ end
3183
+
3184
+ # Update properties of this object
3185
+ def update!(**args)
3186
+ @active_version = args[:active_version] if args.key?(:active_version)
3187
+ @certs = args[:certs] if args.key?(:certs)
3188
+ @kind = args[:kind] if args.key?(:kind)
3189
+ end
3190
+ end
3191
+
1907
3192
  # Database instances list response.
1908
3193
  class ListInstancesResponse
1909
3194
  include Google::Apis::Core::Hashable
@@ -1973,23 +3258,149 @@ module Google
1973
3258
  end
1974
3259
  end
1975
3260
 
3261
+ # Instances ListServerCertificatess response.
3262
+ class InstancesListServerCertificatesResponse
3263
+ include Google::Apis::Core::Hashable
3264
+
3265
+ # The `sha1_fingerprint` of the active certificate from `server_certs`.
3266
+ # Corresponds to the JSON property `activeVersion`
3267
+ # @return [String]
3268
+ attr_accessor :active_version
3269
+
3270
+ # List of server CA certificates for the instance.
3271
+ # Corresponds to the JSON property `caCerts`
3272
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3273
+ attr_accessor :ca_certs
3274
+
3275
+ # This is always `sql#instancesListServerCertificates`.
3276
+ # Corresponds to the JSON property `kind`
3277
+ # @return [String]
3278
+ attr_accessor :kind
3279
+
3280
+ # List of server certificates for the instance, signed by the corresponding CA
3281
+ # from the `ca_certs` list.
3282
+ # Corresponds to the JSON property `serverCerts`
3283
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3284
+ attr_accessor :server_certs
3285
+
3286
+ def initialize(**args)
3287
+ update!(**args)
3288
+ end
3289
+
3290
+ # Update properties of this object
3291
+ def update!(**args)
3292
+ @active_version = args[:active_version] if args.key?(:active_version)
3293
+ @ca_certs = args[:ca_certs] if args.key?(:ca_certs)
3294
+ @kind = args[:kind] if args.key?(:kind)
3295
+ @server_certs = args[:server_certs] if args.key?(:server_certs)
3296
+ end
3297
+ end
3298
+
3299
+ # Request for Pre-checks for MVU
3300
+ class InstancesPreCheckMajorVersionUpgradeRequest
3301
+ include Google::Apis::Core::Hashable
3302
+
3303
+ # Pre-check major version upgrade context.
3304
+ # Corresponds to the JSON property `preCheckMajorVersionUpgradeContext`
3305
+ # @return [Google::Apis::SqladminV1beta4::PreCheckMajorVersionUpgradeContext]
3306
+ attr_accessor :pre_check_major_version_upgrade_context
3307
+
3308
+ def initialize(**args)
3309
+ update!(**args)
3310
+ end
3311
+
3312
+ # Update properties of this object
3313
+ def update!(**args)
3314
+ @pre_check_major_version_upgrade_context = args[:pre_check_major_version_upgrade_context] if args.key?(:pre_check_major_version_upgrade_context)
3315
+ end
3316
+ end
3317
+
3318
+ # Database Instance reencrypt request.
3319
+ class InstancesReencryptRequest
3320
+ include Google::Apis::Core::Hashable
3321
+
3322
+ # Backup Reencryption Config
3323
+ # Corresponds to the JSON property `backupReencryptionConfig`
3324
+ # @return [Google::Apis::SqladminV1beta4::BackupReencryptionConfig]
3325
+ attr_accessor :backup_reencryption_config
3326
+
3327
+ def initialize(**args)
3328
+ update!(**args)
3329
+ end
3330
+
3331
+ # Update properties of this object
3332
+ def update!(**args)
3333
+ @backup_reencryption_config = args[:backup_reencryption_config] if args.key?(:backup_reencryption_config)
3334
+ end
3335
+ end
3336
+
1976
3337
  # Database instance restore backup request.
1977
3338
  class RestoreInstancesBackupRequest
1978
3339
  include Google::Apis::Core::Hashable
1979
3340
 
3341
+ # The name of the backup that's used to restore a Cloud SQL instance: Format:
3342
+ # projects/`project-id`/backups/`backup-uid`. Only one of restore_backup_context,
3343
+ # backup, backupdr_backup can be passed to the input.
3344
+ # Corresponds to the JSON property `backup`
3345
+ # @return [String]
3346
+ attr_accessor :backup
3347
+
3348
+ # The name of the backup that's used to restore a Cloud SQL instance: Format: "
3349
+ # projects/`project-id`/locations/`location`/backupVaults/`backupvault`/
3350
+ # dataSources/`datasource`/backups/`backup-uid`". Only one of
3351
+ # restore_backup_context, backup, backupdr_backup can be passed to the input.
3352
+ # Corresponds to the JSON property `backupdrBackup`
3353
+ # @return [String]
3354
+ attr_accessor :backupdr_backup
3355
+
1980
3356
  # Database instance restore from backup context. Backup context contains source
1981
3357
  # instance id and project id.
1982
3358
  # Corresponds to the JSON property `restoreBackupContext`
1983
3359
  # @return [Google::Apis::SqladminV1beta4::RestoreBackupContext]
1984
3360
  attr_accessor :restore_backup_context
1985
3361
 
3362
+ # Optional. This field has the same purpose as restore_instance_settings,
3363
+ # changes any instance settings stored in the backup you are restoring from.
3364
+ # With the difference that these fields are cleared in the settings.
3365
+ # Corresponds to the JSON property `restoreInstanceClearOverridesFieldNames`
3366
+ # @return [Array<String>]
3367
+ attr_accessor :restore_instance_clear_overrides_field_names
3368
+
3369
+ # A Cloud SQL instance resource.
3370
+ # Corresponds to the JSON property `restoreInstanceSettings`
3371
+ # @return [Google::Apis::SqladminV1beta4::DatabaseInstance]
3372
+ attr_accessor :restore_instance_settings
3373
+
1986
3374
  def initialize(**args)
1987
3375
  update!(**args)
1988
3376
  end
1989
3377
 
1990
3378
  # Update properties of this object
1991
3379
  def update!(**args)
3380
+ @backup = args[:backup] if args.key?(:backup)
3381
+ @backupdr_backup = args[:backupdr_backup] if args.key?(:backupdr_backup)
1992
3382
  @restore_backup_context = args[:restore_backup_context] if args.key?(:restore_backup_context)
3383
+ @restore_instance_clear_overrides_field_names = args[:restore_instance_clear_overrides_field_names] if args.key?(:restore_instance_clear_overrides_field_names)
3384
+ @restore_instance_settings = args[:restore_instance_settings] if args.key?(:restore_instance_settings)
3385
+ end
3386
+ end
3387
+
3388
+ # Rotate Entra ID Certificate request.
3389
+ class InstancesRotateEntraIdCertificateRequest
3390
+ include Google::Apis::Core::Hashable
3391
+
3392
+ # Instance rotate Entra ID certificate context.
3393
+ # Corresponds to the JSON property `rotateEntraIdCertificateContext`
3394
+ # @return [Google::Apis::SqladminV1beta4::RotateEntraIdCertificateContext]
3395
+ attr_accessor :rotate_entra_id_certificate_context
3396
+
3397
+ def initialize(**args)
3398
+ update!(**args)
3399
+ end
3400
+
3401
+ # Update properties of this object
3402
+ def update!(**args)
3403
+ @rotate_entra_id_certificate_context = args[:rotate_entra_id_certificate_context] if args.key?(:rotate_entra_id_certificate_context)
1993
3404
  end
1994
3405
  end
1995
3406
 
@@ -2012,6 +3423,25 @@ module Google
2012
3423
  end
2013
3424
  end
2014
3425
 
3426
+ # Rotate Server Certificate request.
3427
+ class InstancesRotateServerCertificateRequest
3428
+ include Google::Apis::Core::Hashable
3429
+
3430
+ # Instance rotate server certificate context.
3431
+ # Corresponds to the JSON property `rotateServerCertificateContext`
3432
+ # @return [Google::Apis::SqladminV1beta4::RotateServerCertificateContext]
3433
+ attr_accessor :rotate_server_certificate_context
3434
+
3435
+ def initialize(**args)
3436
+ update!(**args)
3437
+ end
3438
+
3439
+ # Update properties of this object
3440
+ def update!(**args)
3441
+ @rotate_server_certificate_context = args[:rotate_server_certificate_context] if args.key?(:rotate_server_certificate_context)
3442
+ end
3443
+ end
3444
+
2015
3445
  # Instance truncate log request.
2016
3446
  class InstancesTruncateLogRequest
2017
3447
  include Google::Apis::Core::Hashable
@@ -2031,6 +3461,36 @@ module Google
2031
3461
  end
2032
3462
  end
2033
3463
 
3464
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
3465
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
3466
+ # When the start equals the end, the interval is empty (matches no time). When
3467
+ # both start and end are unspecified, the interval matches any time.
3468
+ class Interval
3469
+ include Google::Apis::Core::Hashable
3470
+
3471
+ # Optional. Exclusive end of the interval. If specified, a Timestamp matching
3472
+ # this interval will have to be before the end.
3473
+ # Corresponds to the JSON property `endTime`
3474
+ # @return [String]
3475
+ attr_accessor :end_time
3476
+
3477
+ # Optional. Inclusive start of the interval. If specified, a Timestamp matching
3478
+ # this interval will have to be the same or after the start.
3479
+ # Corresponds to the JSON property `startTime`
3480
+ # @return [String]
3481
+ attr_accessor :start_time
3482
+
3483
+ def initialize(**args)
3484
+ update!(**args)
3485
+ end
3486
+
3487
+ # Update properties of this object
3488
+ def update!(**args)
3489
+ @end_time = args[:end_time] if args.key?(:end_time)
3490
+ @start_time = args[:start_time] if args.key?(:start_time)
3491
+ end
3492
+ end
3493
+
2034
3494
  # IP Management configuration.
2035
3495
  class IpConfiguration
2036
3496
  include Google::Apis::Core::Hashable
@@ -2051,6 +3511,11 @@ module Google
2051
3511
  # @return [Array<Google::Apis::SqladminV1beta4::AclEntry>]
2052
3512
  attr_accessor :authorized_networks
2053
3513
 
3514
+ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
3515
+ # Corresponds to the JSON property `customSubjectAlternativeNames`
3516
+ # @return [Array<String>]
3517
+ attr_accessor :custom_subject_alternative_names
3518
+
2054
3519
  # Controls connectivity to private IP instances from Google services, such as
2055
3520
  # BigQuery.
2056
3521
  # Corresponds to the JSON property `enablePrivatePathForGoogleCloudServices`
@@ -2072,12 +3537,62 @@ module Google
2072
3537
  # @return [String]
2073
3538
  attr_accessor :private_network
2074
3539
 
2075
- # Whether SSL connections over IP are enforced or not.
3540
+ # PSC settings for a Cloud SQL instance.
3541
+ # Corresponds to the JSON property `pscConfig`
3542
+ # @return [Google::Apis::SqladminV1beta4::PscConfig]
3543
+ attr_accessor :psc_config
3544
+
3545
+ # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If
3546
+ # set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/
3547
+ # TLS connections, the client certificate won't be verified. If set to true,
3548
+ # then only allow connections encrypted with SSL/TLS and with valid client
3549
+ # certificates. If you want to enforce SSL/TLS without enforcing the requirement
3550
+ # for valid client certificates, then use the `ssl_mode` flag instead of the
3551
+ # legacy `require_ssl` flag.
2076
3552
  # Corresponds to the JSON property `requireSsl`
2077
3553
  # @return [Boolean]
2078
3554
  attr_accessor :require_ssl
2079
3555
  alias_method :require_ssl?, :require_ssl
2080
3556
 
3557
+ # Specify what type of CA is used for the server certificate.
3558
+ # Corresponds to the JSON property `serverCaMode`
3559
+ # @return [String]
3560
+ attr_accessor :server_ca_mode
3561
+
3562
+ # Optional. The resource name of the server CA pool for an instance with `
3563
+ # CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/`PROJECT`/
3564
+ # locations/`REGION`/caPools/`CA_POOL_ID`
3565
+ # Corresponds to the JSON property `serverCaPool`
3566
+ # @return [String]
3567
+ attr_accessor :server_ca_pool
3568
+
3569
+ # Optional. Controls the automatic server certificate rotation feature. This
3570
+ # feature is disabled by default. When enabled, the server certificate will be
3571
+ # automatically rotated during Cloud SQL scheduled maintenance or self-service
3572
+ # maintenance updates up to six months before it expires. This setting can only
3573
+ # be set if server_ca_mode is either GOOGLE_MANAGED_CAS_CA or
3574
+ # CUSTOMER_MANAGED_CAS_CA.
3575
+ # Corresponds to the JSON property `serverCertificateRotationMode`
3576
+ # @return [String]
3577
+ attr_accessor :server_certificate_rotation_mode
3578
+
3579
+ # Specify how SSL/TLS is enforced in database connections. If you must use the `
3580
+ # require_ssl` flag for backward compatibility, then only the following value
3581
+ # pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=
3582
+ # ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3583
+ # ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=
3584
+ # TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `
3585
+ # ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3586
+ # ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority
3587
+ # over the value of `require_ssl`. For example, for the pair `ssl_mode=
3588
+ # ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means
3589
+ # accept only SSL connections, while `require_ssl=false` means accept both non-
3590
+ # SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `
3591
+ # ssl_mode` and accepts only SSL connections.
3592
+ # Corresponds to the JSON property `sslMode`
3593
+ # @return [String]
3594
+ attr_accessor :ssl_mode
3595
+
2081
3596
  def initialize(**args)
2082
3597
  update!(**args)
2083
3598
  end
@@ -2086,14 +3601,20 @@ module Google
2086
3601
  def update!(**args)
2087
3602
  @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
2088
3603
  @authorized_networks = args[:authorized_networks] if args.key?(:authorized_networks)
3604
+ @custom_subject_alternative_names = args[:custom_subject_alternative_names] if args.key?(:custom_subject_alternative_names)
2089
3605
  @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
3606
  @ipv4_enabled = args[:ipv4_enabled] if args.key?(:ipv4_enabled)
2091
3607
  @private_network = args[:private_network] if args.key?(:private_network)
3608
+ @psc_config = args[:psc_config] if args.key?(:psc_config)
2092
3609
  @require_ssl = args[:require_ssl] if args.key?(:require_ssl)
3610
+ @server_ca_mode = args[:server_ca_mode] if args.key?(:server_ca_mode)
3611
+ @server_ca_pool = args[:server_ca_pool] if args.key?(:server_ca_pool)
3612
+ @server_certificate_rotation_mode = args[:server_certificate_rotation_mode] if args.key?(:server_certificate_rotation_mode)
3613
+ @ssl_mode = args[:ssl_mode] if args.key?(:ssl_mode)
2093
3614
  end
2094
3615
  end
2095
3616
 
2096
- # Database instance IP Mapping.
3617
+ # Database instance IP mapping
2097
3618
  class IpMapping
2098
3619
  include Google::Apis::Core::Hashable
2099
3620
 
@@ -2129,16 +3650,49 @@ module Google
2129
3650
  end
2130
3651
  end
2131
3652
 
2132
- # Preferred location. This specifies where a Cloud SQL instance is located. Note
2133
- # that if the preferred location is not available, the instance will be located
2134
- # as close as possible within the region. Only one location may be specified.
2135
- class LocationPreference
3653
+ # The response payload containing a list of the backups.
3654
+ class ListBackupsResponse
2136
3655
  include Google::Apis::Core::Hashable
2137
3656
 
2138
- # The App Engine application to follow, it must be in the same region as the
2139
- # Cloud SQL instance. WARNING: Changing this might restart the instance.
2140
- # Corresponds to the JSON property `followGaeApplication`
2141
- # @return [String]
3657
+ # A list of backups.
3658
+ # Corresponds to the JSON property `backups`
3659
+ # @return [Array<Google::Apis::SqladminV1beta4::Backup>]
3660
+ attr_accessor :backups
3661
+
3662
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
3663
+ # field is omitted, then there aren't subsequent pages.
3664
+ # Corresponds to the JSON property `nextPageToken`
3665
+ # @return [String]
3666
+ attr_accessor :next_page_token
3667
+
3668
+ # If a region isn't unavailable or if an unknown error occurs, then a warning
3669
+ # message is returned.
3670
+ # Corresponds to the JSON property `warnings`
3671
+ # @return [Array<Google::Apis::SqladminV1beta4::ApiWarning>]
3672
+ attr_accessor :warnings
3673
+
3674
+ def initialize(**args)
3675
+ update!(**args)
3676
+ end
3677
+
3678
+ # Update properties of this object
3679
+ def update!(**args)
3680
+ @backups = args[:backups] if args.key?(:backups)
3681
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3682
+ @warnings = args[:warnings] if args.key?(:warnings)
3683
+ end
3684
+ end
3685
+
3686
+ # Preferred location. This specifies where a Cloud SQL instance is located. Note
3687
+ # that if the preferred location is not available, the instance will be located
3688
+ # as close as possible within the region. Only one location may be specified.
3689
+ class LocationPreference
3690
+ include Google::Apis::Core::Hashable
3691
+
3692
+ # The App Engine application to follow, it must be in the same region as the
3693
+ # Cloud SQL instance. WARNING: Changing this might restart the instance.
3694
+ # Corresponds to the JSON property `followGaeApplication`
3695
+ # @return [String]
2142
3696
  attr_accessor :follow_gae_application
2143
3697
 
2144
3698
  # This is always `sql#locationPreference`.
@@ -2147,7 +3701,8 @@ module Google
2147
3701
  attr_accessor :kind
2148
3702
 
2149
3703
  # The preferred Compute Engine zone for the secondary/failover (for example: us-
2150
- # central1-a, us-central1-b, etc.).
3704
+ # central1-a, us-central1-b, etc.). To disable this field, set it to '
3705
+ # no_secondary_zone'.
2151
3706
  # Corresponds to the JSON property `secondaryZone`
2152
3707
  # @return [String]
2153
3708
  attr_accessor :secondary_zone
@@ -2176,12 +3731,14 @@ module Google
2176
3731
  class MaintenanceWindow
2177
3732
  include Google::Apis::Core::Hashable
2178
3733
 
2179
- # day of week (1-7), starting on Monday.
3734
+ # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `
3735
+ # SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an
3736
+ # integer, 1 to 7, where `1` equals Monday.
2180
3737
  # Corresponds to the JSON property `day`
2181
3738
  # @return [Fixnum]
2182
3739
  attr_accessor :day
2183
3740
 
2184
- # hour of day - 0 to 23.
3741
+ # Hour of day - 0 to 23. Specify in the UTC time zone.
2185
3742
  # Corresponds to the JSON property `hour`
2186
3743
  # @return [Fixnum]
2187
3744
  attr_accessor :hour
@@ -2191,9 +3748,9 @@ module Google
2191
3748
  # @return [String]
2192
3749
  attr_accessor :kind
2193
3750
 
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).
3751
+ # Maintenance timing settings: `canary`, `stable`, or `week5`. For more
3752
+ # information, see [About maintenance on Cloud SQL instances](https://cloud.
3753
+ # google.com/sql/docs/mysql/maintenance).
2197
3754
  # Corresponds to the JSON property `updateTrack`
2198
3755
  # @return [String]
2199
3756
  attr_accessor :update_track
@@ -2211,6 +3768,54 @@ module Google
2211
3768
  end
2212
3769
  end
2213
3770
 
3771
+ # Represents a notice or warning message from the database.
3772
+ class Message
3773
+ include Google::Apis::Core::Hashable
3774
+
3775
+ # The full message string. For PostgreSQL, this is a formatted string that may
3776
+ # include severity, code, and the notice/warning message. For MySQL, this
3777
+ # contains the warning message.
3778
+ # Corresponds to the JSON property `message`
3779
+ # @return [String]
3780
+ attr_accessor :message
3781
+
3782
+ # The severity of the message (e.g., "NOTICE" for PostgreSQL, "WARNING" for
3783
+ # MySQL).
3784
+ # Corresponds to the JSON property `severity`
3785
+ # @return [String]
3786
+ attr_accessor :severity
3787
+
3788
+ def initialize(**args)
3789
+ update!(**args)
3790
+ end
3791
+
3792
+ # Update properties of this object
3793
+ def update!(**args)
3794
+ @message = args[:message] if args.key?(:message)
3795
+ @severity = args[:severity] if args.key?(:severity)
3796
+ end
3797
+ end
3798
+
3799
+ # The additional metadata information regarding the execution of the SQL
3800
+ # statements.
3801
+ class Metadata
3802
+ include Google::Apis::Core::Hashable
3803
+
3804
+ # The time taken to execute the SQL statements.
3805
+ # Corresponds to the JSON property `sqlStatementExecutionTime`
3806
+ # @return [String]
3807
+ attr_accessor :sql_statement_execution_time
3808
+
3809
+ def initialize(**args)
3810
+ update!(**args)
3811
+ end
3812
+
3813
+ # Update properties of this object
3814
+ def update!(**args)
3815
+ @sql_statement_execution_time = args[:sql_statement_execution_time] if args.key?(:sql_statement_execution_time)
3816
+ end
3817
+ end
3818
+
2214
3819
  # Read-replica configuration specific to MySQL databases.
2215
3820
  class MySqlReplicaConfiguration
2216
3821
  include Google::Apis::Core::Hashable
@@ -2225,7 +3830,7 @@ module Google
2225
3830
  # @return [String]
2226
3831
  attr_accessor :client_certificate
2227
3832
 
2228
- # PEM representation of the replica's private key. The corresponsing public key
3833
+ # PEM representation of the replica's private key. The corresponding public key
2229
3834
  # is encoded in the client's certificate.
2230
3835
  # Corresponds to the JSON property `clientKey`
2231
3836
  # @return [String]
@@ -2330,7 +3935,7 @@ module Google
2330
3935
  # @return [String]
2331
3936
  attr_accessor :client_certificate
2332
3937
 
2333
- # PEM representation of the replica's private key. The corresponsing public key
3938
+ # PEM representation of the replica's private key. The corresponding public key
2334
3939
  # is encoded in the client's certificate.
2335
3940
  # Corresponds to the JSON property `clientKey`
2336
3941
  # @return [String]
@@ -2356,11 +3961,22 @@ module Google
2356
3961
  # @return [String]
2357
3962
  attr_accessor :password
2358
3963
 
3964
+ # Optional. A list of objects that the user selects for replication from an
3965
+ # external source instance.
3966
+ # Corresponds to the JSON property `selectedObjects`
3967
+ # @return [Array<Google::Apis::SqladminV1beta4::SelectedObjects>]
3968
+ attr_accessor :selected_objects
3969
+
2359
3970
  # Reference to another Cloud SQL instance.
2360
3971
  # Corresponds to the JSON property `sourceInstance`
2361
3972
  # @return [Google::Apis::SqladminV1beta4::InstanceReference]
2362
3973
  attr_accessor :source_instance
2363
3974
 
3975
+ # Optional. SslOption for replica connection to the on-premises source.
3976
+ # Corresponds to the JSON property `sslOption`
3977
+ # @return [String]
3978
+ attr_accessor :ssl_option
3979
+
2364
3980
  # The username for connecting to on-premises instance.
2365
3981
  # Corresponds to the JSON property `username`
2366
3982
  # @return [String]
@@ -2379,7 +3995,9 @@ module Google
2379
3995
  @host_port = args[:host_port] if args.key?(:host_port)
2380
3996
  @kind = args[:kind] if args.key?(:kind)
2381
3997
  @password = args[:password] if args.key?(:password)
3998
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
2382
3999
  @source_instance = args[:source_instance] if args.key?(:source_instance)
4000
+ @ssl_option = args[:ssl_option] if args.key?(:ssl_option)
2383
4001
  @username = args[:username] if args.key?(:username)
2384
4002
  end
2385
4003
  end
@@ -2390,6 +4008,16 @@ module Google
2390
4008
  class Operation
2391
4009
  include Google::Apis::Core::Hashable
2392
4010
 
4011
+ # Acquire SSRS lease context.
4012
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
4013
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
4014
+ attr_accessor :acquire_ssrs_lease_context
4015
+
4016
+ # An Admin API warning message.
4017
+ # Corresponds to the JSON property `apiWarning`
4018
+ # @return [Google::Apis::SqladminV1beta4::ApiWarning]
4019
+ attr_accessor :api_warning
4020
+
2393
4021
  # Backup context.
2394
4022
  # Corresponds to the JSON property `backupContext`
2395
4023
  # @return [Google::Apis::SqladminV1beta4::BackupContext]
@@ -2441,6 +4069,11 @@ module Google
2441
4069
  # @return [String]
2442
4070
  attr_accessor :operation_type
2443
4071
 
4072
+ # Pre-check major version upgrade context.
4073
+ # Corresponds to the JSON property `preCheckMajorVersionUpgradeContext`
4074
+ # @return [Google::Apis::SqladminV1beta4::PreCheckMajorVersionUpgradeContext]
4075
+ attr_accessor :pre_check_major_version_upgrade_context
4076
+
2444
4077
  # The URI of this resource.
2445
4078
  # Corresponds to the JSON property `selfLink`
2446
4079
  # @return [String]
@@ -2457,7 +4090,12 @@ module Google
2457
4090
  # @return [String]
2458
4091
  attr_accessor :status
2459
4092
 
2460
- # Name of the database instance related to this operation.
4093
+ # The sub operation type based on the operation type.
4094
+ # Corresponds to the JSON property `subOperationType`
4095
+ # @return [Google::Apis::SqladminV1beta4::SqlSubOperationType]
4096
+ attr_accessor :sub_operation_type
4097
+
4098
+ # Name of the resource on which this operation runs.
2461
4099
  # Corresponds to the JSON property `targetId`
2462
4100
  # @return [String]
2463
4101
  attr_accessor :target_id
@@ -2483,6 +4121,8 @@ module Google
2483
4121
 
2484
4122
  # Update properties of this object
2485
4123
  def update!(**args)
4124
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
4125
+ @api_warning = args[:api_warning] if args.key?(:api_warning)
2486
4126
  @backup_context = args[:backup_context] if args.key?(:backup_context)
2487
4127
  @end_time = args[:end_time] if args.key?(:end_time)
2488
4128
  @error = args[:error] if args.key?(:error)
@@ -2492,9 +4132,11 @@ module Google
2492
4132
  @kind = args[:kind] if args.key?(:kind)
2493
4133
  @name = args[:name] if args.key?(:name)
2494
4134
  @operation_type = args[:operation_type] if args.key?(:operation_type)
4135
+ @pre_check_major_version_upgrade_context = args[:pre_check_major_version_upgrade_context] if args.key?(:pre_check_major_version_upgrade_context)
2495
4136
  @self_link = args[:self_link] if args.key?(:self_link)
2496
4137
  @start_time = args[:start_time] if args.key?(:start_time)
2497
4138
  @status = args[:status] if args.key?(:status)
4139
+ @sub_operation_type = args[:sub_operation_type] if args.key?(:sub_operation_type)
2498
4140
  @target_id = args[:target_id] if args.key?(:target_id)
2499
4141
  @target_link = args[:target_link] if args.key?(:target_link)
2500
4142
  @target_project = args[:target_project] if args.key?(:target_project)
@@ -2558,6 +4200,65 @@ module Google
2558
4200
  end
2559
4201
  end
2560
4202
 
4203
+ # Represents the metadata of the long-running operation.
4204
+ class OperationMetadata
4205
+ include Google::Apis::Core::Hashable
4206
+
4207
+ # Output only. API version used to start the operation.
4208
+ # Corresponds to the JSON property `apiVersion`
4209
+ # @return [String]
4210
+ attr_accessor :api_version
4211
+
4212
+ # Output only. Identifies whether the user has requested cancellation of the
4213
+ # operation. Operations that have been cancelled successfully have google.
4214
+ # longrunning.Operation.error value with a google.rpc.Status.code of `1`,
4215
+ # corresponding to `Code.CANCELLED`.
4216
+ # Corresponds to the JSON property `cancelRequested`
4217
+ # @return [Boolean]
4218
+ attr_accessor :cancel_requested
4219
+ alias_method :cancel_requested?, :cancel_requested
4220
+
4221
+ # Output only. The time the operation was created.
4222
+ # Corresponds to the JSON property `createTime`
4223
+ # @return [String]
4224
+ attr_accessor :create_time
4225
+
4226
+ # Output only. The time the operation finished running.
4227
+ # Corresponds to the JSON property `endTime`
4228
+ # @return [String]
4229
+ attr_accessor :end_time
4230
+
4231
+ # Output only. Human-readable status of the operation, if any.
4232
+ # Corresponds to the JSON property `statusDetail`
4233
+ # @return [String]
4234
+ attr_accessor :status_detail
4235
+
4236
+ # Output only. Server-defined resource path for the target of the operation.
4237
+ # Corresponds to the JSON property `target`
4238
+ # @return [String]
4239
+ attr_accessor :target
4240
+
4241
+ # Output only. Name of the verb executed by the operation.
4242
+ # Corresponds to the JSON property `verb`
4243
+ # @return [String]
4244
+ attr_accessor :verb
4245
+
4246
+ def initialize(**args)
4247
+ update!(**args)
4248
+ end
4249
+
4250
+ # Update properties of this object
4251
+ def update!(**args)
4252
+ @api_version = args[:api_version] if args.key?(:api_version)
4253
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
4254
+ @create_time = args[:create_time] if args.key?(:create_time)
4255
+ @end_time = args[:end_time] if args.key?(:end_time)
4256
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
4257
+ @target = args[:target] if args.key?(:target)
4258
+ @verb = args[:verb] if args.key?(:verb)
4259
+ end
4260
+ end
4261
+
2561
4262
  # Operations list response.
2562
4263
  class ListOperationsResponse
2563
4264
  include Google::Apis::Core::Hashable
@@ -2616,7 +4317,10 @@ module Google
2616
4317
  end
2617
4318
  end
2618
4319
 
2619
- # Database instance local user password validation policy
4320
+ # Database instance local user password validation policy. This message defines
4321
+ # the password policy for local database users. When enabled, it enforces
4322
+ # constraints on password complexity, length, and reuse. Keep this policy
4323
+ # enabled to help prevent unauthorized access.
2620
4324
  class PasswordValidationPolicy
2621
4325
  include Google::Apis::Core::Hashable
2622
4326
 
@@ -2625,13 +4329,21 @@ module Google
2625
4329
  # @return [String]
2626
4330
  attr_accessor :complexity
2627
4331
 
4332
+ # This field is deprecated and will be removed in a future version of the API.
4333
+ # Corresponds to the JSON property `disallowCompromisedCredentials`
4334
+ # @return [Boolean]
4335
+ attr_accessor :disallow_compromised_credentials
4336
+ alias_method :disallow_compromised_credentials?, :disallow_compromised_credentials
4337
+
2628
4338
  # Disallow username as a part of the password.
2629
4339
  # Corresponds to the JSON property `disallowUsernameSubstring`
2630
4340
  # @return [Boolean]
2631
4341
  attr_accessor :disallow_username_substring
2632
4342
  alias_method :disallow_username_substring?, :disallow_username_substring
2633
4343
 
2634
- # Whether the password policy is enabled or not.
4344
+ # Whether to enable the password policy or not. When enabled, passwords must
4345
+ # meet complexity requirements. Keep this policy enabled to help prevent
4346
+ # unauthorized access. Disabling this policy allows weak passwords.
2635
4347
  # Corresponds to the JSON property `enablePasswordPolicy`
2636
4348
  # @return [Boolean]
2637
4349
  attr_accessor :enable_password_policy
@@ -2660,6 +4372,7 @@ module Google
2660
4372
  # Update properties of this object
2661
4373
  def update!(**args)
2662
4374
  @complexity = args[:complexity] if args.key?(:complexity)
4375
+ @disallow_compromised_credentials = args[:disallow_compromised_credentials] if args.key?(:disallow_compromised_credentials)
2663
4376
  @disallow_username_substring = args[:disallow_username_substring] if args.key?(:disallow_username_substring)
2664
4377
  @enable_password_policy = args[:enable_password_policy] if args.key?(:enable_password_policy)
2665
4378
  @min_length = args[:min_length] if args.key?(:min_length)
@@ -2668,10 +4381,490 @@ module Google
2668
4381
  end
2669
4382
  end
2670
4383
 
4384
+ # Perform disk shrink context.
4385
+ class PerformDiskShrinkContext
4386
+ include Google::Apis::Core::Hashable
4387
+
4388
+ # The target disk shrink size in GigaBytes.
4389
+ # Corresponds to the JSON property `targetSizeGb`
4390
+ # @return [Fixnum]
4391
+ attr_accessor :target_size_gb
4392
+
4393
+ def initialize(**args)
4394
+ update!(**args)
4395
+ end
4396
+
4397
+ # Update properties of this object
4398
+ def update!(**args)
4399
+ @target_size_gb = args[:target_size_gb] if args.key?(:target_size_gb)
4400
+ end
4401
+ end
4402
+
4403
+ # Performance Capture configuration.
4404
+ class PerformanceCaptureConfig
4405
+ include Google::Apis::Core::Hashable
4406
+
4407
+ # Optional. Enable or disable the Performance Capture.
4408
+ # Corresponds to the JSON property `enabled`
4409
+ # @return [Boolean]
4410
+ attr_accessor :enabled
4411
+ alias_method :enabled?, :enabled
4412
+
4413
+ # Optional. The minimum number of consecutive readings above threshold that
4414
+ # triggers instance state capture.
4415
+ # Corresponds to the JSON property `probeThreshold`
4416
+ # @return [Fixnum]
4417
+ attr_accessor :probe_threshold
4418
+
4419
+ # Optional. The time interval in seconds between any two probes.
4420
+ # Corresponds to the JSON property `probingIntervalSeconds`
4421
+ # @return [Fixnum]
4422
+ attr_accessor :probing_interval_seconds
4423
+
4424
+ # Optional. The minimum number of server threads running to trigger the capture
4425
+ # on primary.
4426
+ # Corresponds to the JSON property `runningThreadsThreshold`
4427
+ # @return [Fixnum]
4428
+ attr_accessor :running_threads_threshold
4429
+
4430
+ # Optional. The minimum number of seconds replica must be lagging behind primary
4431
+ # to trigger capture on replica.
4432
+ # Corresponds to the JSON property `secondsBehindSourceThreshold`
4433
+ # @return [Fixnum]
4434
+ attr_accessor :seconds_behind_source_threshold
4435
+
4436
+ # Optional. The amount of time in seconds that a transaction needs to have been
4437
+ # open before the watcher starts recording it.
4438
+ # Corresponds to the JSON property `transactionDurationThreshold`
4439
+ # @return [Fixnum]
4440
+ attr_accessor :transaction_duration_threshold
4441
+
4442
+ def initialize(**args)
4443
+ update!(**args)
4444
+ end
4445
+
4446
+ # Update properties of this object
4447
+ def update!(**args)
4448
+ @enabled = args[:enabled] if args.key?(:enabled)
4449
+ @probe_threshold = args[:probe_threshold] if args.key?(:probe_threshold)
4450
+ @probing_interval_seconds = args[:probing_interval_seconds] if args.key?(:probing_interval_seconds)
4451
+ @running_threads_threshold = args[:running_threads_threshold] if args.key?(:running_threads_threshold)
4452
+ @seconds_behind_source_threshold = args[:seconds_behind_source_threshold] if args.key?(:seconds_behind_source_threshold)
4453
+ @transaction_duration_threshold = args[:transaction_duration_threshold] if args.key?(:transaction_duration_threshold)
4454
+ end
4455
+ end
4456
+
4457
+ # Context to perform a point-in-time restore of an instance managed by Backup
4458
+ # and Disaster Recovery (DR) Service.
4459
+ class PointInTimeRestoreContext
4460
+ include Google::Apis::Core::Hashable
4461
+
4462
+ # Optional. The name of the allocated IP range for the internal IP Cloud SQL
4463
+ # instance. For example: "google-managed-services-default". If you set this,
4464
+ # then Cloud SQL creates the IP address for the cloned instance in the allocated
4465
+ # range. This range must comply with [RFC 1035](https://tools.ietf.org/html/
4466
+ # rfc1035) standards. Specifically, the name must be 1-63 characters long and
4467
+ # match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future
4468
+ # use.
4469
+ # Corresponds to the JSON property `allocatedIpRange`
4470
+ # @return [String]
4471
+ attr_accessor :allocated_ip_range
4472
+
4473
+ # The Backup and Disaster Recovery (DR) Service Datasource URI. Format: projects/
4474
+ # `project`/locations/`region`/backupVaults/`backupvault`/dataSources/`
4475
+ # datasource`.
4476
+ # Corresponds to the JSON property `datasource`
4477
+ # @return [String]
4478
+ attr_accessor :datasource
4479
+
4480
+ # Required. The date and time to which you want to restore the instance.
4481
+ # Corresponds to the JSON property `pointInTime`
4482
+ # @return [String]
4483
+ attr_accessor :point_in_time
4484
+
4485
+ # Optional. Point-in-time recovery of a regional instance in the specified zones.
4486
+ # If not specified, clone to the same secondary zone as the source instance.
4487
+ # This value cannot be the same as the preferred_zone field.
4488
+ # Corresponds to the JSON property `preferredSecondaryZone`
4489
+ # @return [String]
4490
+ attr_accessor :preferred_secondary_zone
4491
+
4492
+ # Optional. Point-in-time recovery of an instance to the specified zone. If no
4493
+ # zone is specified, then clone to the same primary zone as the source instance.
4494
+ # Corresponds to the JSON property `preferredZone`
4495
+ # @return [String]
4496
+ attr_accessor :preferred_zone
4497
+
4498
+ # Optional. The resource link for the VPC network from which the Cloud SQL
4499
+ # instance is accessible for private IP. For example, `/projects/myProject/
4500
+ # global/networks/default`.
4501
+ # Corresponds to the JSON property `privateNetwork`
4502
+ # @return [String]
4503
+ attr_accessor :private_network
4504
+
4505
+ # Target instance name.
4506
+ # Corresponds to the JSON property `targetInstance`
4507
+ # @return [String]
4508
+ attr_accessor :target_instance
4509
+
4510
+ def initialize(**args)
4511
+ update!(**args)
4512
+ end
4513
+
4514
+ # Update properties of this object
4515
+ def update!(**args)
4516
+ @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
4517
+ @datasource = args[:datasource] if args.key?(:datasource)
4518
+ @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
4519
+ @preferred_secondary_zone = args[:preferred_secondary_zone] if args.key?(:preferred_secondary_zone)
4520
+ @preferred_zone = args[:preferred_zone] if args.key?(:preferred_zone)
4521
+ @private_network = args[:private_network] if args.key?(:private_network)
4522
+ @target_instance = args[:target_instance] if args.key?(:target_instance)
4523
+ end
4524
+ end
4525
+
4526
+ # Details of a single read pool node of a read pool.
4527
+ class PoolNodeConfig
4528
+ include Google::Apis::Core::Hashable
4529
+
4530
+ # Output only. The DNS name of the read pool node.
4531
+ # Corresponds to the JSON property `dnsName`
4532
+ # @return [String]
4533
+ attr_accessor :dns_name
4534
+
4535
+ # Output only. The list of DNS names used by this read pool node.
4536
+ # Corresponds to the JSON property `dnsNames`
4537
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
4538
+ attr_accessor :dns_names
4539
+
4540
+ # Output only. The zone of the read pool node.
4541
+ # Corresponds to the JSON property `gceZone`
4542
+ # @return [String]
4543
+ attr_accessor :gce_zone
4544
+
4545
+ # Output only. Mappings containing IP addresses that can be used to connect to
4546
+ # the read pool node.
4547
+ # Corresponds to the JSON property `ipAddresses`
4548
+ # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
4549
+ attr_accessor :ip_addresses
4550
+
4551
+ # Output only. The name of the read pool node, to be used for retrieving metrics
4552
+ # and logs.
4553
+ # Corresponds to the JSON property `name`
4554
+ # @return [String]
4555
+ attr_accessor :name
4556
+
4557
+ # Output only. The list of settings for requested automatically-setup Private
4558
+ # Service Connect (PSC) consumer endpoints that can be used to connect to this
4559
+ # read pool node.
4560
+ # Corresponds to the JSON property `pscAutoConnections`
4561
+ # @return [Array<Google::Apis::SqladminV1beta4::PscAutoConnectionConfig>]
4562
+ attr_accessor :psc_auto_connections
4563
+
4564
+ # Output only. The Private Service Connect (PSC) service attachment of the read
4565
+ # pool node.
4566
+ # Corresponds to the JSON property `pscServiceAttachmentLink`
4567
+ # @return [String]
4568
+ attr_accessor :psc_service_attachment_link
4569
+
4570
+ # Output only. The current state of the read pool node.
4571
+ # Corresponds to the JSON property `state`
4572
+ # @return [String]
4573
+ attr_accessor :state
4574
+
4575
+ def initialize(**args)
4576
+ update!(**args)
4577
+ end
4578
+
4579
+ # Update properties of this object
4580
+ def update!(**args)
4581
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
4582
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
4583
+ @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
4584
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
4585
+ @name = args[:name] if args.key?(:name)
4586
+ @psc_auto_connections = args[:psc_auto_connections] if args.key?(:psc_auto_connections)
4587
+ @psc_service_attachment_link = args[:psc_service_attachment_link] if args.key?(:psc_service_attachment_link)
4588
+ @state = args[:state] if args.key?(:state)
4589
+ end
4590
+ end
4591
+
4592
+ # Pre-check major version upgrade context.
4593
+ class PreCheckMajorVersionUpgradeContext
4594
+ include Google::Apis::Core::Hashable
4595
+
4596
+ # Optional. This is always `sql#preCheckMajorVersionUpgradeContext`.
4597
+ # Corresponds to the JSON property `kind`
4598
+ # @return [String]
4599
+ attr_accessor :kind
4600
+
4601
+ # Output only. The responses from the precheck operation.
4602
+ # Corresponds to the JSON property `preCheckResponse`
4603
+ # @return [Array<Google::Apis::SqladminV1beta4::PreCheckResponse>]
4604
+ attr_accessor :pre_check_response
4605
+
4606
+ # Required. The target database version to upgrade to.
4607
+ # Corresponds to the JSON property `targetDatabaseVersion`
4608
+ # @return [String]
4609
+ attr_accessor :target_database_version
4610
+
4611
+ def initialize(**args)
4612
+ update!(**args)
4613
+ end
4614
+
4615
+ # Update properties of this object
4616
+ def update!(**args)
4617
+ @kind = args[:kind] if args.key?(:kind)
4618
+ @pre_check_response = args[:pre_check_response] if args.key?(:pre_check_response)
4619
+ @target_database_version = args[:target_database_version] if args.key?(:target_database_version)
4620
+ end
4621
+ end
4622
+
4623
+ # Structured PreCheckResponse containing message, type, and required actions.
4624
+ class PreCheckResponse
4625
+ include Google::Apis::Core::Hashable
4626
+
4627
+ # The actions that the user needs to take. Use repeated for multiple actions.
4628
+ # Corresponds to the JSON property `actionsRequired`
4629
+ # @return [Array<String>]
4630
+ attr_accessor :actions_required
4631
+
4632
+ # The message to be displayed to the user.
4633
+ # Corresponds to the JSON property `message`
4634
+ # @return [String]
4635
+ attr_accessor :message
4636
+
4637
+ # The type of message whether it is an info, warning, or error.
4638
+ # Corresponds to the JSON property `messageType`
4639
+ # @return [String]
4640
+ attr_accessor :message_type
4641
+
4642
+ def initialize(**args)
4643
+ update!(**args)
4644
+ end
4645
+
4646
+ # Update properties of this object
4647
+ def update!(**args)
4648
+ @actions_required = args[:actions_required] if args.key?(:actions_required)
4649
+ @message = args[:message] if args.key?(:message)
4650
+ @message_type = args[:message_type] if args.key?(:message_type)
4651
+ end
4652
+ end
4653
+
4654
+ # Settings for an automatically-setup Private Service Connect consumer endpoint
4655
+ # that is used to connect to a Cloud SQL instance.
4656
+ class PscAutoConnectionConfig
4657
+ include Google::Apis::Core::Hashable
4658
+
4659
+ # Optional. The consumer network of this consumer endpoint. This must be a
4660
+ # resource path that includes both the host project and the network name. For
4661
+ # example, `projects/project1/global/networks/network1`. The consumer host
4662
+ # project of this network might be different from the consumer service project.
4663
+ # Corresponds to the JSON property `consumerNetwork`
4664
+ # @return [String]
4665
+ attr_accessor :consumer_network
4666
+
4667
+ # The connection policy status of the consumer network.
4668
+ # Corresponds to the JSON property `consumerNetworkStatus`
4669
+ # @return [String]
4670
+ attr_accessor :consumer_network_status
4671
+
4672
+ # Optional. This is the project ID of consumer service project of this consumer
4673
+ # endpoint. Optional. This is only applicable if consumer_network is a shared
4674
+ # vpc network.
4675
+ # Corresponds to the JSON property `consumerProject`
4676
+ # @return [String]
4677
+ attr_accessor :consumer_project
4678
+
4679
+ # The IP address of the consumer endpoint.
4680
+ # Corresponds to the JSON property `ipAddress`
4681
+ # @return [String]
4682
+ attr_accessor :ip_address
4683
+
4684
+ # The connection status of the consumer endpoint.
4685
+ # Corresponds to the JSON property `status`
4686
+ # @return [String]
4687
+ attr_accessor :status
4688
+
4689
+ def initialize(**args)
4690
+ update!(**args)
4691
+ end
4692
+
4693
+ # Update properties of this object
4694
+ def update!(**args)
4695
+ @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
4696
+ @consumer_network_status = args[:consumer_network_status] if args.key?(:consumer_network_status)
4697
+ @consumer_project = args[:consumer_project] if args.key?(:consumer_project)
4698
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
4699
+ @status = args[:status] if args.key?(:status)
4700
+ end
4701
+ end
4702
+
4703
+ # PSC settings for a Cloud SQL instance.
4704
+ class PscConfig
4705
+ include Google::Apis::Core::Hashable
4706
+
4707
+ # Optional. The list of consumer projects that are allow-listed for PSC
4708
+ # connections to this instance. This instance can be connected to with PSC from
4709
+ # any network in these projects. Each consumer project in this list may be
4710
+ # represented by a project number (numeric) or by a project id (alphanumeric).
4711
+ # Corresponds to the JSON property `allowedConsumerProjects`
4712
+ # @return [Array<String>]
4713
+ attr_accessor :allowed_consumer_projects
4714
+
4715
+ # Optional. The network attachment of the consumer network that the Private
4716
+ # Service Connect enabled Cloud SQL instance is authorized to connect via PSC
4717
+ # interface. format: projects/PROJECT/regions/REGION/networkAttachments/ID
4718
+ # Corresponds to the JSON property `networkAttachmentUri`
4719
+ # @return [String]
4720
+ attr_accessor :network_attachment_uri
4721
+
4722
+ # Optional. The list of settings for requested Private Service Connect consumer
4723
+ # endpoints that can be used to connect to this Cloud SQL instance.
4724
+ # Corresponds to the JSON property `pscAutoConnections`
4725
+ # @return [Array<Google::Apis::SqladminV1beta4::PscAutoConnectionConfig>]
4726
+ attr_accessor :psc_auto_connections
4727
+
4728
+ # Whether PSC connectivity is enabled for this instance.
4729
+ # Corresponds to the JSON property `pscEnabled`
4730
+ # @return [Boolean]
4731
+ attr_accessor :psc_enabled
4732
+ alias_method :psc_enabled?, :psc_enabled
4733
+
4734
+ def initialize(**args)
4735
+ update!(**args)
4736
+ end
4737
+
4738
+ # Update properties of this object
4739
+ def update!(**args)
4740
+ @allowed_consumer_projects = args[:allowed_consumer_projects] if args.key?(:allowed_consumer_projects)
4741
+ @network_attachment_uri = args[:network_attachment_uri] if args.key?(:network_attachment_uri)
4742
+ @psc_auto_connections = args[:psc_auto_connections] if args.key?(:psc_auto_connections)
4743
+ @psc_enabled = args[:psc_enabled] if args.key?(:psc_enabled)
4744
+ end
4745
+ end
4746
+
4747
+ # QueryResult contains the result of executing a single SQL statement.
4748
+ class QueryResult
4749
+ include Google::Apis::Core::Hashable
4750
+
4751
+ # List of columns included in the result. This also includes the data type of
4752
+ # the column.
4753
+ # Corresponds to the JSON property `columns`
4754
+ # @return [Array<Google::Apis::SqladminV1beta4::Column>]
4755
+ attr_accessor :columns
4756
+
4757
+ # Message related to the SQL execution result.
4758
+ # Corresponds to the JSON property `message`
4759
+ # @return [String]
4760
+ attr_accessor :message
4761
+
4762
+ # Set to true if the SQL execution's result is truncated due to size limits or
4763
+ # an error retrieving results.
4764
+ # Corresponds to the JSON property `partialResult`
4765
+ # @return [Boolean]
4766
+ attr_accessor :partial_result
4767
+ alias_method :partial_result?, :partial_result
4768
+
4769
+ # Rows returned by the SQL statement.
4770
+ # Corresponds to the JSON property `rows`
4771
+ # @return [Array<Google::Apis::SqladminV1beta4::Row>]
4772
+ attr_accessor :rows
4773
+
4774
+ # The `Status` type defines a logical error model that is suitable for different
4775
+ # programming environments, including REST APIs and RPC APIs. It is used by [
4776
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
4777
+ # data: error code, error message, and error details. You can find out more
4778
+ # about this error model and how to work with it in the [API Design Guide](https:
4779
+ # //cloud.google.com/apis/design/errors).
4780
+ # Corresponds to the JSON property `status`
4781
+ # @return [Google::Apis::SqladminV1beta4::Status]
4782
+ attr_accessor :status
4783
+
4784
+ def initialize(**args)
4785
+ update!(**args)
4786
+ end
4787
+
4788
+ # Update properties of this object
4789
+ def update!(**args)
4790
+ @columns = args[:columns] if args.key?(:columns)
4791
+ @message = args[:message] if args.key?(:message)
4792
+ @partial_result = args[:partial_result] if args.key?(:partial_result)
4793
+ @rows = args[:rows] if args.key?(:rows)
4794
+ @status = args[:status] if args.key?(:status)
4795
+ end
4796
+ end
4797
+
4798
+ # The read pool auto-scale configuration.
4799
+ class ReadPoolAutoScaleConfig
4800
+ include Google::Apis::Core::Hashable
4801
+
4802
+ # Indicates whether read pool auto scaling supports scale in operations (
4803
+ # removing nodes).
4804
+ # Corresponds to the JSON property `disableScaleIn`
4805
+ # @return [Boolean]
4806
+ attr_accessor :disable_scale_in
4807
+ alias_method :disable_scale_in?, :disable_scale_in
4808
+
4809
+ # Indicates whether read pool auto scaling is enabled.
4810
+ # Corresponds to the JSON property `enabled`
4811
+ # @return [Boolean]
4812
+ attr_accessor :enabled
4813
+ alias_method :enabled?, :enabled
4814
+
4815
+ # Maximum number of read pool nodes to be maintained.
4816
+ # Corresponds to the JSON property `maxNodeCount`
4817
+ # @return [Fixnum]
4818
+ attr_accessor :max_node_count
4819
+
4820
+ # Minimum number of read pool nodes to be maintained.
4821
+ # Corresponds to the JSON property `minNodeCount`
4822
+ # @return [Fixnum]
4823
+ attr_accessor :min_node_count
4824
+
4825
+ # The cooldown period for scale in operations.
4826
+ # Corresponds to the JSON property `scaleInCooldownSeconds`
4827
+ # @return [Fixnum]
4828
+ attr_accessor :scale_in_cooldown_seconds
4829
+
4830
+ # The cooldown period for scale out operations.
4831
+ # Corresponds to the JSON property `scaleOutCooldownSeconds`
4832
+ # @return [Fixnum]
4833
+ attr_accessor :scale_out_cooldown_seconds
4834
+
4835
+ # Optional. Target metrics for read pool auto scaling.
4836
+ # Corresponds to the JSON property `targetMetrics`
4837
+ # @return [Array<Google::Apis::SqladminV1beta4::TargetMetric>]
4838
+ attr_accessor :target_metrics
4839
+
4840
+ def initialize(**args)
4841
+ update!(**args)
4842
+ end
4843
+
4844
+ # Update properties of this object
4845
+ def update!(**args)
4846
+ @disable_scale_in = args[:disable_scale_in] if args.key?(:disable_scale_in)
4847
+ @enabled = args[:enabled] if args.key?(:enabled)
4848
+ @max_node_count = args[:max_node_count] if args.key?(:max_node_count)
4849
+ @min_node_count = args[:min_node_count] if args.key?(:min_node_count)
4850
+ @scale_in_cooldown_seconds = args[:scale_in_cooldown_seconds] if args.key?(:scale_in_cooldown_seconds)
4851
+ @scale_out_cooldown_seconds = args[:scale_out_cooldown_seconds] if args.key?(:scale_out_cooldown_seconds)
4852
+ @target_metrics = args[:target_metrics] if args.key?(:target_metrics)
4853
+ end
4854
+ end
4855
+
2671
4856
  # Read-replica configuration for connecting to the primary instance.
2672
4857
  class ReplicaConfiguration
2673
4858
  include Google::Apis::Core::Hashable
2674
4859
 
4860
+ # Optional. Specifies if a SQL Server replica is a cascadable replica. A
4861
+ # cascadable replica is a SQL Server cross region replica that supports replica(
4862
+ # s) under it.
4863
+ # Corresponds to the JSON property `cascadableReplica`
4864
+ # @return [Boolean]
4865
+ attr_accessor :cascadable_replica
4866
+ alias_method :cascadable_replica?, :cascadable_replica
4867
+
2675
4868
  # Specifies if the replica is the failover target. If the field is set to `true`
2676
4869
  # the replica will be designated as a failover replica. In case the primary
2677
4870
  # instance fails, the replica instance will be promoted as the new primary
@@ -2698,12 +4891,59 @@ module Google
2698
4891
 
2699
4892
  # Update properties of this object
2700
4893
  def update!(**args)
4894
+ @cascadable_replica = args[:cascadable_replica] if args.key?(:cascadable_replica)
2701
4895
  @failover_target = args[:failover_target] if args.key?(:failover_target)
2702
4896
  @kind = args[:kind] if args.key?(:kind)
2703
4897
  @mysql_replica_configuration = args[:mysql_replica_configuration] if args.key?(:mysql_replica_configuration)
2704
4898
  end
2705
4899
  end
2706
4900
 
4901
+ # A primary instance and disaster recovery (DR) replica pair. A DR replica is a
4902
+ # cross-region replica that you designate for failover in the event that the
4903
+ # primary instance has regional failure. Applicable to MySQL and PostgreSQL.
4904
+ class ReplicationCluster
4905
+ include Google::Apis::Core::Hashable
4906
+
4907
+ # Output only. Read-only field that indicates whether the replica is a DR
4908
+ # replica. This field is not set if the instance is a primary instance.
4909
+ # Corresponds to the JSON property `drReplica`
4910
+ # @return [Boolean]
4911
+ attr_accessor :dr_replica
4912
+ alias_method :dr_replica?, :dr_replica
4913
+
4914
+ # Optional. If the instance is a primary instance, then this field identifies
4915
+ # the disaster recovery (DR) replica. A DR replica is an optional configuration
4916
+ # for Enterprise Plus edition instances. If the instance is a read replica, then
4917
+ # the field is not set. Set this field to a replica name to designate a DR
4918
+ # replica for a primary instance. Remove the replica name to remove the DR
4919
+ # replica designation.
4920
+ # Corresponds to the JSON property `failoverDrReplicaName`
4921
+ # @return [String]
4922
+ attr_accessor :failover_dr_replica_name
4923
+
4924
+ # Output only. If set, this field indicates this instance has a private service
4925
+ # access (PSA) DNS endpoint that is pointing to the primary instance of the
4926
+ # cluster. If this instance is the primary, then the DNS endpoint points to this
4927
+ # instance. After a switchover or replica failover operation, this DNS endpoint
4928
+ # points to the promoted instance. This is a read-only field, returned to the
4929
+ # user as information. This field can exist even if a standalone instance doesn'
4930
+ # t have a DR replica yet or the DR replica is deleted.
4931
+ # Corresponds to the JSON property `psaWriteEndpoint`
4932
+ # @return [String]
4933
+ attr_accessor :psa_write_endpoint
4934
+
4935
+ def initialize(**args)
4936
+ update!(**args)
4937
+ end
4938
+
4939
+ # Update properties of this object
4940
+ def update!(**args)
4941
+ @dr_replica = args[:dr_replica] if args.key?(:dr_replica)
4942
+ @failover_dr_replica_name = args[:failover_dr_replica_name] if args.key?(:failover_dr_replica_name)
4943
+ @psa_write_endpoint = args[:psa_write_endpoint] if args.key?(:psa_write_endpoint)
4944
+ end
4945
+ end
4946
+
2707
4947
  #
2708
4948
  class Reschedule
2709
4949
  include Google::Apis::Core::Hashable
@@ -2762,27 +5002,121 @@ module Google
2762
5002
 
2763
5003
  # Update properties of this object
2764
5004
  def update!(**args)
2765
- @backup_run_id = args[:backup_run_id] if args.key?(:backup_run_id)
2766
- @instance_id = args[:instance_id] if args.key?(:instance_id)
2767
- @kind = args[:kind] if args.key?(:kind)
2768
- @project = args[:project] if args.key?(:project)
5005
+ @backup_run_id = args[:backup_run_id] if args.key?(:backup_run_id)
5006
+ @instance_id = args[:instance_id] if args.key?(:instance_id)
5007
+ @kind = args[:kind] if args.key?(:kind)
5008
+ @project = args[:project] if args.key?(:project)
5009
+ end
5010
+ end
5011
+
5012
+ # Instance rotate Entra ID certificate context.
5013
+ class RotateEntraIdCertificateContext
5014
+ include Google::Apis::Core::Hashable
5015
+
5016
+ # Optional. This is always `sql#rotateEntraIdCertificateContext`.
5017
+ # Corresponds to the JSON property `kind`
5018
+ # @return [String]
5019
+ attr_accessor :kind
5020
+
5021
+ # Optional. The fingerprint of the next version to be rotated to. If left
5022
+ # unspecified, will be rotated to the most recently added Entra ID certificate
5023
+ # version.
5024
+ # Corresponds to the JSON property `nextVersion`
5025
+ # @return [String]
5026
+ attr_accessor :next_version
5027
+
5028
+ def initialize(**args)
5029
+ update!(**args)
5030
+ end
5031
+
5032
+ # Update properties of this object
5033
+ def update!(**args)
5034
+ @kind = args[:kind] if args.key?(:kind)
5035
+ @next_version = args[:next_version] if args.key?(:next_version)
5036
+ end
5037
+ end
5038
+
5039
+ # Instance rotate server CA context.
5040
+ class RotateServerCaContext
5041
+ include Google::Apis::Core::Hashable
5042
+
5043
+ # This is always `sql#rotateServerCaContext`.
5044
+ # Corresponds to the JSON property `kind`
5045
+ # @return [String]
5046
+ attr_accessor :kind
5047
+
5048
+ # The fingerprint of the next version to be rotated to. If left unspecified,
5049
+ # will be rotated to the most recently added server CA version.
5050
+ # Corresponds to the JSON property `nextVersion`
5051
+ # @return [String]
5052
+ attr_accessor :next_version
5053
+
5054
+ def initialize(**args)
5055
+ update!(**args)
5056
+ end
5057
+
5058
+ # Update properties of this object
5059
+ def update!(**args)
5060
+ @kind = args[:kind] if args.key?(:kind)
5061
+ @next_version = args[:next_version] if args.key?(:next_version)
5062
+ end
5063
+ end
5064
+
5065
+ # Instance rotate server certificate context.
5066
+ class RotateServerCertificateContext
5067
+ include Google::Apis::Core::Hashable
5068
+
5069
+ # Optional. This is always `sql#rotateServerCertificateContext`.
5070
+ # Corresponds to the JSON property `kind`
5071
+ # @return [String]
5072
+ attr_accessor :kind
5073
+
5074
+ # Optional. The fingerprint of the next version to be rotated to. If left
5075
+ # unspecified, will be rotated to the most recently added server certificate
5076
+ # version.
5077
+ # Corresponds to the JSON property `nextVersion`
5078
+ # @return [String]
5079
+ attr_accessor :next_version
5080
+
5081
+ def initialize(**args)
5082
+ update!(**args)
5083
+ end
5084
+
5085
+ # Update properties of this object
5086
+ def update!(**args)
5087
+ @kind = args[:kind] if args.key?(:kind)
5088
+ @next_version = args[:next_version] if args.key?(:next_version)
5089
+ end
5090
+ end
5091
+
5092
+ # Contains the values for a row.
5093
+ class Row
5094
+ include Google::Apis::Core::Hashable
5095
+
5096
+ # The values for the row.
5097
+ # Corresponds to the JSON property `values`
5098
+ # @return [Array<Google::Apis::SqladminV1beta4::Value>]
5099
+ attr_accessor :values
5100
+
5101
+ def initialize(**args)
5102
+ update!(**args)
5103
+ end
5104
+
5105
+ # Update properties of this object
5106
+ def update!(**args)
5107
+ @values = args[:values] if args.key?(:values)
2769
5108
  end
2770
5109
  end
2771
5110
 
2772
- # Instance rotate server CA context.
2773
- class RotateServerCaContext
5111
+ # A list of objects that the user selects for replication from an external
5112
+ # source instance.
5113
+ class SelectedObjects
2774
5114
  include Google::Apis::Core::Hashable
2775
5115
 
2776
- # This is always `sql#rotateServerCaContext`.
2777
- # Corresponds to the JSON property `kind`
2778
- # @return [String]
2779
- attr_accessor :kind
2780
-
2781
- # The fingerprint of the next version to be rotated to. If left unspecified,
2782
- # will be rotated to the most recently added server CA version.
2783
- # Corresponds to the JSON property `nextVersion`
5116
+ # Required. The name of the database to migrate.
5117
+ # Corresponds to the JSON property `database`
2784
5118
  # @return [String]
2785
- attr_accessor :next_version
5119
+ attr_accessor :database
2786
5120
 
2787
5121
  def initialize(**args)
2788
5122
  update!(**args)
@@ -2790,8 +5124,7 @@ module Google
2790
5124
 
2791
5125
  # Update properties of this object
2792
5126
  def update!(**args)
2793
- @kind = args[:kind] if args.key?(:kind)
2794
- @next_version = args[:next_version] if args.key?(:next_version)
5127
+ @database = args[:database] if args.key?(:database)
2795
5128
  end
2796
5129
  end
2797
5130
 
@@ -2813,12 +5146,25 @@ module Google
2813
5146
  # @return [Google::Apis::SqladminV1beta4::SqlActiveDirectoryConfig]
2814
5147
  attr_accessor :active_directory_config
2815
5148
 
5149
+ # Specifies options for controlling advanced machine features.
5150
+ # Corresponds to the JSON property `advancedMachineFeatures`
5151
+ # @return [Google::Apis::SqladminV1beta4::AdvancedMachineFeatures]
5152
+ attr_accessor :advanced_machine_features
5153
+
2816
5154
  # The App Engine app IDs that can access this instance. (Deprecated) Applied to
2817
5155
  # First Generation instances only.
2818
5156
  # Corresponds to the JSON property `authorizedGaeApplications`
2819
5157
  # @return [Array<String>]
2820
5158
  attr_accessor :authorized_gae_applications
2821
5159
 
5160
+ # Optional. Cloud SQL for MySQL auto-upgrade configuration. When this parameter
5161
+ # is set to true, auto-upgrade is enabled for MySQL 8.0 minor versions. The
5162
+ # MySQL version must be 8.0.35 or higher.
5163
+ # Corresponds to the JSON property `autoUpgradeEnabled`
5164
+ # @return [Boolean]
5165
+ attr_accessor :auto_upgrade_enabled
5166
+ alias_method :auto_upgrade_enabled?, :auto_upgrade_enabled
5167
+
2822
5168
  # Availability type. Potential values: * `ZONAL`: The instance serves data from
2823
5169
  # only one zone. Outages in that zone affect data accessibility. * `REGIONAL`:
2824
5170
  # The instance can serve data from more than one zone in a region (it is highly
@@ -2838,6 +5184,11 @@ module Google
2838
5184
  # @return [String]
2839
5185
  attr_accessor :collation
2840
5186
 
5187
+ # The managed connection pooling configuration.
5188
+ # Corresponds to the JSON property `connectionPoolConfig`
5189
+ # @return [Google::Apis::SqladminV1beta4::ConnectionPoolConfig]
5190
+ attr_accessor :connection_pool_config
5191
+
2841
5192
  # Specifies if connections must use Cloud SQL connectors. Option values include
2842
5193
  # the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without
2843
5194
  # Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud
@@ -2857,6 +5208,29 @@ module Google
2857
5208
  attr_accessor :crash_safe_replication_enabled
2858
5209
  alias_method :crash_safe_replication_enabled?, :crash_safe_replication_enabled
2859
5210
 
5211
+ # This parameter controls whether to allow using ExecuteSql API to connect to
5212
+ # the instance. Not allowed by default.
5213
+ # Corresponds to the JSON property `dataApiAccess`
5214
+ # @return [String]
5215
+ attr_accessor :data_api_access
5216
+
5217
+ # Data cache configurations.
5218
+ # Corresponds to the JSON property `dataCacheConfig`
5219
+ # @return [Google::Apis::SqladminV1beta4::DataCacheConfig]
5220
+ attr_accessor :data_cache_config
5221
+
5222
+ # Optional. Provisioned number of I/O operations per second for the data disk.
5223
+ # This field is only used for hyperdisk-balanced disk types.
5224
+ # Corresponds to the JSON property `dataDiskProvisionedIops`
5225
+ # @return [Fixnum]
5226
+ attr_accessor :data_disk_provisioned_iops
5227
+
5228
+ # Optional. Provisioned throughput measured in MiB per second for the data disk.
5229
+ # This field is only used for hyperdisk-balanced disk types.
5230
+ # Corresponds to the JSON property `dataDiskProvisionedThroughput`
5231
+ # @return [Fixnum]
5232
+ attr_accessor :data_disk_provisioned_throughput
5233
+
2860
5234
  # The size of data disk, in GB. The data disk size minimum is 10GB.
2861
5235
  # Corresponds to the JSON property `dataDiskSizeGb`
2862
5236
  # @return [Fixnum]
@@ -2891,6 +5265,38 @@ module Google
2891
5265
  # @return [Array<Google::Apis::SqladminV1beta4::DenyMaintenancePeriod>]
2892
5266
  attr_accessor :deny_maintenance_periods
2893
5267
 
5268
+ # Optional. The edition of the instance.
5269
+ # Corresponds to the JSON property `edition`
5270
+ # @return [String]
5271
+ attr_accessor :edition
5272
+
5273
+ # Optional. By default, Cloud SQL instances have schema extraction disabled for
5274
+ # Dataplex. When this parameter is set to true, schema extraction for Dataplex
5275
+ # on Cloud SQL instances is activated.
5276
+ # Corresponds to the JSON property `enableDataplexIntegration`
5277
+ # @return [Boolean]
5278
+ attr_accessor :enable_dataplex_integration
5279
+ alias_method :enable_dataplex_integration?, :enable_dataplex_integration
5280
+
5281
+ # Optional. When this parameter is set to true, Cloud SQL instances can connect
5282
+ # to Vertex AI to pass requests for real-time predictions and insights to the AI.
5283
+ # The default value is false. This applies only to Cloud SQL for MySQL and
5284
+ # Cloud SQL for PostgreSQL instances.
5285
+ # Corresponds to the JSON property `enableGoogleMlIntegration`
5286
+ # @return [Boolean]
5287
+ attr_accessor :enable_google_ml_integration
5288
+ alias_method :enable_google_ml_integration?, :enable_google_ml_integration
5289
+
5290
+ # SQL Server Entra ID configuration.
5291
+ # Corresponds to the JSON property `entraidConfig`
5292
+ # @return [Google::Apis::SqladminV1beta4::SqlServerEntraIdConfig]
5293
+ attr_accessor :entraid_config
5294
+
5295
+ # Config used to determine the final backup settings for the instance.
5296
+ # Corresponds to the JSON property `finalBackupConfig`
5297
+ # @return [Google::Apis::SqladminV1beta4::FinalBackupConfig]
5298
+ attr_accessor :final_backup_config
5299
+
2894
5300
  # Insights configuration. This specifies when Cloud SQL Insights feature is
2895
5301
  # enabled and optional configuration.
2896
5302
  # Corresponds to the JSON property `insightsConfig`
@@ -2920,17 +5326,36 @@ module Google
2920
5326
  # @return [Google::Apis::SqladminV1beta4::MaintenanceWindow]
2921
5327
  attr_accessor :maintenance_window
2922
5328
 
2923
- # Database instance local user password validation policy
5329
+ # Database instance local user password validation policy. This message defines
5330
+ # the password policy for local database users. When enabled, it enforces
5331
+ # constraints on password complexity, length, and reuse. Keep this policy
5332
+ # enabled to help prevent unauthorized access.
2924
5333
  # Corresponds to the JSON property `passwordValidationPolicy`
2925
5334
  # @return [Google::Apis::SqladminV1beta4::PasswordValidationPolicy]
2926
5335
  attr_accessor :password_validation_policy
2927
5336
 
5337
+ # Performance Capture configuration.
5338
+ # Corresponds to the JSON property `performanceCaptureConfig`
5339
+ # @return [Google::Apis::SqladminV1beta4::PerformanceCaptureConfig]
5340
+ attr_accessor :performance_capture_config
5341
+
2928
5342
  # The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`.
2929
5343
  # Only `PER_USE` is supported for Second Generation instances.
2930
5344
  # Corresponds to the JSON property `pricingPlan`
2931
5345
  # @return [String]
2932
5346
  attr_accessor :pricing_plan
2933
5347
 
5348
+ # The read pool auto-scale configuration.
5349
+ # Corresponds to the JSON property `readPoolAutoScaleConfig`
5350
+ # @return [Google::Apis::SqladminV1beta4::ReadPoolAutoScaleConfig]
5351
+ attr_accessor :read_pool_auto_scale_config
5352
+
5353
+ # Optional. Configuration value for recreation of replica after certain
5354
+ # replication lag.
5355
+ # Corresponds to the JSON property `replicationLagMaxSeconds`
5356
+ # @return [Fixnum]
5357
+ attr_accessor :replication_lag_max_seconds
5358
+
2934
5359
  # The type of replication this instance uses. This can be either `ASYNCHRONOUS`
2935
5360
  # or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First
2936
5361
  # Generation instances.
@@ -2938,6 +5363,15 @@ module Google
2938
5363
  # @return [String]
2939
5364
  attr_accessor :replication_type
2940
5365
 
5366
+ # Optional. When this parameter is set to true, Cloud SQL retains backups of the
5367
+ # instance even after the instance is deleted. The ON_DEMAND backup will be
5368
+ # retained until customer deletes the backup or the project. The AUTOMATED
5369
+ # backup will be retained based on the backups retention setting.
5370
+ # Corresponds to the JSON property `retainBackupsOnDelete`
5371
+ # @return [Boolean]
5372
+ attr_accessor :retain_backups_on_delete
5373
+ alias_method :retain_backups_on_delete?, :retain_backups_on_delete
5374
+
2941
5375
  # The version of instance settings. This is a required field for update method
2942
5376
  # to make sure concurrent updates are handled properly. During update, use the
2943
5377
  # most recent settingsVersion value for this instance and do not try to update
@@ -2989,26 +5423,42 @@ module Google
2989
5423
  def update!(**args)
2990
5424
  @activation_policy = args[:activation_policy] if args.key?(:activation_policy)
2991
5425
  @active_directory_config = args[:active_directory_config] if args.key?(:active_directory_config)
5426
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
2992
5427
  @authorized_gae_applications = args[:authorized_gae_applications] if args.key?(:authorized_gae_applications)
5428
+ @auto_upgrade_enabled = args[:auto_upgrade_enabled] if args.key?(:auto_upgrade_enabled)
2993
5429
  @availability_type = args[:availability_type] if args.key?(:availability_type)
2994
5430
  @backup_configuration = args[:backup_configuration] if args.key?(:backup_configuration)
2995
5431
  @collation = args[:collation] if args.key?(:collation)
5432
+ @connection_pool_config = args[:connection_pool_config] if args.key?(:connection_pool_config)
2996
5433
  @connector_enforcement = args[:connector_enforcement] if args.key?(:connector_enforcement)
2997
5434
  @crash_safe_replication_enabled = args[:crash_safe_replication_enabled] if args.key?(:crash_safe_replication_enabled)
5435
+ @data_api_access = args[:data_api_access] if args.key?(:data_api_access)
5436
+ @data_cache_config = args[:data_cache_config] if args.key?(:data_cache_config)
5437
+ @data_disk_provisioned_iops = args[:data_disk_provisioned_iops] if args.key?(:data_disk_provisioned_iops)
5438
+ @data_disk_provisioned_throughput = args[:data_disk_provisioned_throughput] if args.key?(:data_disk_provisioned_throughput)
2998
5439
  @data_disk_size_gb = args[:data_disk_size_gb] if args.key?(:data_disk_size_gb)
2999
5440
  @data_disk_type = args[:data_disk_type] if args.key?(:data_disk_type)
3000
5441
  @database_flags = args[:database_flags] if args.key?(:database_flags)
3001
5442
  @database_replication_enabled = args[:database_replication_enabled] if args.key?(:database_replication_enabled)
3002
5443
  @deletion_protection_enabled = args[:deletion_protection_enabled] if args.key?(:deletion_protection_enabled)
3003
5444
  @deny_maintenance_periods = args[:deny_maintenance_periods] if args.key?(:deny_maintenance_periods)
5445
+ @edition = args[:edition] if args.key?(:edition)
5446
+ @enable_dataplex_integration = args[:enable_dataplex_integration] if args.key?(:enable_dataplex_integration)
5447
+ @enable_google_ml_integration = args[:enable_google_ml_integration] if args.key?(:enable_google_ml_integration)
5448
+ @entraid_config = args[:entraid_config] if args.key?(:entraid_config)
5449
+ @final_backup_config = args[:final_backup_config] if args.key?(:final_backup_config)
3004
5450
  @insights_config = args[:insights_config] if args.key?(:insights_config)
3005
5451
  @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
3006
5452
  @kind = args[:kind] if args.key?(:kind)
3007
5453
  @location_preference = args[:location_preference] if args.key?(:location_preference)
3008
5454
  @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
3009
5455
  @password_validation_policy = args[:password_validation_policy] if args.key?(:password_validation_policy)
5456
+ @performance_capture_config = args[:performance_capture_config] if args.key?(:performance_capture_config)
3010
5457
  @pricing_plan = args[:pricing_plan] if args.key?(:pricing_plan)
5458
+ @read_pool_auto_scale_config = args[:read_pool_auto_scale_config] if args.key?(:read_pool_auto_scale_config)
5459
+ @replication_lag_max_seconds = args[:replication_lag_max_seconds] if args.key?(:replication_lag_max_seconds)
3011
5460
  @replication_type = args[:replication_type] if args.key?(:replication_type)
5461
+ @retain_backups_on_delete = args[:retain_backups_on_delete] if args.key?(:retain_backups_on_delete)
3012
5462
  @settings_version = args[:settings_version] if args.key?(:settings_version)
3013
5463
  @sql_server_audit_config = args[:sql_server_audit_config] if args.key?(:sql_server_audit_config)
3014
5464
  @storage_auto_resize = args[:storage_auto_resize] if args.key?(:storage_auto_resize)
@@ -3023,6 +5473,17 @@ module Google
3023
5473
  class SqlActiveDirectoryConfig
3024
5474
  include Google::Apis::Core::Hashable
3025
5475
 
5476
+ # Optional. The secret manager key storing the administrator credential. (e.g.,
5477
+ # projects/`project`/secrets/`secret`).
5478
+ # Corresponds to the JSON property `adminCredentialSecretName`
5479
+ # @return [String]
5480
+ attr_accessor :admin_credential_secret_name
5481
+
5482
+ # Optional. Domain controller IPv4 addresses used to bootstrap Active Directory.
5483
+ # Corresponds to the JSON property `dnsServers`
5484
+ # @return [Array<String>]
5485
+ attr_accessor :dns_servers
5486
+
3026
5487
  # The name of the domain (e.g., mydomain.com).
3027
5488
  # Corresponds to the JSON property `domain`
3028
5489
  # @return [String]
@@ -3033,14 +5494,29 @@ module Google
3033
5494
  # @return [String]
3034
5495
  attr_accessor :kind
3035
5496
 
5497
+ # Optional. The mode of the Active Directory configuration.
5498
+ # Corresponds to the JSON property `mode`
5499
+ # @return [String]
5500
+ attr_accessor :mode
5501
+
5502
+ # Optional. The organizational unit distinguished name. This is the full
5503
+ # hierarchical path to the organizational unit.
5504
+ # Corresponds to the JSON property `organizationalUnit`
5505
+ # @return [String]
5506
+ attr_accessor :organizational_unit
5507
+
3036
5508
  def initialize(**args)
3037
5509
  update!(**args)
3038
5510
  end
3039
5511
 
3040
5512
  # Update properties of this object
3041
5513
  def update!(**args)
5514
+ @admin_credential_secret_name = args[:admin_credential_secret_name] if args.key?(:admin_credential_secret_name)
5515
+ @dns_servers = args[:dns_servers] if args.key?(:dns_servers)
3042
5516
  @domain = args[:domain] if args.key?(:domain)
3043
5517
  @kind = args[:kind] if args.key?(:kind)
5518
+ @mode = args[:mode] if args.key?(:mode)
5519
+ @organizational_unit = args[:organizational_unit] if args.key?(:organizational_unit)
3044
5520
  end
3045
5521
  end
3046
5522
 
@@ -3075,6 +5551,153 @@ module Google
3075
5551
  end
3076
5552
  end
3077
5553
 
5554
+ # Acquire SSRS lease response.
5555
+ class SqlInstancesAcquireSsrsLeaseResponse
5556
+ include Google::Apis::Core::Hashable
5557
+
5558
+ # The unique identifier for this operation.
5559
+ # Corresponds to the JSON property `operationId`
5560
+ # @return [String]
5561
+ attr_accessor :operation_id
5562
+
5563
+ def initialize(**args)
5564
+ update!(**args)
5565
+ end
5566
+
5567
+ # Update properties of this object
5568
+ def update!(**args)
5569
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
5570
+ end
5571
+ end
5572
+
5573
+ # Execute SQL statements response.
5574
+ class SqlInstancesExecuteSqlResponse
5575
+ include Google::Apis::Core::Hashable
5576
+
5577
+ # A list of notices and warnings generated during query execution. For
5578
+ # PostgreSQL, this includes all notices and warnings. For MySQL, this includes
5579
+ # warnings generated by the last executed statement. To retrieve all warnings
5580
+ # for a multi-statement query, `SHOW WARNINGS` must be executed after each
5581
+ # statement.
5582
+ # Corresponds to the JSON property `messages`
5583
+ # @return [Array<Google::Apis::SqladminV1beta4::Message>]
5584
+ attr_accessor :messages
5585
+
5586
+ # The additional metadata information regarding the execution of the SQL
5587
+ # statements.
5588
+ # Corresponds to the JSON property `metadata`
5589
+ # @return [Google::Apis::SqladminV1beta4::Metadata]
5590
+ attr_accessor :metadata
5591
+
5592
+ # The list of results after executing all the SQL statements.
5593
+ # Corresponds to the JSON property `results`
5594
+ # @return [Array<Google::Apis::SqladminV1beta4::QueryResult>]
5595
+ attr_accessor :results
5596
+
5597
+ # The `Status` type defines a logical error model that is suitable for different
5598
+ # programming environments, including REST APIs and RPC APIs. It is used by [
5599
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
5600
+ # data: error code, error message, and error details. You can find out more
5601
+ # about this error model and how to work with it in the [API Design Guide](https:
5602
+ # //cloud.google.com/apis/design/errors).
5603
+ # Corresponds to the JSON property `status`
5604
+ # @return [Google::Apis::SqladminV1beta4::Status]
5605
+ attr_accessor :status
5606
+
5607
+ def initialize(**args)
5608
+ update!(**args)
5609
+ end
5610
+
5611
+ # Update properties of this object
5612
+ def update!(**args)
5613
+ @messages = args[:messages] if args.key?(:messages)
5614
+ @metadata = args[:metadata] if args.key?(:metadata)
5615
+ @results = args[:results] if args.key?(:results)
5616
+ @status = args[:status] if args.key?(:status)
5617
+ end
5618
+ end
5619
+
5620
+ # Instance get disk shrink config response.
5621
+ class SqlInstancesGetDiskShrinkConfigResponse
5622
+ include Google::Apis::Core::Hashable
5623
+
5624
+ # This is always `sql#getDiskShrinkConfig`.
5625
+ # Corresponds to the JSON property `kind`
5626
+ # @return [String]
5627
+ attr_accessor :kind
5628
+
5629
+ # Additional message to customers.
5630
+ # Corresponds to the JSON property `message`
5631
+ # @return [String]
5632
+ attr_accessor :message
5633
+
5634
+ # The minimum size to which a disk can be shrunk in GigaBytes.
5635
+ # Corresponds to the JSON property `minimalTargetSizeGb`
5636
+ # @return [Fixnum]
5637
+ attr_accessor :minimal_target_size_gb
5638
+
5639
+ def initialize(**args)
5640
+ update!(**args)
5641
+ end
5642
+
5643
+ # Update properties of this object
5644
+ def update!(**args)
5645
+ @kind = args[:kind] if args.key?(:kind)
5646
+ @message = args[:message] if args.key?(:message)
5647
+ @minimal_target_size_gb = args[:minimal_target_size_gb] if args.key?(:minimal_target_size_gb)
5648
+ end
5649
+ end
5650
+
5651
+ # Instance get latest recovery time response.
5652
+ class SqlInstancesGetLatestRecoveryTimeResponse
5653
+ include Google::Apis::Core::Hashable
5654
+
5655
+ # Timestamp, identifies the earliest recovery time of the source instance.
5656
+ # Corresponds to the JSON property `earliestRecoveryTime`
5657
+ # @return [String]
5658
+ attr_accessor :earliest_recovery_time
5659
+
5660
+ # This is always `sql#getLatestRecoveryTime`.
5661
+ # Corresponds to the JSON property `kind`
5662
+ # @return [String]
5663
+ attr_accessor :kind
5664
+
5665
+ # Timestamp, identifies the latest recovery time of the source instance.
5666
+ # Corresponds to the JSON property `latestRecoveryTime`
5667
+ # @return [String]
5668
+ attr_accessor :latest_recovery_time
5669
+
5670
+ def initialize(**args)
5671
+ update!(**args)
5672
+ end
5673
+
5674
+ # Update properties of this object
5675
+ def update!(**args)
5676
+ @earliest_recovery_time = args[:earliest_recovery_time] if args.key?(:earliest_recovery_time)
5677
+ @kind = args[:kind] if args.key?(:kind)
5678
+ @latest_recovery_time = args[:latest_recovery_time] if args.key?(:latest_recovery_time)
5679
+ end
5680
+ end
5681
+
5682
+ # The response for the release of the SSRS lease.
5683
+ class SqlInstancesReleaseSsrsLeaseResponse
5684
+ include Google::Apis::Core::Hashable
5685
+
5686
+ # The operation ID.
5687
+ # Corresponds to the JSON property `operationId`
5688
+ # @return [String]
5689
+ attr_accessor :operation_id
5690
+
5691
+ def initialize(**args)
5692
+ update!(**args)
5693
+ end
5694
+
5695
+ # Update properties of this object
5696
+ def update!(**args)
5697
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
5698
+ end
5699
+ end
5700
+
3078
5701
  # Reschedule options for maintenance windows.
3079
5702
  class SqlInstancesRescheduleMaintenanceRequestBody
3080
5703
  include Google::Apis::Core::Hashable
@@ -3094,15 +5717,44 @@ module Google
3094
5717
  end
3095
5718
  end
3096
5719
 
5720
+ # Instance reset replica size request.
5721
+ class SqlInstancesResetReplicaSizeRequest
5722
+ include Google::Apis::Core::Hashable
5723
+
5724
+ def initialize(**args)
5725
+ update!(**args)
5726
+ end
5727
+
5728
+ # Update properties of this object
5729
+ def update!(**args)
5730
+ end
5731
+ end
5732
+
3097
5733
  #
3098
5734
  class SqlInstancesStartExternalSyncRequest
3099
5735
  include Google::Apis::Core::Hashable
3100
5736
 
5737
+ # Optional. MigrationType configures the migration to use physical files or
5738
+ # logical dump files. If not set, then the logical dump file configuration is
5739
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5740
+ # Corresponds to the JSON property `migrationType`
5741
+ # @return [String]
5742
+ attr_accessor :migration_type
5743
+
3101
5744
  # MySQL-specific external server sync settings.
3102
5745
  # Corresponds to the JSON property `mysqlSyncConfig`
3103
5746
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
3104
5747
  attr_accessor :mysql_sync_config
3105
5748
 
5749
+ # Optional. MySQL only. True if end-user has confirmed that this SES call will
5750
+ # wipe replica databases overlapping with the proposed selected_objects. If this
5751
+ # field is not set and there are both overlapping and additional databases
5752
+ # proposed, an error will be returned.
5753
+ # Corresponds to the JSON property `replicaOverwriteEnabled`
5754
+ # @return [Boolean]
5755
+ attr_accessor :replica_overwrite_enabled
5756
+ alias_method :replica_overwrite_enabled?, :replica_overwrite_enabled
5757
+
3106
5758
  # Whether to skip the verification step (VESS).
3107
5759
  # Corresponds to the JSON property `skipVerification`
3108
5760
  # @return [Boolean]
@@ -3114,15 +5766,24 @@ module Google
3114
5766
  # @return [String]
3115
5767
  attr_accessor :sync_mode
3116
5768
 
5769
+ # Optional. Parallel level for initial data sync. Currently only applicable for
5770
+ # MySQL.
5771
+ # Corresponds to the JSON property `syncParallelLevel`
5772
+ # @return [String]
5773
+ attr_accessor :sync_parallel_level
5774
+
3117
5775
  def initialize(**args)
3118
5776
  update!(**args)
3119
5777
  end
3120
5778
 
3121
5779
  # Update properties of this object
3122
5780
  def update!(**args)
5781
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3123
5782
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
5783
+ @replica_overwrite_enabled = args[:replica_overwrite_enabled] if args.key?(:replica_overwrite_enabled)
3124
5784
  @skip_verification = args[:skip_verification] if args.key?(:skip_verification)
3125
5785
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5786
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3126
5787
  end
3127
5788
  end
3128
5789
 
@@ -3130,16 +5791,34 @@ module Google
3130
5791
  class SqlInstancesVerifyExternalSyncSettingsRequest
3131
5792
  include Google::Apis::Core::Hashable
3132
5793
 
5794
+ # Optional. MigrationType configures the migration to use physical files or
5795
+ # logical dump files. If not set, then the logical dump file configuration is
5796
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5797
+ # Corresponds to the JSON property `migrationType`
5798
+ # @return [String]
5799
+ attr_accessor :migration_type
5800
+
3133
5801
  # MySQL-specific external server sync settings.
3134
5802
  # Corresponds to the JSON property `mysqlSyncConfig`
3135
5803
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
3136
5804
  attr_accessor :mysql_sync_config
3137
5805
 
5806
+ # Optional. Migrate only the specified objects from the source instance. If this
5807
+ # field is empty, then migrate all objects.
5808
+ # Corresponds to the JSON property `selectedObjects`
5809
+ # @return [Array<Google::Apis::SqladminV1beta4::ExternalSyncSelectedObject>]
5810
+ attr_accessor :selected_objects
5811
+
3138
5812
  # External sync mode
3139
5813
  # Corresponds to the JSON property `syncMode`
3140
5814
  # @return [String]
3141
5815
  attr_accessor :sync_mode
3142
5816
 
5817
+ # Optional. Parallel level for initial data sync. Only applicable for PostgreSQL.
5818
+ # Corresponds to the JSON property `syncParallelLevel`
5819
+ # @return [String]
5820
+ attr_accessor :sync_parallel_level
5821
+
3143
5822
  # Flag to enable verifying connection only
3144
5823
  # Corresponds to the JSON property `verifyConnectionOnly`
3145
5824
  # @return [Boolean]
@@ -3158,8 +5837,11 @@ module Google
3158
5837
 
3159
5838
  # Update properties of this object
3160
5839
  def update!(**args)
5840
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3161
5841
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
5842
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
3162
5843
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5844
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3163
5845
  @verify_connection_only = args[:verify_connection_only] if args.key?(:verify_connection_only)
3164
5846
  @verify_replication_only = args[:verify_replication_only] if args.key?(:verify_replication_only)
3165
5847
  end
@@ -3326,6 +6008,37 @@ module Google
3326
6008
  end
3327
6009
  end
3328
6010
 
6011
+ # SQL Server Entra ID configuration.
6012
+ class SqlServerEntraIdConfig
6013
+ include Google::Apis::Core::Hashable
6014
+
6015
+ # Optional. The application ID for the Entra ID configuration.
6016
+ # Corresponds to the JSON property `applicationId`
6017
+ # @return [String]
6018
+ attr_accessor :application_id
6019
+
6020
+ # Output only. This is always sql#sqlServerEntraIdConfig
6021
+ # Corresponds to the JSON property `kind`
6022
+ # @return [String]
6023
+ attr_accessor :kind
6024
+
6025
+ # Optional. The tenant ID for the Entra ID configuration.
6026
+ # Corresponds to the JSON property `tenantId`
6027
+ # @return [String]
6028
+ attr_accessor :tenant_id
6029
+
6030
+ def initialize(**args)
6031
+ update!(**args)
6032
+ end
6033
+
6034
+ # Update properties of this object
6035
+ def update!(**args)
6036
+ @application_id = args[:application_id] if args.key?(:application_id)
6037
+ @kind = args[:kind] if args.key?(:kind)
6038
+ @tenant_id = args[:tenant_id] if args.key?(:tenant_id)
6039
+ end
6040
+ end
6041
+
3329
6042
  # Represents a Sql Server user on the Cloud SQL instance.
3330
6043
  class SqlServerUserDetails
3331
6044
  include Google::Apis::Core::Hashable
@@ -3352,6 +6065,25 @@ module Google
3352
6065
  end
3353
6066
  end
3354
6067
 
6068
+ # The sub operation type based on the operation type.
6069
+ class SqlSubOperationType
6070
+ include Google::Apis::Core::Hashable
6071
+
6072
+ # The type of maintenance to be performed on the instance.
6073
+ # Corresponds to the JSON property `maintenanceType`
6074
+ # @return [String]
6075
+ attr_accessor :maintenance_type
6076
+
6077
+ def initialize(**args)
6078
+ update!(**args)
6079
+ end
6080
+
6081
+ # Update properties of this object
6082
+ def update!(**args)
6083
+ @maintenance_type = args[:maintenance_type] if args.key?(:maintenance_type)
6084
+ end
6085
+ end
6086
+
3355
6087
  # SslCerts Resource
3356
6088
  class SslCert
3357
6089
  include Google::Apis::Core::Hashable
@@ -3556,6 +6288,45 @@ module Google
3556
6288
  end
3557
6289
  end
3558
6290
 
6291
+ # The `Status` type defines a logical error model that is suitable for different
6292
+ # programming environments, including REST APIs and RPC APIs. It is used by [
6293
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
6294
+ # data: error code, error message, and error details. You can find out more
6295
+ # about this error model and how to work with it in the [API Design Guide](https:
6296
+ # //cloud.google.com/apis/design/errors).
6297
+ class Status
6298
+ include Google::Apis::Core::Hashable
6299
+
6300
+ # The status code, which should be an enum value of google.rpc.Code.
6301
+ # Corresponds to the JSON property `code`
6302
+ # @return [Fixnum]
6303
+ attr_accessor :code
6304
+
6305
+ # A list of messages that carry the error details. There is a common set of
6306
+ # message types for APIs to use.
6307
+ # Corresponds to the JSON property `details`
6308
+ # @return [Array<Hash<String,Object>>]
6309
+ attr_accessor :details
6310
+
6311
+ # A developer-facing error message, which should be in English. Any user-facing
6312
+ # error message should be localized and sent in the google.rpc.Status.details
6313
+ # field, or localized by the client.
6314
+ # Corresponds to the JSON property `message`
6315
+ # @return [String]
6316
+ attr_accessor :message
6317
+
6318
+ def initialize(**args)
6319
+ update!(**args)
6320
+ end
6321
+
6322
+ # Update properties of this object
6323
+ def update!(**args)
6324
+ @code = args[:code] if args.key?(:code)
6325
+ @details = args[:details] if args.key?(:details)
6326
+ @message = args[:message] if args.key?(:message)
6327
+ end
6328
+ end
6329
+
3559
6330
  # Initial sync flags for certain Cloud SQL APIs. Currently used for the MySQL
3560
6331
  # external server initial dump.
3561
6332
  class SyncFlags
@@ -3583,6 +6354,31 @@ module Google
3583
6354
  end
3584
6355
  end
3585
6356
 
6357
+ # Target metric for read pool auto scaling.
6358
+ class TargetMetric
6359
+ include Google::Apis::Core::Hashable
6360
+
6361
+ # The metric name to be used for auto scaling.
6362
+ # Corresponds to the JSON property `metric`
6363
+ # @return [String]
6364
+ attr_accessor :metric
6365
+
6366
+ # The target value for the metric.
6367
+ # Corresponds to the JSON property `targetValue`
6368
+ # @return [Float]
6369
+ attr_accessor :target_value
6370
+
6371
+ def initialize(**args)
6372
+ update!(**args)
6373
+ end
6374
+
6375
+ # Update properties of this object
6376
+ def update!(**args)
6377
+ @metric = args[:metric] if args.key?(:metric)
6378
+ @target_value = args[:target_value] if args.key?(:target_value)
6379
+ end
6380
+ end
6381
+
3586
6382
  # A Google Cloud SQL service tier resource.
3587
6383
  class Tier
3588
6384
  include Google::Apis::Core::Hashable
@@ -3682,6 +6478,11 @@ module Google
3682
6478
  class User
3683
6479
  include Google::Apis::Core::Hashable
3684
6480
 
6481
+ # Optional. Role memberships of the user
6482
+ # Corresponds to the JSON property `databaseRoles`
6483
+ # @return [Array<String>]
6484
+ attr_accessor :database_roles
6485
+
3685
6486
  # Dual password status for the user.
3686
6487
  # Corresponds to the JSON property `dualPasswordType`
3687
6488
  # @return [String]
@@ -3701,6 +6502,17 @@ module Google
3701
6502
  # @return [String]
3702
6503
  attr_accessor :host
3703
6504
 
6505
+ # Optional. The full email for an IAM user. For normal database users, this will
6506
+ # not be filled. Only applicable to MySQL database users.
6507
+ # Corresponds to the JSON property `iamEmail`
6508
+ # @return [String]
6509
+ attr_accessor :iam_email
6510
+
6511
+ # Indicates if a group is active or inactive for IAM database authentication.
6512
+ # Corresponds to the JSON property `iamStatus`
6513
+ # @return [String]
6514
+ attr_accessor :iam_status
6515
+
3704
6516
  # The name of the Cloud SQL instance. This does not include the project ID. Can
3705
6517
  # be omitted for *update* because it is already specified on the URL.
3706
6518
  # Corresponds to the JSON property `instance`
@@ -3752,9 +6564,12 @@ module Google
3752
6564
 
3753
6565
  # Update properties of this object
3754
6566
  def update!(**args)
6567
+ @database_roles = args[:database_roles] if args.key?(:database_roles)
3755
6568
  @dual_password_type = args[:dual_password_type] if args.key?(:dual_password_type)
3756
6569
  @etag = args[:etag] if args.key?(:etag)
3757
6570
  @host = args[:host] if args.key?(:host)
6571
+ @iam_email = args[:iam_email] if args.key?(:iam_email)
6572
+ @iam_status = args[:iam_status] if args.key?(:iam_status)
3758
6573
  @instance = args[:instance] if args.key?(:instance)
3759
6574
  @kind = args[:kind] if args.key?(:kind)
3760
6575
  @name = args[:name] if args.key?(:name)
@@ -3826,9 +6641,7 @@ module Google
3826
6641
  # @return [String]
3827
6642
  attr_accessor :kind
3828
6643
 
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.
6644
+ # Unused.
3832
6645
  # Corresponds to the JSON property `nextPageToken`
3833
6646
  # @return [String]
3834
6647
  attr_accessor :next_page_token
@@ -3844,6 +6657,32 @@ module Google
3844
6657
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3845
6658
  end
3846
6659
  end
6660
+
6661
+ # The cell value of the table.
6662
+ class Value
6663
+ include Google::Apis::Core::Hashable
6664
+
6665
+ # If cell value is null, then this flag will be set to true.
6666
+ # Corresponds to the JSON property `nullValue`
6667
+ # @return [Boolean]
6668
+ attr_accessor :null_value
6669
+ alias_method :null_value?, :null_value
6670
+
6671
+ # The cell value represented in string format.
6672
+ # Corresponds to the JSON property `value`
6673
+ # @return [String]
6674
+ attr_accessor :value
6675
+
6676
+ def initialize(**args)
6677
+ update!(**args)
6678
+ end
6679
+
6680
+ # Update properties of this object
6681
+ def update!(**args)
6682
+ @null_value = args[:null_value] if args.key?(:null_value)
6683
+ @value = args[:value] if args.key?(:value)
6684
+ end
6685
+ end
3847
6686
  end
3848
6687
  end
3849
6688
  end