google-apis-sqladmin_v1beta4 0.41.0 → 0.95.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,110 @@ 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
+ # The DNS name.
1834
+ # Corresponds to the JSON property `name`
1835
+ # @return [String]
1836
+ attr_accessor :name
1837
+
1838
+ def initialize(**args)
1839
+ update!(**args)
1840
+ end
1841
+
1842
+ # Update properties of this object
1843
+ def update!(**args)
1844
+ @connection_type = args[:connection_type] if args.key?(:connection_type)
1845
+ @dns_scope = args[:dns_scope] if args.key?(:dns_scope)
1846
+ @name = args[:name] if args.key?(:name)
1847
+ end
1848
+ end
1849
+
1850
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1851
+ # messages in your APIs. A typical example is to use it as the request or the
1852
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1853
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1854
+ class Empty
1855
+ include Google::Apis::Core::Hashable
1856
+
1857
+ def initialize(**args)
1858
+ update!(**args)
1859
+ end
1860
+
1861
+ # Update properties of this object
1862
+ def update!(**args)
1863
+ end
1864
+ end
1865
+
1866
+ # The request payload used to execute SQL statements.
1867
+ class ExecuteSqlPayload
1868
+ include Google::Apis::Core::Hashable
1869
+
1870
+ # Optional. When set to true, the API caller identity associated with the
1871
+ # request is used for database authentication. The API caller must be an IAM
1872
+ # user in the database.
1873
+ # Corresponds to the JSON property `autoIamAuthn`
1874
+ # @return [Boolean]
1875
+ attr_accessor :auto_iam_authn
1876
+ alias_method :auto_iam_authn?, :auto_iam_authn
1877
+
1878
+ # Optional. Name of the database on which the statement will be executed.
1879
+ # Corresponds to the JSON property `database`
1880
+ # @return [String]
1881
+ attr_accessor :database
1882
+
1883
+ # Optional. Controls how the API should respond when the SQL execution result is
1884
+ # incomplete due to the size limit or another error. The default mode is to
1885
+ # throw an error.
1886
+ # Corresponds to the JSON property `partialResultMode`
1887
+ # @return [String]
1888
+ attr_accessor :partial_result_mode
1889
+
1890
+ # Optional. The maximum number of rows returned per SQL statement.
1891
+ # Corresponds to the JSON property `rowLimit`
1892
+ # @return [Fixnum]
1893
+ attr_accessor :row_limit
1894
+
1895
+ # Required. SQL statements to run on the database. It can be a single statement
1896
+ # or a sequence of statements separated by semicolons.
1897
+ # Corresponds to the JSON property `sqlStatement`
1898
+ # @return [String]
1899
+ attr_accessor :sql_statement
1900
+
1901
+ # Optional. The name of an existing database user to connect to the database.
1902
+ # When `auto_iam_authn` is set to true, this field is ignored and the API caller'
1903
+ # s IAM user is used.
1904
+ # Corresponds to the JSON property `user`
1905
+ # @return [String]
1906
+ attr_accessor :user
1907
+
1908
+ def initialize(**args)
1909
+ update!(**args)
1910
+ end
1911
+
1912
+ # Update properties of this object
1913
+ def update!(**args)
1914
+ @auto_iam_authn = args[:auto_iam_authn] if args.key?(:auto_iam_authn)
1915
+ @database = args[:database] if args.key?(:database)
1916
+ @partial_result_mode = args[:partial_result_mode] if args.key?(:partial_result_mode)
1917
+ @row_limit = args[:row_limit] if args.key?(:row_limit)
1918
+ @sql_statement = args[:sql_statement] if args.key?(:sql_statement)
1919
+ @user = args[:user] if args.key?(:user)
1920
+ end
1921
+ end
1922
+
1153
1923
  # Database instance export context.
1154
1924
  class ExportContext
1155
1925
  include Google::Apis::Core::Hashable
@@ -1168,11 +1938,14 @@ module Google
1168
1938
  # database is specified, all databases are exported, except for the `mysql`
1169
1939
  # system database. If `fileType` is `CSV`, you can specify one database, either
1170
1940
  # 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`.
1941
+ # which takes precedence over this property. `PostgreSQL instances:` If you don'
1942
+ # t specify a database by name, all user databases in the instance are exported.
1943
+ # This excludes system databases and Cloud SQL databases used to manage internal
1944
+ # operations. Exporting all user databases is only available for directory-
1945
+ # formatted parallel export. If `fileType` is `CSV`, this database must match
1946
+ # the one specified in the `csvExportOptions.selectQuery` property. `SQL Server
1947
+ # instances:` You must specify one database to be exported, and the `fileType`
1948
+ # must be `BAK`.
1176
1949
  # Corresponds to the JSON property `databases`
1177
1950
  # @return [Array<String>]
1178
1951
  attr_accessor :databases
@@ -1187,7 +1960,7 @@ module Google
1187
1960
  # @return [String]
1188
1961
  attr_accessor :kind
1189
1962
 
1190
- # Option for export offload.
1963
+ # Whether to perform a serverless export.
1191
1964
  # Corresponds to the JSON property `offload`
1192
1965
  # @return [Boolean]
1193
1966
  attr_accessor :offload
@@ -1198,6 +1971,11 @@ module Google
1198
1971
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions]
1199
1972
  attr_accessor :sql_export_options
1200
1973
 
1974
+ # Optional. Export parameters specific to SQL Server TDE certificates
1975
+ # Corresponds to the JSON property `tdeExportOptions`
1976
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::TdeExportOptions]
1977
+ attr_accessor :tde_export_options
1978
+
1201
1979
  # The path to the file in Google Cloud Storage where the export will be stored.
1202
1980
  # The URI is in the form `gs://bucketName/fileName`. If the file already exists,
1203
1981
  # the request succeeds, but the operation fails. If `fileType` is `SQL` and the
@@ -1219,6 +1997,7 @@ module Google
1219
1997
  @kind = args[:kind] if args.key?(:kind)
1220
1998
  @offload = args[:offload] if args.key?(:offload)
1221
1999
  @sql_export_options = args[:sql_export_options] if args.key?(:sql_export_options)
2000
+ @tde_export_options = args[:tde_export_options] if args.key?(:tde_export_options)
1222
2001
  @uri = args[:uri] if args.key?(:uri)
1223
2002
  end
1224
2003
 
@@ -1226,6 +2005,41 @@ module Google
1226
2005
  class BakExportOptions
1227
2006
  include Google::Apis::Core::Hashable
1228
2007
 
2008
+ # Type of this bak file will be export, FULL or DIFF, SQL Server only
2009
+ # Corresponds to the JSON property `bakType`
2010
+ # @return [String]
2011
+ attr_accessor :bak_type
2012
+
2013
+ # Deprecated: copy_only is deprecated. Use differential_base instead
2014
+ # Corresponds to the JSON property `copyOnly`
2015
+ # @return [Boolean]
2016
+ attr_accessor :copy_only
2017
+ alias_method :copy_only?, :copy_only
2018
+
2019
+ # Whether or not the backup can be used as a differential base copy_only backup
2020
+ # can not be served as differential base
2021
+ # Corresponds to the JSON property `differentialBase`
2022
+ # @return [Boolean]
2023
+ attr_accessor :differential_base
2024
+ alias_method :differential_base?, :differential_base
2025
+
2026
+ # Optional. The end timestamp when transaction log will be included in the
2027
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
2028
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
2029
+ # until current time will be included. Only applied to Cloud SQL for SQL Server.
2030
+ # Corresponds to the JSON property `exportLogEndTime`
2031
+ # @return [String]
2032
+ attr_accessor :export_log_end_time
2033
+
2034
+ # Optional. The begin timestamp when transaction log will be included in the
2035
+ # export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for
2036
+ # example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs
2037
+ # from the beginning of retention period will be included. Only applied to Cloud
2038
+ # SQL for SQL Server.
2039
+ # Corresponds to the JSON property `exportLogStartTime`
2040
+ # @return [String]
2041
+ attr_accessor :export_log_start_time
2042
+
1229
2043
  # Option for specifying how many stripes to use for the export. If blank, and
1230
2044
  # the value of the striped field is true, the number of stripes is automatically
1231
2045
  # chosen.
@@ -1245,6 +2059,11 @@ module Google
1245
2059
 
1246
2060
  # Update properties of this object
1247
2061
  def update!(**args)
2062
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
2063
+ @copy_only = args[:copy_only] if args.key?(:copy_only)
2064
+ @differential_base = args[:differential_base] if args.key?(:differential_base)
2065
+ @export_log_end_time = args[:export_log_end_time] if args.key?(:export_log_end_time)
2066
+ @export_log_start_time = args[:export_log_start_time] if args.key?(:export_log_start_time)
1248
2067
  @stripe_count = args[:stripe_count] if args.key?(:stripe_count)
1249
2068
  @striped = args[:striped] if args.key?(:striped)
1250
2069
  end
@@ -1305,6 +2124,17 @@ module Google
1305
2124
  # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::MysqlExportOptions]
1306
2125
  attr_accessor :mysql_export_options
1307
2126
 
2127
+ # Optional. Whether or not the export should be parallel.
2128
+ # Corresponds to the JSON property `parallel`
2129
+ # @return [Boolean]
2130
+ attr_accessor :parallel
2131
+ alias_method :parallel?, :parallel
2132
+
2133
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2134
+ # Corresponds to the JSON property `postgresExportOptions`
2135
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::PostgresExportOptions]
2136
+ attr_accessor :postgres_export_options
2137
+
1308
2138
  # Export only schemas.
1309
2139
  # Corresponds to the JSON property `schemaOnly`
1310
2140
  # @return [Boolean]
@@ -1318,6 +2148,11 @@ module Google
1318
2148
  # @return [Array<String>]
1319
2149
  attr_accessor :tables
1320
2150
 
2151
+ # Optional. The number of threads to use for parallel export.
2152
+ # Corresponds to the JSON property `threads`
2153
+ # @return [Fixnum]
2154
+ attr_accessor :threads
2155
+
1321
2156
  def initialize(**args)
1322
2157
  update!(**args)
1323
2158
  end
@@ -1325,8 +2160,11 @@ module Google
1325
2160
  # Update properties of this object
1326
2161
  def update!(**args)
1327
2162
  @mysql_export_options = args[:mysql_export_options] if args.key?(:mysql_export_options)
2163
+ @parallel = args[:parallel] if args.key?(:parallel)
2164
+ @postgres_export_options = args[:postgres_export_options] if args.key?(:postgres_export_options)
1328
2165
  @schema_only = args[:schema_only] if args.key?(:schema_only)
1329
2166
  @tables = args[:tables] if args.key?(:tables)
2167
+ @threads = args[:threads] if args.key?(:threads)
1330
2168
  end
1331
2169
 
1332
2170
  # Options for exporting from MySQL.
@@ -1351,6 +2189,95 @@ module Google
1351
2189
  @master_data = args[:master_data] if args.key?(:master_data)
1352
2190
  end
1353
2191
  end
2192
+
2193
+ # Options for exporting from a Cloud SQL for PostgreSQL instance.
2194
+ class PostgresExportOptions
2195
+ include Google::Apis::Core::Hashable
2196
+
2197
+ # Optional. Use this option to include DROP <object> SQL statements. Use these
2198
+ # statements to delete database objects before running the import operation.
2199
+ # Corresponds to the JSON property `clean`
2200
+ # @return [Boolean]
2201
+ attr_accessor :clean
2202
+ alias_method :clean?, :clean
2203
+
2204
+ # Optional. Option to include an IF EXISTS SQL statement with each DROP
2205
+ # statement produced by clean.
2206
+ # Corresponds to the JSON property `ifExists`
2207
+ # @return [Boolean]
2208
+ attr_accessor :if_exists
2209
+ alias_method :if_exists?, :if_exists
2210
+
2211
+ def initialize(**args)
2212
+ update!(**args)
2213
+ end
2214
+
2215
+ # Update properties of this object
2216
+ def update!(**args)
2217
+ @clean = args[:clean] if args.key?(:clean)
2218
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2219
+ end
2220
+ end
2221
+ end
2222
+
2223
+ # Optional. Export parameters specific to SQL Server TDE certificates
2224
+ class TdeExportOptions
2225
+ include Google::Apis::Core::Hashable
2226
+
2227
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2228
+ # fileName. The instance must have write access to the location. Applicable only
2229
+ # for SQL Server instances.
2230
+ # Corresponds to the JSON property `certificatePath`
2231
+ # @return [String]
2232
+ attr_accessor :certificate_path
2233
+
2234
+ # Required. Certificate name. Applicable only for SQL Server instances.
2235
+ # Corresponds to the JSON property `name`
2236
+ # @return [String]
2237
+ attr_accessor :name
2238
+
2239
+ # Required. Password that encrypts the private key.
2240
+ # Corresponds to the JSON property `privateKeyPassword`
2241
+ # @return [String]
2242
+ attr_accessor :private_key_password
2243
+
2244
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2245
+ # fileName. The instance must have write access to the location. Applicable only
2246
+ # for SQL Server instances.
2247
+ # Corresponds to the JSON property `privateKeyPath`
2248
+ # @return [String]
2249
+ attr_accessor :private_key_path
2250
+
2251
+ def initialize(**args)
2252
+ update!(**args)
2253
+ end
2254
+
2255
+ # Update properties of this object
2256
+ def update!(**args)
2257
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2258
+ @name = args[:name] if args.key?(:name)
2259
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2260
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2261
+ end
2262
+ end
2263
+ end
2264
+
2265
+ # The selected object that Cloud SQL migrates.
2266
+ class ExternalSyncSelectedObject
2267
+ include Google::Apis::Core::Hashable
2268
+
2269
+ # The name of the database that Cloud SQL migrates.
2270
+ # Corresponds to the JSON property `database`
2271
+ # @return [String]
2272
+ attr_accessor :database
2273
+
2274
+ def initialize(**args)
2275
+ update!(**args)
2276
+ end
2277
+
2278
+ # Update properties of this object
2279
+ def update!(**args)
2280
+ @database = args[:database] if args.key?(:database)
1354
2281
  end
1355
2282
  end
1356
2283
 
@@ -1380,6 +2307,33 @@ module Google
1380
2307
  end
1381
2308
  end
1382
2309
 
2310
+ # Config used to determine the final backup settings for the instance.
2311
+ class FinalBackupConfig
2312
+ include Google::Apis::Core::Hashable
2313
+
2314
+ # Whether the final backup is enabled for the instance.
2315
+ # Corresponds to the JSON property `enabled`
2316
+ # @return [Boolean]
2317
+ attr_accessor :enabled
2318
+ alias_method :enabled?, :enabled
2319
+
2320
+ # The number of days to retain the final backup after the instance deletion. The
2321
+ # final backup will be purged at (time_of_instance_deletion + retention_days).
2322
+ # Corresponds to the JSON property `retentionDays`
2323
+ # @return [Fixnum]
2324
+ attr_accessor :retention_days
2325
+
2326
+ def initialize(**args)
2327
+ update!(**args)
2328
+ end
2329
+
2330
+ # Update properties of this object
2331
+ def update!(**args)
2332
+ @enabled = args[:enabled] if args.key?(:enabled)
2333
+ @retention_days = args[:retention_days] if args.key?(:retention_days)
2334
+ end
2335
+ end
2336
+
1383
2337
  # A flag resource.
1384
2338
  class Flag
1385
2339
  include Google::Apis::Core::Hashable
@@ -1406,6 +2360,11 @@ module Google
1406
2360
  # @return [Array<String>]
1407
2361
  attr_accessor :applies_to
1408
2362
 
2363
+ # Scope of flag.
2364
+ # Corresponds to the JSON property `flagScope`
2365
+ # @return [String]
2366
+ attr_accessor :flag_scope
2367
+
1409
2368
  # Whether or not the flag is considered in beta.
1410
2369
  # Corresponds to the JSON property `inBeta`
1411
2370
  # @return [Boolean]
@@ -1433,6 +2392,16 @@ module Google
1433
2392
  # @return [String]
1434
2393
  attr_accessor :name
1435
2394
 
2395
+ # Recommended flag value in integer format for UI display.
2396
+ # Corresponds to the JSON property `recommendedIntValue`
2397
+ # @return [Fixnum]
2398
+ attr_accessor :recommended_int_value
2399
+
2400
+ # Recommended flag value in string format for UI display.
2401
+ # Corresponds to the JSON property `recommendedStringValue`
2402
+ # @return [String]
2403
+ attr_accessor :recommended_string_value
2404
+
1436
2405
  # Indicates whether changing this flag will trigger a database restart. Only
1437
2406
  # applicable to Second Generation instances.
1438
2407
  # Corresponds to the JSON property `requiresRestart`
@@ -1456,11 +2425,14 @@ module Google
1456
2425
  @allowed_int_values = args[:allowed_int_values] if args.key?(:allowed_int_values)
1457
2426
  @allowed_string_values = args[:allowed_string_values] if args.key?(:allowed_string_values)
1458
2427
  @applies_to = args[:applies_to] if args.key?(:applies_to)
2428
+ @flag_scope = args[:flag_scope] if args.key?(:flag_scope)
1459
2429
  @in_beta = args[:in_beta] if args.key?(:in_beta)
1460
2430
  @kind = args[:kind] if args.key?(:kind)
1461
2431
  @max_value = args[:max_value] if args.key?(:max_value)
1462
2432
  @min_value = args[:min_value] if args.key?(:min_value)
1463
2433
  @name = args[:name] if args.key?(:name)
2434
+ @recommended_int_value = args[:recommended_int_value] if args.key?(:recommended_int_value)
2435
+ @recommended_string_value = args[:recommended_string_value] if args.key?(:recommended_string_value)
1464
2436
  @requires_restart = args[:requires_restart] if args.key?(:requires_restart)
1465
2437
  @type = args[:type] if args.key?(:type)
1466
2438
  end
@@ -1491,6 +2463,61 @@ module Google
1491
2463
  end
1492
2464
  end
1493
2465
 
2466
+ # Gemini instance configuration.
2467
+ class GeminiInstanceConfig
2468
+ include Google::Apis::Core::Hashable
2469
+
2470
+ # Output only. Whether the active query is enabled.
2471
+ # Corresponds to the JSON property `activeQueryEnabled`
2472
+ # @return [Boolean]
2473
+ attr_accessor :active_query_enabled
2474
+ alias_method :active_query_enabled?, :active_query_enabled
2475
+
2476
+ # Output only. Whether Gemini is enabled.
2477
+ # Corresponds to the JSON property `entitled`
2478
+ # @return [Boolean]
2479
+ attr_accessor :entitled
2480
+ alias_method :entitled?, :entitled
2481
+
2482
+ # Output only. Whether the flag recommender is enabled.
2483
+ # Corresponds to the JSON property `flagRecommenderEnabled`
2484
+ # @return [Boolean]
2485
+ attr_accessor :flag_recommender_enabled
2486
+ alias_method :flag_recommender_enabled?, :flag_recommender_enabled
2487
+
2488
+ # Output only. Whether the vacuum management is enabled.
2489
+ # Corresponds to the JSON property `googleVacuumMgmtEnabled`
2490
+ # @return [Boolean]
2491
+ attr_accessor :google_vacuum_mgmt_enabled
2492
+ alias_method :google_vacuum_mgmt_enabled?, :google_vacuum_mgmt_enabled
2493
+
2494
+ # Output only. Whether the index advisor is enabled.
2495
+ # Corresponds to the JSON property `indexAdvisorEnabled`
2496
+ # @return [Boolean]
2497
+ attr_accessor :index_advisor_enabled
2498
+ alias_method :index_advisor_enabled?, :index_advisor_enabled
2499
+
2500
+ # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
2501
+ # Corresponds to the JSON property `oomSessionCancelEnabled`
2502
+ # @return [Boolean]
2503
+ attr_accessor :oom_session_cancel_enabled
2504
+ alias_method :oom_session_cancel_enabled?, :oom_session_cancel_enabled
2505
+
2506
+ def initialize(**args)
2507
+ update!(**args)
2508
+ end
2509
+
2510
+ # Update properties of this object
2511
+ def update!(**args)
2512
+ @active_query_enabled = args[:active_query_enabled] if args.key?(:active_query_enabled)
2513
+ @entitled = args[:entitled] if args.key?(:entitled)
2514
+ @flag_recommender_enabled = args[:flag_recommender_enabled] if args.key?(:flag_recommender_enabled)
2515
+ @google_vacuum_mgmt_enabled = args[:google_vacuum_mgmt_enabled] if args.key?(:google_vacuum_mgmt_enabled)
2516
+ @index_advisor_enabled = args[:index_advisor_enabled] if args.key?(:index_advisor_enabled)
2517
+ @oom_session_cancel_enabled = args[:oom_session_cancel_enabled] if args.key?(:oom_session_cancel_enabled)
2518
+ end
2519
+ end
2520
+
1494
2521
  # Ephemeral certificate creation request.
1495
2522
  class GenerateEphemeralCertRequest
1496
2523
  include Google::Apis::Core::Hashable
@@ -1563,8 +2590,10 @@ module Google
1563
2590
 
1564
2591
  # The target database for the import. If `fileType` is `SQL`, this field is
1565
2592
  # 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.
2593
+ # overridden by any database specification in the import file. For entire
2594
+ # instance parallel import operations, the database is overridden by the
2595
+ # database name stored in subdirectory name. If `fileType` is `CSV`, one
2596
+ # database must be specified.
1568
2597
  # Corresponds to the JSON property `database`
1569
2598
  # @return [String]
1570
2599
  attr_accessor :database
@@ -1586,6 +2615,17 @@ module Google
1586
2615
  # @return [String]
1587
2616
  attr_accessor :kind
1588
2617
 
2618
+ # Optional. Options for importing data from SQL statements.
2619
+ # Corresponds to the JSON property `sqlImportOptions`
2620
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions]
2621
+ attr_accessor :sql_import_options
2622
+
2623
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2624
+ # parameters specific to SQL Server TDE certificates
2625
+ # Corresponds to the JSON property `tdeImportOptions`
2626
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::TdeImportOptions]
2627
+ attr_accessor :tde_import_options
2628
+
1589
2629
  # Path to the import file in Cloud Storage, in the form `gs://bucketName/
1590
2630
  # fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`.
1591
2631
  # The instance must have write permissions to the bucket and read access to the
@@ -1606,6 +2646,8 @@ module Google
1606
2646
  @file_type = args[:file_type] if args.key?(:file_type)
1607
2647
  @import_user = args[:import_user] if args.key?(:import_user)
1608
2648
  @kind = args[:kind] if args.key?(:kind)
2649
+ @sql_import_options = args[:sql_import_options] if args.key?(:sql_import_options)
2650
+ @tde_import_options = args[:tde_import_options] if args.key?(:tde_import_options)
1609
2651
  @uri = args[:uri] if args.key?(:uri)
1610
2652
  end
1611
2653
 
@@ -1613,11 +2655,47 @@ module Google
1613
2655
  class BakImportOptions
1614
2656
  include Google::Apis::Core::Hashable
1615
2657
 
2658
+ # Type of the bak content, FULL or DIFF.
2659
+ # Corresponds to the JSON property `bakType`
2660
+ # @return [String]
2661
+ attr_accessor :bak_type
2662
+
1616
2663
  #
1617
2664
  # Corresponds to the JSON property `encryptionOptions`
1618
2665
  # @return [Google::Apis::SqladminV1beta4::ImportContext::BakImportOptions::EncryptionOptions]
1619
2666
  attr_accessor :encryption_options
1620
2667
 
2668
+ # Whether or not the backup importing will restore database with NORECOVERY
2669
+ # option. Applies only to Cloud SQL for SQL Server.
2670
+ # Corresponds to the JSON property `noRecovery`
2671
+ # @return [Boolean]
2672
+ attr_accessor :no_recovery
2673
+ alias_method :no_recovery?, :no_recovery
2674
+
2675
+ # Whether or not the backup importing request will just bring database online
2676
+ # without downloading Bak content only one of "no_recovery" and "recovery_only"
2677
+ # can be true otherwise error will return. Applies only to Cloud SQL for SQL
2678
+ # Server.
2679
+ # Corresponds to the JSON property `recoveryOnly`
2680
+ # @return [Boolean]
2681
+ attr_accessor :recovery_only
2682
+ alias_method :recovery_only?, :recovery_only
2683
+
2684
+ # Optional. The timestamp when the import should stop. This timestamp is in the [
2685
+ # RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-
2686
+ # 01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies
2687
+ # to Cloud SQL for SQL Server only.
2688
+ # Corresponds to the JSON property `stopAt`
2689
+ # @return [String]
2690
+ attr_accessor :stop_at
2691
+
2692
+ # Optional. The marked transaction where the import should stop. This field is
2693
+ # equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server
2694
+ # only.
2695
+ # Corresponds to the JSON property `stopAtMark`
2696
+ # @return [String]
2697
+ attr_accessor :stop_at_mark
2698
+
1621
2699
  # Whether or not the backup set being restored is striped. Applies only to Cloud
1622
2700
  # SQL for SQL Server.
1623
2701
  # Corresponds to the JSON property `striped`
@@ -1631,7 +2709,12 @@ module Google
1631
2709
 
1632
2710
  # Update properties of this object
1633
2711
  def update!(**args)
2712
+ @bak_type = args[:bak_type] if args.key?(:bak_type)
1634
2713
  @encryption_options = args[:encryption_options] if args.key?(:encryption_options)
2714
+ @no_recovery = args[:no_recovery] if args.key?(:no_recovery)
2715
+ @recovery_only = args[:recovery_only] if args.key?(:recovery_only)
2716
+ @stop_at = args[:stop_at] if args.key?(:stop_at)
2717
+ @stop_at_mark = args[:stop_at_mark] if args.key?(:stop_at_mark)
1635
2718
  @striped = args[:striped] if args.key?(:striped)
1636
2719
  end
1637
2720
 
@@ -1646,6 +2729,12 @@ module Google
1646
2729
  # @return [String]
1647
2730
  attr_accessor :cert_path
1648
2731
 
2732
+ # Optional. Whether the imported file remains encrypted.
2733
+ # Corresponds to the JSON property `keepEncrypted`
2734
+ # @return [Boolean]
2735
+ attr_accessor :keep_encrypted
2736
+ alias_method :keep_encrypted?, :keep_encrypted
2737
+
1649
2738
  # Password that encrypts the private key
1650
2739
  # Corresponds to the JSON property `pvkPassword`
1651
2740
  # @return [String]
@@ -1665,6 +2754,7 @@ module Google
1665
2754
  # Update properties of this object
1666
2755
  def update!(**args)
1667
2756
  @cert_path = args[:cert_path] if args.key?(:cert_path)
2757
+ @keep_encrypted = args[:keep_encrypted] if args.key?(:keep_encrypted)
1668
2758
  @pvk_password = args[:pvk_password] if args.key?(:pvk_password)
1669
2759
  @pvk_path = args[:pvk_path] if args.key?(:pvk_path)
1670
2760
  end
@@ -1723,6 +2813,109 @@ module Google
1723
2813
  @table = args[:table] if args.key?(:table)
1724
2814
  end
1725
2815
  end
2816
+
2817
+ # Optional. Options for importing data from SQL statements.
2818
+ class SqlImportOptions
2819
+ include Google::Apis::Core::Hashable
2820
+
2821
+ # Optional. Whether or not the import should be parallel.
2822
+ # Corresponds to the JSON property `parallel`
2823
+ # @return [Boolean]
2824
+ attr_accessor :parallel
2825
+ alias_method :parallel?, :parallel
2826
+
2827
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2828
+ # Corresponds to the JSON property `postgresImportOptions`
2829
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::SqlImportOptions::PostgresImportOptions]
2830
+ attr_accessor :postgres_import_options
2831
+
2832
+ # Optional. The number of threads to use for parallel import.
2833
+ # Corresponds to the JSON property `threads`
2834
+ # @return [Fixnum]
2835
+ attr_accessor :threads
2836
+
2837
+ def initialize(**args)
2838
+ update!(**args)
2839
+ end
2840
+
2841
+ # Update properties of this object
2842
+ def update!(**args)
2843
+ @parallel = args[:parallel] if args.key?(:parallel)
2844
+ @postgres_import_options = args[:postgres_import_options] if args.key?(:postgres_import_options)
2845
+ @threads = args[:threads] if args.key?(:threads)
2846
+ end
2847
+
2848
+ # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
2849
+ class PostgresImportOptions
2850
+ include Google::Apis::Core::Hashable
2851
+
2852
+ # Optional. The --clean flag for the pg_restore utility. This flag applies only
2853
+ # if you enabled Cloud SQL to import files in parallel.
2854
+ # Corresponds to the JSON property `clean`
2855
+ # @return [Boolean]
2856
+ attr_accessor :clean
2857
+ alias_method :clean?, :clean
2858
+
2859
+ # Optional. The --if-exists flag for the pg_restore utility. This flag applies
2860
+ # only if you enabled Cloud SQL to import files in parallel.
2861
+ # Corresponds to the JSON property `ifExists`
2862
+ # @return [Boolean]
2863
+ attr_accessor :if_exists
2864
+ alias_method :if_exists?, :if_exists
2865
+
2866
+ def initialize(**args)
2867
+ update!(**args)
2868
+ end
2869
+
2870
+ # Update properties of this object
2871
+ def update!(**args)
2872
+ @clean = args[:clean] if args.key?(:clean)
2873
+ @if_exists = args[:if_exists] if args.key?(:if_exists)
2874
+ end
2875
+ end
2876
+ end
2877
+
2878
+ # Optional. Import parameters specific to SQL Server .TDE files Import
2879
+ # parameters specific to SQL Server TDE certificates
2880
+ class TdeImportOptions
2881
+ include Google::Apis::Core::Hashable
2882
+
2883
+ # Required. Path to the TDE certificate public key in the form gs://bucketName/
2884
+ # fileName. The instance must have read access to the file. Applicable only for
2885
+ # SQL Server instances.
2886
+ # Corresponds to the JSON property `certificatePath`
2887
+ # @return [String]
2888
+ attr_accessor :certificate_path
2889
+
2890
+ # Required. Certificate name. Applicable only for SQL Server instances.
2891
+ # Corresponds to the JSON property `name`
2892
+ # @return [String]
2893
+ attr_accessor :name
2894
+
2895
+ # Required. Password that encrypts the private key.
2896
+ # Corresponds to the JSON property `privateKeyPassword`
2897
+ # @return [String]
2898
+ attr_accessor :private_key_password
2899
+
2900
+ # Required. Path to the TDE certificate private key in the form gs://bucketName/
2901
+ # fileName. The instance must have read access to the file. Applicable only for
2902
+ # SQL Server instances.
2903
+ # Corresponds to the JSON property `privateKeyPath`
2904
+ # @return [String]
2905
+ attr_accessor :private_key_path
2906
+
2907
+ def initialize(**args)
2908
+ update!(**args)
2909
+ end
2910
+
2911
+ # Update properties of this object
2912
+ def update!(**args)
2913
+ @certificate_path = args[:certificate_path] if args.key?(:certificate_path)
2914
+ @name = args[:name] if args.key?(:name)
2915
+ @private_key_password = args[:private_key_password] if args.key?(:private_key_password)
2916
+ @private_key_path = args[:private_key_path] if args.key?(:private_key_path)
2917
+ end
2918
+ end
1726
2919
  end
1727
2920
 
1728
2921
  # Insights configuration. This specifies when Cloud SQL Insights feature is
@@ -1743,8 +2936,8 @@ module Google
1743
2936
  attr_accessor :query_plans_per_minute
1744
2937
 
1745
2938
  # 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
2939
+ # 4500 bytes. Query lengths greater than this field value will be truncated to
2940
+ # this value. When unset, query length will be the default value. Changing query
1748
2941
  # length will restart the database.
1749
2942
  # Corresponds to the JSON property `queryStringLength`
1750
2943
  # @return [Fixnum]
@@ -1809,6 +3002,25 @@ module Google
1809
3002
  end
1810
3003
  end
1811
3004
 
3005
+ # Request to acquire an SSRS lease for an instance.
3006
+ class InstancesAcquireSsrsLeaseRequest
3007
+ include Google::Apis::Core::Hashable
3008
+
3009
+ # Acquire SSRS lease context.
3010
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
3011
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
3012
+ attr_accessor :acquire_ssrs_lease_context
3013
+
3014
+ def initialize(**args)
3015
+ update!(**args)
3016
+ end
3017
+
3018
+ # Update properties of this object
3019
+ def update!(**args)
3020
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
3021
+ end
3022
+ end
3023
+
1812
3024
  # Database instance clone request.
1813
3025
  class CloneInstancesRequest
1814
3026
  include Google::Apis::Core::Hashable
@@ -1847,6 +3059,27 @@ module Google
1847
3059
  end
1848
3060
  end
1849
3061
 
3062
+ # This request is used to demote an existing standalone instance to be a Cloud
3063
+ # SQL read replica for an external database server.
3064
+ class InstancesDemoteRequest
3065
+ include Google::Apis::Core::Hashable
3066
+
3067
+ # This context is used to demote an existing standalone instance to be a Cloud
3068
+ # SQL read replica for an external database server.
3069
+ # Corresponds to the JSON property `demoteContext`
3070
+ # @return [Google::Apis::SqladminV1beta4::DemoteContext]
3071
+ attr_accessor :demote_context
3072
+
3073
+ def initialize(**args)
3074
+ update!(**args)
3075
+ end
3076
+
3077
+ # Update properties of this object
3078
+ def update!(**args)
3079
+ @demote_context = args[:demote_context] if args.key?(:demote_context)
3080
+ end
3081
+ end
3082
+
1850
3083
  # Database instance export request.
1851
3084
  class ExportInstancesRequest
1852
3085
  include Google::Apis::Core::Hashable
@@ -1904,6 +3137,37 @@ module Google
1904
3137
  end
1905
3138
  end
1906
3139
 
3140
+ # Instances ListEntraIdCertificates response.
3141
+ class InstancesListEntraIdCertificatesResponse
3142
+ include Google::Apis::Core::Hashable
3143
+
3144
+ # The `sha1_fingerprint` of the active certificate from `certs`.
3145
+ # Corresponds to the JSON property `activeVersion`
3146
+ # @return [String]
3147
+ attr_accessor :active_version
3148
+
3149
+ # List of Entra ID certificates for the instance.
3150
+ # Corresponds to the JSON property `certs`
3151
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3152
+ attr_accessor :certs
3153
+
3154
+ # This is always `sql#instancesListEntraIdCertificates`.
3155
+ # Corresponds to the JSON property `kind`
3156
+ # @return [String]
3157
+ attr_accessor :kind
3158
+
3159
+ def initialize(**args)
3160
+ update!(**args)
3161
+ end
3162
+
3163
+ # Update properties of this object
3164
+ def update!(**args)
3165
+ @active_version = args[:active_version] if args.key?(:active_version)
3166
+ @certs = args[:certs] if args.key?(:certs)
3167
+ @kind = args[:kind] if args.key?(:kind)
3168
+ end
3169
+ end
3170
+
1907
3171
  # Database instances list response.
1908
3172
  class ListInstancesResponse
1909
3173
  include Google::Apis::Core::Hashable
@@ -1973,23 +3237,149 @@ module Google
1973
3237
  end
1974
3238
  end
1975
3239
 
3240
+ # Instances ListServerCertificatess response.
3241
+ class InstancesListServerCertificatesResponse
3242
+ include Google::Apis::Core::Hashable
3243
+
3244
+ # The `sha1_fingerprint` of the active certificate from `server_certs`.
3245
+ # Corresponds to the JSON property `activeVersion`
3246
+ # @return [String]
3247
+ attr_accessor :active_version
3248
+
3249
+ # List of server CA certificates for the instance.
3250
+ # Corresponds to the JSON property `caCerts`
3251
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3252
+ attr_accessor :ca_certs
3253
+
3254
+ # This is always `sql#instancesListServerCertificates`.
3255
+ # Corresponds to the JSON property `kind`
3256
+ # @return [String]
3257
+ attr_accessor :kind
3258
+
3259
+ # List of server certificates for the instance, signed by the corresponding CA
3260
+ # from the `ca_certs` list.
3261
+ # Corresponds to the JSON property `serverCerts`
3262
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
3263
+ attr_accessor :server_certs
3264
+
3265
+ def initialize(**args)
3266
+ update!(**args)
3267
+ end
3268
+
3269
+ # Update properties of this object
3270
+ def update!(**args)
3271
+ @active_version = args[:active_version] if args.key?(:active_version)
3272
+ @ca_certs = args[:ca_certs] if args.key?(:ca_certs)
3273
+ @kind = args[:kind] if args.key?(:kind)
3274
+ @server_certs = args[:server_certs] if args.key?(:server_certs)
3275
+ end
3276
+ end
3277
+
3278
+ # Request for Pre-checks for MVU
3279
+ class InstancesPreCheckMajorVersionUpgradeRequest
3280
+ include Google::Apis::Core::Hashable
3281
+
3282
+ # Pre-check major version upgrade context.
3283
+ # Corresponds to the JSON property `preCheckMajorVersionUpgradeContext`
3284
+ # @return [Google::Apis::SqladminV1beta4::PreCheckMajorVersionUpgradeContext]
3285
+ attr_accessor :pre_check_major_version_upgrade_context
3286
+
3287
+ def initialize(**args)
3288
+ update!(**args)
3289
+ end
3290
+
3291
+ # Update properties of this object
3292
+ def update!(**args)
3293
+ @pre_check_major_version_upgrade_context = args[:pre_check_major_version_upgrade_context] if args.key?(:pre_check_major_version_upgrade_context)
3294
+ end
3295
+ end
3296
+
3297
+ # Database Instance reencrypt request.
3298
+ class InstancesReencryptRequest
3299
+ include Google::Apis::Core::Hashable
3300
+
3301
+ # Backup Reencryption Config
3302
+ # Corresponds to the JSON property `backupReencryptionConfig`
3303
+ # @return [Google::Apis::SqladminV1beta4::BackupReencryptionConfig]
3304
+ attr_accessor :backup_reencryption_config
3305
+
3306
+ def initialize(**args)
3307
+ update!(**args)
3308
+ end
3309
+
3310
+ # Update properties of this object
3311
+ def update!(**args)
3312
+ @backup_reencryption_config = args[:backup_reencryption_config] if args.key?(:backup_reencryption_config)
3313
+ end
3314
+ end
3315
+
1976
3316
  # Database instance restore backup request.
1977
3317
  class RestoreInstancesBackupRequest
1978
3318
  include Google::Apis::Core::Hashable
1979
3319
 
3320
+ # The name of the backup that's used to restore a Cloud SQL instance: Format:
3321
+ # projects/`project-id`/backups/`backup-uid`. Only one of restore_backup_context,
3322
+ # backup, backupdr_backup can be passed to the input.
3323
+ # Corresponds to the JSON property `backup`
3324
+ # @return [String]
3325
+ attr_accessor :backup
3326
+
3327
+ # The name of the backup that's used to restore a Cloud SQL instance: Format: "
3328
+ # projects/`project-id`/locations/`location`/backupVaults/`backupvault`/
3329
+ # dataSources/`datasource`/backups/`backup-uid`". Only one of
3330
+ # restore_backup_context, backup, backupdr_backup can be passed to the input.
3331
+ # Corresponds to the JSON property `backupdrBackup`
3332
+ # @return [String]
3333
+ attr_accessor :backupdr_backup
3334
+
1980
3335
  # Database instance restore from backup context. Backup context contains source
1981
3336
  # instance id and project id.
1982
3337
  # Corresponds to the JSON property `restoreBackupContext`
1983
3338
  # @return [Google::Apis::SqladminV1beta4::RestoreBackupContext]
1984
3339
  attr_accessor :restore_backup_context
1985
3340
 
3341
+ # Optional. This field has the same purpose as restore_instance_settings,
3342
+ # changes any instance settings stored in the backup you are restoring from.
3343
+ # With the difference that these fields are cleared in the settings.
3344
+ # Corresponds to the JSON property `restoreInstanceClearOverridesFieldNames`
3345
+ # @return [Array<String>]
3346
+ attr_accessor :restore_instance_clear_overrides_field_names
3347
+
3348
+ # A Cloud SQL instance resource.
3349
+ # Corresponds to the JSON property `restoreInstanceSettings`
3350
+ # @return [Google::Apis::SqladminV1beta4::DatabaseInstance]
3351
+ attr_accessor :restore_instance_settings
3352
+
1986
3353
  def initialize(**args)
1987
3354
  update!(**args)
1988
3355
  end
1989
3356
 
1990
3357
  # Update properties of this object
1991
3358
  def update!(**args)
3359
+ @backup = args[:backup] if args.key?(:backup)
3360
+ @backupdr_backup = args[:backupdr_backup] if args.key?(:backupdr_backup)
1992
3361
  @restore_backup_context = args[:restore_backup_context] if args.key?(:restore_backup_context)
3362
+ @restore_instance_clear_overrides_field_names = args[:restore_instance_clear_overrides_field_names] if args.key?(:restore_instance_clear_overrides_field_names)
3363
+ @restore_instance_settings = args[:restore_instance_settings] if args.key?(:restore_instance_settings)
3364
+ end
3365
+ end
3366
+
3367
+ # Rotate Entra ID Certificate request.
3368
+ class InstancesRotateEntraIdCertificateRequest
3369
+ include Google::Apis::Core::Hashable
3370
+
3371
+ # Instance rotate Entra ID certificate context.
3372
+ # Corresponds to the JSON property `rotateEntraIdCertificateContext`
3373
+ # @return [Google::Apis::SqladminV1beta4::RotateEntraIdCertificateContext]
3374
+ attr_accessor :rotate_entra_id_certificate_context
3375
+
3376
+ def initialize(**args)
3377
+ update!(**args)
3378
+ end
3379
+
3380
+ # Update properties of this object
3381
+ def update!(**args)
3382
+ @rotate_entra_id_certificate_context = args[:rotate_entra_id_certificate_context] if args.key?(:rotate_entra_id_certificate_context)
1993
3383
  end
1994
3384
  end
1995
3385
 
@@ -2012,6 +3402,25 @@ module Google
2012
3402
  end
2013
3403
  end
2014
3404
 
3405
+ # Rotate Server Certificate request.
3406
+ class InstancesRotateServerCertificateRequest
3407
+ include Google::Apis::Core::Hashable
3408
+
3409
+ # Instance rotate server certificate context.
3410
+ # Corresponds to the JSON property `rotateServerCertificateContext`
3411
+ # @return [Google::Apis::SqladminV1beta4::RotateServerCertificateContext]
3412
+ attr_accessor :rotate_server_certificate_context
3413
+
3414
+ def initialize(**args)
3415
+ update!(**args)
3416
+ end
3417
+
3418
+ # Update properties of this object
3419
+ def update!(**args)
3420
+ @rotate_server_certificate_context = args[:rotate_server_certificate_context] if args.key?(:rotate_server_certificate_context)
3421
+ end
3422
+ end
3423
+
2015
3424
  # Instance truncate log request.
2016
3425
  class InstancesTruncateLogRequest
2017
3426
  include Google::Apis::Core::Hashable
@@ -2031,6 +3440,36 @@ module Google
2031
3440
  end
2032
3441
  end
2033
3442
 
3443
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
3444
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
3445
+ # When the start equals the end, the interval is empty (matches no time). When
3446
+ # both start and end are unspecified, the interval matches any time.
3447
+ class Interval
3448
+ include Google::Apis::Core::Hashable
3449
+
3450
+ # Optional. Exclusive end of the interval. If specified, a Timestamp matching
3451
+ # this interval will have to be before the end.
3452
+ # Corresponds to the JSON property `endTime`
3453
+ # @return [String]
3454
+ attr_accessor :end_time
3455
+
3456
+ # Optional. Inclusive start of the interval. If specified, a Timestamp matching
3457
+ # this interval will have to be the same or after the start.
3458
+ # Corresponds to the JSON property `startTime`
3459
+ # @return [String]
3460
+ attr_accessor :start_time
3461
+
3462
+ def initialize(**args)
3463
+ update!(**args)
3464
+ end
3465
+
3466
+ # Update properties of this object
3467
+ def update!(**args)
3468
+ @end_time = args[:end_time] if args.key?(:end_time)
3469
+ @start_time = args[:start_time] if args.key?(:start_time)
3470
+ end
3471
+ end
3472
+
2034
3473
  # IP Management configuration.
2035
3474
  class IpConfiguration
2036
3475
  include Google::Apis::Core::Hashable
@@ -2051,6 +3490,11 @@ module Google
2051
3490
  # @return [Array<Google::Apis::SqladminV1beta4::AclEntry>]
2052
3491
  attr_accessor :authorized_networks
2053
3492
 
3493
+ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
3494
+ # Corresponds to the JSON property `customSubjectAlternativeNames`
3495
+ # @return [Array<String>]
3496
+ attr_accessor :custom_subject_alternative_names
3497
+
2054
3498
  # Controls connectivity to private IP instances from Google services, such as
2055
3499
  # BigQuery.
2056
3500
  # Corresponds to the JSON property `enablePrivatePathForGoogleCloudServices`
@@ -2072,12 +3516,62 @@ module Google
2072
3516
  # @return [String]
2073
3517
  attr_accessor :private_network
2074
3518
 
2075
- # Whether SSL connections over IP are enforced or not.
3519
+ # PSC settings for a Cloud SQL instance.
3520
+ # Corresponds to the JSON property `pscConfig`
3521
+ # @return [Google::Apis::SqladminV1beta4::PscConfig]
3522
+ attr_accessor :psc_config
3523
+
3524
+ # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If
3525
+ # set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/
3526
+ # TLS connections, the client certificate won't be verified. If set to true,
3527
+ # then only allow connections encrypted with SSL/TLS and with valid client
3528
+ # certificates. If you want to enforce SSL/TLS without enforcing the requirement
3529
+ # for valid client certificates, then use the `ssl_mode` flag instead of the
3530
+ # legacy `require_ssl` flag.
2076
3531
  # Corresponds to the JSON property `requireSsl`
2077
3532
  # @return [Boolean]
2078
3533
  attr_accessor :require_ssl
2079
3534
  alias_method :require_ssl?, :require_ssl
2080
3535
 
3536
+ # Specify what type of CA is used for the server certificate.
3537
+ # Corresponds to the JSON property `serverCaMode`
3538
+ # @return [String]
3539
+ attr_accessor :server_ca_mode
3540
+
3541
+ # Optional. The resource name of the server CA pool for an instance with `
3542
+ # CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/`PROJECT`/
3543
+ # locations/`REGION`/caPools/`CA_POOL_ID`
3544
+ # Corresponds to the JSON property `serverCaPool`
3545
+ # @return [String]
3546
+ attr_accessor :server_ca_pool
3547
+
3548
+ # Optional. Controls the automatic server certificate rotation feature. This
3549
+ # feature is disabled by default. When enabled, the server certificate will be
3550
+ # automatically rotated during Cloud SQL scheduled maintenance or self-service
3551
+ # maintenance updates up to six months before it expires. This setting can only
3552
+ # be set if server_ca_mode is either GOOGLE_MANAGED_CAS_CA or
3553
+ # CUSTOMER_MANAGED_CAS_CA.
3554
+ # Corresponds to the JSON property `serverCertificateRotationMode`
3555
+ # @return [String]
3556
+ attr_accessor :server_certificate_rotation_mode
3557
+
3558
+ # Specify how SSL/TLS is enforced in database connections. If you must use the `
3559
+ # require_ssl` flag for backward compatibility, then only the following value
3560
+ # pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=
3561
+ # ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3562
+ # ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=
3563
+ # TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `
3564
+ # ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=
3565
+ # ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority
3566
+ # over the value of `require_ssl`. For example, for the pair `ssl_mode=
3567
+ # ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means
3568
+ # accept only SSL connections, while `require_ssl=false` means accept both non-
3569
+ # SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `
3570
+ # ssl_mode` and accepts only SSL connections.
3571
+ # Corresponds to the JSON property `sslMode`
3572
+ # @return [String]
3573
+ attr_accessor :ssl_mode
3574
+
2081
3575
  def initialize(**args)
2082
3576
  update!(**args)
2083
3577
  end
@@ -2086,14 +3580,20 @@ module Google
2086
3580
  def update!(**args)
2087
3581
  @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
2088
3582
  @authorized_networks = args[:authorized_networks] if args.key?(:authorized_networks)
3583
+ @custom_subject_alternative_names = args[:custom_subject_alternative_names] if args.key?(:custom_subject_alternative_names)
2089
3584
  @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
3585
  @ipv4_enabled = args[:ipv4_enabled] if args.key?(:ipv4_enabled)
2091
3586
  @private_network = args[:private_network] if args.key?(:private_network)
3587
+ @psc_config = args[:psc_config] if args.key?(:psc_config)
2092
3588
  @require_ssl = args[:require_ssl] if args.key?(:require_ssl)
3589
+ @server_ca_mode = args[:server_ca_mode] if args.key?(:server_ca_mode)
3590
+ @server_ca_pool = args[:server_ca_pool] if args.key?(:server_ca_pool)
3591
+ @server_certificate_rotation_mode = args[:server_certificate_rotation_mode] if args.key?(:server_certificate_rotation_mode)
3592
+ @ssl_mode = args[:ssl_mode] if args.key?(:ssl_mode)
2093
3593
  end
2094
3594
  end
2095
3595
 
2096
- # Database instance IP Mapping.
3596
+ # Database instance IP mapping
2097
3597
  class IpMapping
2098
3598
  include Google::Apis::Core::Hashable
2099
3599
 
@@ -2129,25 +3629,59 @@ module Google
2129
3629
  end
2130
3630
  end
2131
3631
 
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
3632
+ # The response payload containing a list of the backups.
3633
+ class ListBackupsResponse
2136
3634
  include Google::Apis::Core::Hashable
2137
3635
 
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]
2142
- attr_accessor :follow_gae_application
3636
+ # A list of backups.
3637
+ # Corresponds to the JSON property `backups`
3638
+ # @return [Array<Google::Apis::SqladminV1beta4::Backup>]
3639
+ attr_accessor :backups
2143
3640
 
2144
- # This is always `sql#locationPreference`.
2145
- # Corresponds to the JSON property `kind`
3641
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
3642
+ # field is omitted, then there aren't subsequent pages.
3643
+ # Corresponds to the JSON property `nextPageToken`
2146
3644
  # @return [String]
2147
- attr_accessor :kind
3645
+ attr_accessor :next_page_token
3646
+
3647
+ # If a region isn't unavailable or if an unknown error occurs, then a warning
3648
+ # message is returned.
3649
+ # Corresponds to the JSON property `warnings`
3650
+ # @return [Array<Google::Apis::SqladminV1beta4::ApiWarning>]
3651
+ attr_accessor :warnings
3652
+
3653
+ def initialize(**args)
3654
+ update!(**args)
3655
+ end
3656
+
3657
+ # Update properties of this object
3658
+ def update!(**args)
3659
+ @backups = args[:backups] if args.key?(:backups)
3660
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3661
+ @warnings = args[:warnings] if args.key?(:warnings)
3662
+ end
3663
+ end
3664
+
3665
+ # Preferred location. This specifies where a Cloud SQL instance is located. Note
3666
+ # that if the preferred location is not available, the instance will be located
3667
+ # as close as possible within the region. Only one location may be specified.
3668
+ class LocationPreference
3669
+ include Google::Apis::Core::Hashable
3670
+
3671
+ # The App Engine application to follow, it must be in the same region as the
3672
+ # Cloud SQL instance. WARNING: Changing this might restart the instance.
3673
+ # Corresponds to the JSON property `followGaeApplication`
3674
+ # @return [String]
3675
+ attr_accessor :follow_gae_application
3676
+
3677
+ # This is always `sql#locationPreference`.
3678
+ # Corresponds to the JSON property `kind`
3679
+ # @return [String]
3680
+ attr_accessor :kind
2148
3681
 
2149
3682
  # The preferred Compute Engine zone for the secondary/failover (for example: us-
2150
- # central1-a, us-central1-b, etc.).
3683
+ # central1-a, us-central1-b, etc.). To disable this field, set it to '
3684
+ # no_secondary_zone'.
2151
3685
  # Corresponds to the JSON property `secondaryZone`
2152
3686
  # @return [String]
2153
3687
  attr_accessor :secondary_zone
@@ -2176,12 +3710,14 @@ module Google
2176
3710
  class MaintenanceWindow
2177
3711
  include Google::Apis::Core::Hashable
2178
3712
 
2179
- # day of week (1-7), starting on Monday.
3713
+ # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `
3714
+ # SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an
3715
+ # integer, 1 to 7, where `1` equals Monday.
2180
3716
  # Corresponds to the JSON property `day`
2181
3717
  # @return [Fixnum]
2182
3718
  attr_accessor :day
2183
3719
 
2184
- # hour of day - 0 to 23.
3720
+ # Hour of day - 0 to 23. Specify in the UTC time zone.
2185
3721
  # Corresponds to the JSON property `hour`
2186
3722
  # @return [Fixnum]
2187
3723
  attr_accessor :hour
@@ -2191,9 +3727,9 @@ module Google
2191
3727
  # @return [String]
2192
3728
  attr_accessor :kind
2193
3729
 
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).
3730
+ # Maintenance timing settings: `canary`, `stable`, or `week5`. For more
3731
+ # information, see [About maintenance on Cloud SQL instances](https://cloud.
3732
+ # google.com/sql/docs/mysql/maintenance).
2197
3733
  # Corresponds to the JSON property `updateTrack`
2198
3734
  # @return [String]
2199
3735
  attr_accessor :update_track
@@ -2211,6 +3747,54 @@ module Google
2211
3747
  end
2212
3748
  end
2213
3749
 
3750
+ # Represents a notice or warning message from the database.
3751
+ class Message
3752
+ include Google::Apis::Core::Hashable
3753
+
3754
+ # The full message string. For PostgreSQL, this is a formatted string that may
3755
+ # include severity, code, and the notice/warning message. For MySQL, this
3756
+ # contains the warning message.
3757
+ # Corresponds to the JSON property `message`
3758
+ # @return [String]
3759
+ attr_accessor :message
3760
+
3761
+ # The severity of the message (e.g., "NOTICE" for PostgreSQL, "WARNING" for
3762
+ # MySQL).
3763
+ # Corresponds to the JSON property `severity`
3764
+ # @return [String]
3765
+ attr_accessor :severity
3766
+
3767
+ def initialize(**args)
3768
+ update!(**args)
3769
+ end
3770
+
3771
+ # Update properties of this object
3772
+ def update!(**args)
3773
+ @message = args[:message] if args.key?(:message)
3774
+ @severity = args[:severity] if args.key?(:severity)
3775
+ end
3776
+ end
3777
+
3778
+ # The additional metadata information regarding the execution of the SQL
3779
+ # statements.
3780
+ class Metadata
3781
+ include Google::Apis::Core::Hashable
3782
+
3783
+ # The time taken to execute the SQL statements.
3784
+ # Corresponds to the JSON property `sqlStatementExecutionTime`
3785
+ # @return [String]
3786
+ attr_accessor :sql_statement_execution_time
3787
+
3788
+ def initialize(**args)
3789
+ update!(**args)
3790
+ end
3791
+
3792
+ # Update properties of this object
3793
+ def update!(**args)
3794
+ @sql_statement_execution_time = args[:sql_statement_execution_time] if args.key?(:sql_statement_execution_time)
3795
+ end
3796
+ end
3797
+
2214
3798
  # Read-replica configuration specific to MySQL databases.
2215
3799
  class MySqlReplicaConfiguration
2216
3800
  include Google::Apis::Core::Hashable
@@ -2225,7 +3809,7 @@ module Google
2225
3809
  # @return [String]
2226
3810
  attr_accessor :client_certificate
2227
3811
 
2228
- # PEM representation of the replica's private key. The corresponsing public key
3812
+ # PEM representation of the replica's private key. The corresponding public key
2229
3813
  # is encoded in the client's certificate.
2230
3814
  # Corresponds to the JSON property `clientKey`
2231
3815
  # @return [String]
@@ -2330,7 +3914,7 @@ module Google
2330
3914
  # @return [String]
2331
3915
  attr_accessor :client_certificate
2332
3916
 
2333
- # PEM representation of the replica's private key. The corresponsing public key
3917
+ # PEM representation of the replica's private key. The corresponding public key
2334
3918
  # is encoded in the client's certificate.
2335
3919
  # Corresponds to the JSON property `clientKey`
2336
3920
  # @return [String]
@@ -2356,11 +3940,22 @@ module Google
2356
3940
  # @return [String]
2357
3941
  attr_accessor :password
2358
3942
 
3943
+ # Optional. A list of objects that the user selects for replication from an
3944
+ # external source instance.
3945
+ # Corresponds to the JSON property `selectedObjects`
3946
+ # @return [Array<Google::Apis::SqladminV1beta4::SelectedObjects>]
3947
+ attr_accessor :selected_objects
3948
+
2359
3949
  # Reference to another Cloud SQL instance.
2360
3950
  # Corresponds to the JSON property `sourceInstance`
2361
3951
  # @return [Google::Apis::SqladminV1beta4::InstanceReference]
2362
3952
  attr_accessor :source_instance
2363
3953
 
3954
+ # Optional. SslOption for replica connection to the on-premises source.
3955
+ # Corresponds to the JSON property `sslOption`
3956
+ # @return [String]
3957
+ attr_accessor :ssl_option
3958
+
2364
3959
  # The username for connecting to on-premises instance.
2365
3960
  # Corresponds to the JSON property `username`
2366
3961
  # @return [String]
@@ -2379,7 +3974,9 @@ module Google
2379
3974
  @host_port = args[:host_port] if args.key?(:host_port)
2380
3975
  @kind = args[:kind] if args.key?(:kind)
2381
3976
  @password = args[:password] if args.key?(:password)
3977
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
2382
3978
  @source_instance = args[:source_instance] if args.key?(:source_instance)
3979
+ @ssl_option = args[:ssl_option] if args.key?(:ssl_option)
2383
3980
  @username = args[:username] if args.key?(:username)
2384
3981
  end
2385
3982
  end
@@ -2390,6 +3987,16 @@ module Google
2390
3987
  class Operation
2391
3988
  include Google::Apis::Core::Hashable
2392
3989
 
3990
+ # Acquire SSRS lease context.
3991
+ # Corresponds to the JSON property `acquireSsrsLeaseContext`
3992
+ # @return [Google::Apis::SqladminV1beta4::AcquireSsrsLeaseContext]
3993
+ attr_accessor :acquire_ssrs_lease_context
3994
+
3995
+ # An Admin API warning message.
3996
+ # Corresponds to the JSON property `apiWarning`
3997
+ # @return [Google::Apis::SqladminV1beta4::ApiWarning]
3998
+ attr_accessor :api_warning
3999
+
2393
4000
  # Backup context.
2394
4001
  # Corresponds to the JSON property `backupContext`
2395
4002
  # @return [Google::Apis::SqladminV1beta4::BackupContext]
@@ -2441,6 +4048,11 @@ module Google
2441
4048
  # @return [String]
2442
4049
  attr_accessor :operation_type
2443
4050
 
4051
+ # Pre-check major version upgrade context.
4052
+ # Corresponds to the JSON property `preCheckMajorVersionUpgradeContext`
4053
+ # @return [Google::Apis::SqladminV1beta4::PreCheckMajorVersionUpgradeContext]
4054
+ attr_accessor :pre_check_major_version_upgrade_context
4055
+
2444
4056
  # The URI of this resource.
2445
4057
  # Corresponds to the JSON property `selfLink`
2446
4058
  # @return [String]
@@ -2457,7 +4069,12 @@ module Google
2457
4069
  # @return [String]
2458
4070
  attr_accessor :status
2459
4071
 
2460
- # Name of the database instance related to this operation.
4072
+ # The sub operation type based on the operation type.
4073
+ # Corresponds to the JSON property `subOperationType`
4074
+ # @return [Google::Apis::SqladminV1beta4::SqlSubOperationType]
4075
+ attr_accessor :sub_operation_type
4076
+
4077
+ # Name of the resource on which this operation runs.
2461
4078
  # Corresponds to the JSON property `targetId`
2462
4079
  # @return [String]
2463
4080
  attr_accessor :target_id
@@ -2483,6 +4100,8 @@ module Google
2483
4100
 
2484
4101
  # Update properties of this object
2485
4102
  def update!(**args)
4103
+ @acquire_ssrs_lease_context = args[:acquire_ssrs_lease_context] if args.key?(:acquire_ssrs_lease_context)
4104
+ @api_warning = args[:api_warning] if args.key?(:api_warning)
2486
4105
  @backup_context = args[:backup_context] if args.key?(:backup_context)
2487
4106
  @end_time = args[:end_time] if args.key?(:end_time)
2488
4107
  @error = args[:error] if args.key?(:error)
@@ -2492,9 +4111,11 @@ module Google
2492
4111
  @kind = args[:kind] if args.key?(:kind)
2493
4112
  @name = args[:name] if args.key?(:name)
2494
4113
  @operation_type = args[:operation_type] if args.key?(:operation_type)
4114
+ @pre_check_major_version_upgrade_context = args[:pre_check_major_version_upgrade_context] if args.key?(:pre_check_major_version_upgrade_context)
2495
4115
  @self_link = args[:self_link] if args.key?(:self_link)
2496
4116
  @start_time = args[:start_time] if args.key?(:start_time)
2497
4117
  @status = args[:status] if args.key?(:status)
4118
+ @sub_operation_type = args[:sub_operation_type] if args.key?(:sub_operation_type)
2498
4119
  @target_id = args[:target_id] if args.key?(:target_id)
2499
4120
  @target_link = args[:target_link] if args.key?(:target_link)
2500
4121
  @target_project = args[:target_project] if args.key?(:target_project)
@@ -2558,6 +4179,65 @@ module Google
2558
4179
  end
2559
4180
  end
2560
4181
 
4182
+ # Represents the metadata of the long-running operation.
4183
+ class OperationMetadata
4184
+ include Google::Apis::Core::Hashable
4185
+
4186
+ # Output only. API version used to start the operation.
4187
+ # Corresponds to the JSON property `apiVersion`
4188
+ # @return [String]
4189
+ attr_accessor :api_version
4190
+
4191
+ # Output only. Identifies whether the user has requested cancellation of the
4192
+ # operation. Operations that have been cancelled successfully have google.
4193
+ # longrunning.Operation.error value with a google.rpc.Status.code of `1`,
4194
+ # corresponding to `Code.CANCELLED`.
4195
+ # Corresponds to the JSON property `cancelRequested`
4196
+ # @return [Boolean]
4197
+ attr_accessor :cancel_requested
4198
+ alias_method :cancel_requested?, :cancel_requested
4199
+
4200
+ # Output only. The time the operation was created.
4201
+ # Corresponds to the JSON property `createTime`
4202
+ # @return [String]
4203
+ attr_accessor :create_time
4204
+
4205
+ # Output only. The time the operation finished running.
4206
+ # Corresponds to the JSON property `endTime`
4207
+ # @return [String]
4208
+ attr_accessor :end_time
4209
+
4210
+ # Output only. Human-readable status of the operation, if any.
4211
+ # Corresponds to the JSON property `statusDetail`
4212
+ # @return [String]
4213
+ attr_accessor :status_detail
4214
+
4215
+ # Output only. Server-defined resource path for the target of the operation.
4216
+ # Corresponds to the JSON property `target`
4217
+ # @return [String]
4218
+ attr_accessor :target
4219
+
4220
+ # Output only. Name of the verb executed by the operation.
4221
+ # Corresponds to the JSON property `verb`
4222
+ # @return [String]
4223
+ attr_accessor :verb
4224
+
4225
+ def initialize(**args)
4226
+ update!(**args)
4227
+ end
4228
+
4229
+ # Update properties of this object
4230
+ def update!(**args)
4231
+ @api_version = args[:api_version] if args.key?(:api_version)
4232
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
4233
+ @create_time = args[:create_time] if args.key?(:create_time)
4234
+ @end_time = args[:end_time] if args.key?(:end_time)
4235
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
4236
+ @target = args[:target] if args.key?(:target)
4237
+ @verb = args[:verb] if args.key?(:verb)
4238
+ end
4239
+ end
4240
+
2561
4241
  # Operations list response.
2562
4242
  class ListOperationsResponse
2563
4243
  include Google::Apis::Core::Hashable
@@ -2616,7 +4296,10 @@ module Google
2616
4296
  end
2617
4297
  end
2618
4298
 
2619
- # Database instance local user password validation policy
4299
+ # Database instance local user password validation policy. This message defines
4300
+ # the password policy for local database users. When enabled, it enforces
4301
+ # constraints on password complexity, length, and reuse. Keep this policy
4302
+ # enabled to help prevent unauthorized access.
2620
4303
  class PasswordValidationPolicy
2621
4304
  include Google::Apis::Core::Hashable
2622
4305
 
@@ -2625,13 +4308,21 @@ module Google
2625
4308
  # @return [String]
2626
4309
  attr_accessor :complexity
2627
4310
 
4311
+ # This field is deprecated and will be removed in a future version of the API.
4312
+ # Corresponds to the JSON property `disallowCompromisedCredentials`
4313
+ # @return [Boolean]
4314
+ attr_accessor :disallow_compromised_credentials
4315
+ alias_method :disallow_compromised_credentials?, :disallow_compromised_credentials
4316
+
2628
4317
  # Disallow username as a part of the password.
2629
4318
  # Corresponds to the JSON property `disallowUsernameSubstring`
2630
4319
  # @return [Boolean]
2631
4320
  attr_accessor :disallow_username_substring
2632
4321
  alias_method :disallow_username_substring?, :disallow_username_substring
2633
4322
 
2634
- # Whether the password policy is enabled or not.
4323
+ # Whether to enable the password policy or not. When enabled, passwords must
4324
+ # meet complexity requirements. Keep this policy enabled to help prevent
4325
+ # unauthorized access. Disabling this policy allows weak passwords.
2635
4326
  # Corresponds to the JSON property `enablePasswordPolicy`
2636
4327
  # @return [Boolean]
2637
4328
  attr_accessor :enable_password_policy
@@ -2660,6 +4351,7 @@ module Google
2660
4351
  # Update properties of this object
2661
4352
  def update!(**args)
2662
4353
  @complexity = args[:complexity] if args.key?(:complexity)
4354
+ @disallow_compromised_credentials = args[:disallow_compromised_credentials] if args.key?(:disallow_compromised_credentials)
2663
4355
  @disallow_username_substring = args[:disallow_username_substring] if args.key?(:disallow_username_substring)
2664
4356
  @enable_password_policy = args[:enable_password_policy] if args.key?(:enable_password_policy)
2665
4357
  @min_length = args[:min_length] if args.key?(:min_length)
@@ -2668,10 +4360,490 @@ module Google
2668
4360
  end
2669
4361
  end
2670
4362
 
4363
+ # Perform disk shrink context.
4364
+ class PerformDiskShrinkContext
4365
+ include Google::Apis::Core::Hashable
4366
+
4367
+ # The target disk shrink size in GigaBytes.
4368
+ # Corresponds to the JSON property `targetSizeGb`
4369
+ # @return [Fixnum]
4370
+ attr_accessor :target_size_gb
4371
+
4372
+ def initialize(**args)
4373
+ update!(**args)
4374
+ end
4375
+
4376
+ # Update properties of this object
4377
+ def update!(**args)
4378
+ @target_size_gb = args[:target_size_gb] if args.key?(:target_size_gb)
4379
+ end
4380
+ end
4381
+
4382
+ # Performance Capture configuration.
4383
+ class PerformanceCaptureConfig
4384
+ include Google::Apis::Core::Hashable
4385
+
4386
+ # Optional. Enable or disable the Performance Capture.
4387
+ # Corresponds to the JSON property `enabled`
4388
+ # @return [Boolean]
4389
+ attr_accessor :enabled
4390
+ alias_method :enabled?, :enabled
4391
+
4392
+ # Optional. The minimum number of consecutive readings above threshold that
4393
+ # triggers instance state capture.
4394
+ # Corresponds to the JSON property `probeThreshold`
4395
+ # @return [Fixnum]
4396
+ attr_accessor :probe_threshold
4397
+
4398
+ # Optional. The time interval in seconds between any two probes.
4399
+ # Corresponds to the JSON property `probingIntervalSeconds`
4400
+ # @return [Fixnum]
4401
+ attr_accessor :probing_interval_seconds
4402
+
4403
+ # Optional. The minimum number of server threads running to trigger the capture
4404
+ # on primary.
4405
+ # Corresponds to the JSON property `runningThreadsThreshold`
4406
+ # @return [Fixnum]
4407
+ attr_accessor :running_threads_threshold
4408
+
4409
+ # Optional. The minimum number of seconds replica must be lagging behind primary
4410
+ # to trigger capture on replica.
4411
+ # Corresponds to the JSON property `secondsBehindSourceThreshold`
4412
+ # @return [Fixnum]
4413
+ attr_accessor :seconds_behind_source_threshold
4414
+
4415
+ # Optional. The amount of time in seconds that a transaction needs to have been
4416
+ # open before the watcher starts recording it.
4417
+ # Corresponds to the JSON property `transactionDurationThreshold`
4418
+ # @return [Fixnum]
4419
+ attr_accessor :transaction_duration_threshold
4420
+
4421
+ def initialize(**args)
4422
+ update!(**args)
4423
+ end
4424
+
4425
+ # Update properties of this object
4426
+ def update!(**args)
4427
+ @enabled = args[:enabled] if args.key?(:enabled)
4428
+ @probe_threshold = args[:probe_threshold] if args.key?(:probe_threshold)
4429
+ @probing_interval_seconds = args[:probing_interval_seconds] if args.key?(:probing_interval_seconds)
4430
+ @running_threads_threshold = args[:running_threads_threshold] if args.key?(:running_threads_threshold)
4431
+ @seconds_behind_source_threshold = args[:seconds_behind_source_threshold] if args.key?(:seconds_behind_source_threshold)
4432
+ @transaction_duration_threshold = args[:transaction_duration_threshold] if args.key?(:transaction_duration_threshold)
4433
+ end
4434
+ end
4435
+
4436
+ # Context to perform a point-in-time restore of an instance managed by Backup
4437
+ # and Disaster Recovery (DR) Service.
4438
+ class PointInTimeRestoreContext
4439
+ include Google::Apis::Core::Hashable
4440
+
4441
+ # Optional. The name of the allocated IP range for the internal IP Cloud SQL
4442
+ # instance. For example: "google-managed-services-default". If you set this,
4443
+ # then Cloud SQL creates the IP address for the cloned instance in the allocated
4444
+ # range. This range must comply with [RFC 1035](https://tools.ietf.org/html/
4445
+ # rfc1035) standards. Specifically, the name must be 1-63 characters long and
4446
+ # match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future
4447
+ # use.
4448
+ # Corresponds to the JSON property `allocatedIpRange`
4449
+ # @return [String]
4450
+ attr_accessor :allocated_ip_range
4451
+
4452
+ # The Backup and Disaster Recovery (DR) Service Datasource URI. Format: projects/
4453
+ # `project`/locations/`region`/backupVaults/`backupvault`/dataSources/`
4454
+ # datasource`.
4455
+ # Corresponds to the JSON property `datasource`
4456
+ # @return [String]
4457
+ attr_accessor :datasource
4458
+
4459
+ # Required. The date and time to which you want to restore the instance.
4460
+ # Corresponds to the JSON property `pointInTime`
4461
+ # @return [String]
4462
+ attr_accessor :point_in_time
4463
+
4464
+ # Optional. Point-in-time recovery of a regional instance in the specified zones.
4465
+ # If not specified, clone to the same secondary zone as the source instance.
4466
+ # This value cannot be the same as the preferred_zone field.
4467
+ # Corresponds to the JSON property `preferredSecondaryZone`
4468
+ # @return [String]
4469
+ attr_accessor :preferred_secondary_zone
4470
+
4471
+ # Optional. Point-in-time recovery of an instance to the specified zone. If no
4472
+ # zone is specified, then clone to the same primary zone as the source instance.
4473
+ # Corresponds to the JSON property `preferredZone`
4474
+ # @return [String]
4475
+ attr_accessor :preferred_zone
4476
+
4477
+ # Optional. The resource link for the VPC network from which the Cloud SQL
4478
+ # instance is accessible for private IP. For example, `/projects/myProject/
4479
+ # global/networks/default`.
4480
+ # Corresponds to the JSON property `privateNetwork`
4481
+ # @return [String]
4482
+ attr_accessor :private_network
4483
+
4484
+ # Target instance name.
4485
+ # Corresponds to the JSON property `targetInstance`
4486
+ # @return [String]
4487
+ attr_accessor :target_instance
4488
+
4489
+ def initialize(**args)
4490
+ update!(**args)
4491
+ end
4492
+
4493
+ # Update properties of this object
4494
+ def update!(**args)
4495
+ @allocated_ip_range = args[:allocated_ip_range] if args.key?(:allocated_ip_range)
4496
+ @datasource = args[:datasource] if args.key?(:datasource)
4497
+ @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
4498
+ @preferred_secondary_zone = args[:preferred_secondary_zone] if args.key?(:preferred_secondary_zone)
4499
+ @preferred_zone = args[:preferred_zone] if args.key?(:preferred_zone)
4500
+ @private_network = args[:private_network] if args.key?(:private_network)
4501
+ @target_instance = args[:target_instance] if args.key?(:target_instance)
4502
+ end
4503
+ end
4504
+
4505
+ # Details of a single read pool node of a read pool.
4506
+ class PoolNodeConfig
4507
+ include Google::Apis::Core::Hashable
4508
+
4509
+ # Output only. The DNS name of the read pool node.
4510
+ # Corresponds to the JSON property `dnsName`
4511
+ # @return [String]
4512
+ attr_accessor :dns_name
4513
+
4514
+ # Output only. The list of DNS names used by this read pool node.
4515
+ # Corresponds to the JSON property `dnsNames`
4516
+ # @return [Array<Google::Apis::SqladminV1beta4::DnsNameMapping>]
4517
+ attr_accessor :dns_names
4518
+
4519
+ # Output only. The zone of the read pool node.
4520
+ # Corresponds to the JSON property `gceZone`
4521
+ # @return [String]
4522
+ attr_accessor :gce_zone
4523
+
4524
+ # Output only. Mappings containing IP addresses that can be used to connect to
4525
+ # the read pool node.
4526
+ # Corresponds to the JSON property `ipAddresses`
4527
+ # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
4528
+ attr_accessor :ip_addresses
4529
+
4530
+ # Output only. The name of the read pool node, to be used for retrieving metrics
4531
+ # and logs.
4532
+ # Corresponds to the JSON property `name`
4533
+ # @return [String]
4534
+ attr_accessor :name
4535
+
4536
+ # Output only. The list of settings for requested automatically-setup Private
4537
+ # Service Connect (PSC) consumer endpoints that can be used to connect to this
4538
+ # read pool node.
4539
+ # Corresponds to the JSON property `pscAutoConnections`
4540
+ # @return [Array<Google::Apis::SqladminV1beta4::PscAutoConnectionConfig>]
4541
+ attr_accessor :psc_auto_connections
4542
+
4543
+ # Output only. The Private Service Connect (PSC) service attachment of the read
4544
+ # pool node.
4545
+ # Corresponds to the JSON property `pscServiceAttachmentLink`
4546
+ # @return [String]
4547
+ attr_accessor :psc_service_attachment_link
4548
+
4549
+ # Output only. The current state of the read pool node.
4550
+ # Corresponds to the JSON property `state`
4551
+ # @return [String]
4552
+ attr_accessor :state
4553
+
4554
+ def initialize(**args)
4555
+ update!(**args)
4556
+ end
4557
+
4558
+ # Update properties of this object
4559
+ def update!(**args)
4560
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
4561
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
4562
+ @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
4563
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
4564
+ @name = args[:name] if args.key?(:name)
4565
+ @psc_auto_connections = args[:psc_auto_connections] if args.key?(:psc_auto_connections)
4566
+ @psc_service_attachment_link = args[:psc_service_attachment_link] if args.key?(:psc_service_attachment_link)
4567
+ @state = args[:state] if args.key?(:state)
4568
+ end
4569
+ end
4570
+
4571
+ # Pre-check major version upgrade context.
4572
+ class PreCheckMajorVersionUpgradeContext
4573
+ include Google::Apis::Core::Hashable
4574
+
4575
+ # Optional. This is always `sql#preCheckMajorVersionUpgradeContext`.
4576
+ # Corresponds to the JSON property `kind`
4577
+ # @return [String]
4578
+ attr_accessor :kind
4579
+
4580
+ # Output only. The responses from the precheck operation.
4581
+ # Corresponds to the JSON property `preCheckResponse`
4582
+ # @return [Array<Google::Apis::SqladminV1beta4::PreCheckResponse>]
4583
+ attr_accessor :pre_check_response
4584
+
4585
+ # Required. The target database version to upgrade to.
4586
+ # Corresponds to the JSON property `targetDatabaseVersion`
4587
+ # @return [String]
4588
+ attr_accessor :target_database_version
4589
+
4590
+ def initialize(**args)
4591
+ update!(**args)
4592
+ end
4593
+
4594
+ # Update properties of this object
4595
+ def update!(**args)
4596
+ @kind = args[:kind] if args.key?(:kind)
4597
+ @pre_check_response = args[:pre_check_response] if args.key?(:pre_check_response)
4598
+ @target_database_version = args[:target_database_version] if args.key?(:target_database_version)
4599
+ end
4600
+ end
4601
+
4602
+ # Structured PreCheckResponse containing message, type, and required actions.
4603
+ class PreCheckResponse
4604
+ include Google::Apis::Core::Hashable
4605
+
4606
+ # The actions that the user needs to take. Use repeated for multiple actions.
4607
+ # Corresponds to the JSON property `actionsRequired`
4608
+ # @return [Array<String>]
4609
+ attr_accessor :actions_required
4610
+
4611
+ # The message to be displayed to the user.
4612
+ # Corresponds to the JSON property `message`
4613
+ # @return [String]
4614
+ attr_accessor :message
4615
+
4616
+ # The type of message whether it is an info, warning, or error.
4617
+ # Corresponds to the JSON property `messageType`
4618
+ # @return [String]
4619
+ attr_accessor :message_type
4620
+
4621
+ def initialize(**args)
4622
+ update!(**args)
4623
+ end
4624
+
4625
+ # Update properties of this object
4626
+ def update!(**args)
4627
+ @actions_required = args[:actions_required] if args.key?(:actions_required)
4628
+ @message = args[:message] if args.key?(:message)
4629
+ @message_type = args[:message_type] if args.key?(:message_type)
4630
+ end
4631
+ end
4632
+
4633
+ # Settings for an automatically-setup Private Service Connect consumer endpoint
4634
+ # that is used to connect to a Cloud SQL instance.
4635
+ class PscAutoConnectionConfig
4636
+ include Google::Apis::Core::Hashable
4637
+
4638
+ # Optional. The consumer network of this consumer endpoint. This must be a
4639
+ # resource path that includes both the host project and the network name. For
4640
+ # example, `projects/project1/global/networks/network1`. The consumer host
4641
+ # project of this network might be different from the consumer service project.
4642
+ # Corresponds to the JSON property `consumerNetwork`
4643
+ # @return [String]
4644
+ attr_accessor :consumer_network
4645
+
4646
+ # The connection policy status of the consumer network.
4647
+ # Corresponds to the JSON property `consumerNetworkStatus`
4648
+ # @return [String]
4649
+ attr_accessor :consumer_network_status
4650
+
4651
+ # Optional. This is the project ID of consumer service project of this consumer
4652
+ # endpoint. Optional. This is only applicable if consumer_network is a shared
4653
+ # vpc network.
4654
+ # Corresponds to the JSON property `consumerProject`
4655
+ # @return [String]
4656
+ attr_accessor :consumer_project
4657
+
4658
+ # The IP address of the consumer endpoint.
4659
+ # Corresponds to the JSON property `ipAddress`
4660
+ # @return [String]
4661
+ attr_accessor :ip_address
4662
+
4663
+ # The connection status of the consumer endpoint.
4664
+ # Corresponds to the JSON property `status`
4665
+ # @return [String]
4666
+ attr_accessor :status
4667
+
4668
+ def initialize(**args)
4669
+ update!(**args)
4670
+ end
4671
+
4672
+ # Update properties of this object
4673
+ def update!(**args)
4674
+ @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
4675
+ @consumer_network_status = args[:consumer_network_status] if args.key?(:consumer_network_status)
4676
+ @consumer_project = args[:consumer_project] if args.key?(:consumer_project)
4677
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
4678
+ @status = args[:status] if args.key?(:status)
4679
+ end
4680
+ end
4681
+
4682
+ # PSC settings for a Cloud SQL instance.
4683
+ class PscConfig
4684
+ include Google::Apis::Core::Hashable
4685
+
4686
+ # Optional. The list of consumer projects that are allow-listed for PSC
4687
+ # connections to this instance. This instance can be connected to with PSC from
4688
+ # any network in these projects. Each consumer project in this list may be
4689
+ # represented by a project number (numeric) or by a project id (alphanumeric).
4690
+ # Corresponds to the JSON property `allowedConsumerProjects`
4691
+ # @return [Array<String>]
4692
+ attr_accessor :allowed_consumer_projects
4693
+
4694
+ # Optional. The network attachment of the consumer network that the Private
4695
+ # Service Connect enabled Cloud SQL instance is authorized to connect via PSC
4696
+ # interface. format: projects/PROJECT/regions/REGION/networkAttachments/ID
4697
+ # Corresponds to the JSON property `networkAttachmentUri`
4698
+ # @return [String]
4699
+ attr_accessor :network_attachment_uri
4700
+
4701
+ # Optional. The list of settings for requested Private Service Connect consumer
4702
+ # endpoints that can be used to connect to this Cloud SQL instance.
4703
+ # Corresponds to the JSON property `pscAutoConnections`
4704
+ # @return [Array<Google::Apis::SqladminV1beta4::PscAutoConnectionConfig>]
4705
+ attr_accessor :psc_auto_connections
4706
+
4707
+ # Whether PSC connectivity is enabled for this instance.
4708
+ # Corresponds to the JSON property `pscEnabled`
4709
+ # @return [Boolean]
4710
+ attr_accessor :psc_enabled
4711
+ alias_method :psc_enabled?, :psc_enabled
4712
+
4713
+ def initialize(**args)
4714
+ update!(**args)
4715
+ end
4716
+
4717
+ # Update properties of this object
4718
+ def update!(**args)
4719
+ @allowed_consumer_projects = args[:allowed_consumer_projects] if args.key?(:allowed_consumer_projects)
4720
+ @network_attachment_uri = args[:network_attachment_uri] if args.key?(:network_attachment_uri)
4721
+ @psc_auto_connections = args[:psc_auto_connections] if args.key?(:psc_auto_connections)
4722
+ @psc_enabled = args[:psc_enabled] if args.key?(:psc_enabled)
4723
+ end
4724
+ end
4725
+
4726
+ # QueryResult contains the result of executing a single SQL statement.
4727
+ class QueryResult
4728
+ include Google::Apis::Core::Hashable
4729
+
4730
+ # List of columns included in the result. This also includes the data type of
4731
+ # the column.
4732
+ # Corresponds to the JSON property `columns`
4733
+ # @return [Array<Google::Apis::SqladminV1beta4::Column>]
4734
+ attr_accessor :columns
4735
+
4736
+ # Message related to the SQL execution result.
4737
+ # Corresponds to the JSON property `message`
4738
+ # @return [String]
4739
+ attr_accessor :message
4740
+
4741
+ # Set to true if the SQL execution's result is truncated due to size limits or
4742
+ # an error retrieving results.
4743
+ # Corresponds to the JSON property `partialResult`
4744
+ # @return [Boolean]
4745
+ attr_accessor :partial_result
4746
+ alias_method :partial_result?, :partial_result
4747
+
4748
+ # Rows returned by the SQL statement.
4749
+ # Corresponds to the JSON property `rows`
4750
+ # @return [Array<Google::Apis::SqladminV1beta4::Row>]
4751
+ attr_accessor :rows
4752
+
4753
+ # The `Status` type defines a logical error model that is suitable for different
4754
+ # programming environments, including REST APIs and RPC APIs. It is used by [
4755
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
4756
+ # data: error code, error message, and error details. You can find out more
4757
+ # about this error model and how to work with it in the [API Design Guide](https:
4758
+ # //cloud.google.com/apis/design/errors).
4759
+ # Corresponds to the JSON property `status`
4760
+ # @return [Google::Apis::SqladminV1beta4::Status]
4761
+ attr_accessor :status
4762
+
4763
+ def initialize(**args)
4764
+ update!(**args)
4765
+ end
4766
+
4767
+ # Update properties of this object
4768
+ def update!(**args)
4769
+ @columns = args[:columns] if args.key?(:columns)
4770
+ @message = args[:message] if args.key?(:message)
4771
+ @partial_result = args[:partial_result] if args.key?(:partial_result)
4772
+ @rows = args[:rows] if args.key?(:rows)
4773
+ @status = args[:status] if args.key?(:status)
4774
+ end
4775
+ end
4776
+
4777
+ # The read pool auto-scale configuration.
4778
+ class ReadPoolAutoScaleConfig
4779
+ include Google::Apis::Core::Hashable
4780
+
4781
+ # Indicates whether read pool auto scaling supports scale in operations (
4782
+ # removing nodes).
4783
+ # Corresponds to the JSON property `disableScaleIn`
4784
+ # @return [Boolean]
4785
+ attr_accessor :disable_scale_in
4786
+ alias_method :disable_scale_in?, :disable_scale_in
4787
+
4788
+ # Indicates whether read pool auto scaling is enabled.
4789
+ # Corresponds to the JSON property `enabled`
4790
+ # @return [Boolean]
4791
+ attr_accessor :enabled
4792
+ alias_method :enabled?, :enabled
4793
+
4794
+ # Maximum number of read pool nodes to be maintained.
4795
+ # Corresponds to the JSON property `maxNodeCount`
4796
+ # @return [Fixnum]
4797
+ attr_accessor :max_node_count
4798
+
4799
+ # Minimum number of read pool nodes to be maintained.
4800
+ # Corresponds to the JSON property `minNodeCount`
4801
+ # @return [Fixnum]
4802
+ attr_accessor :min_node_count
4803
+
4804
+ # The cooldown period for scale in operations.
4805
+ # Corresponds to the JSON property `scaleInCooldownSeconds`
4806
+ # @return [Fixnum]
4807
+ attr_accessor :scale_in_cooldown_seconds
4808
+
4809
+ # The cooldown period for scale out operations.
4810
+ # Corresponds to the JSON property `scaleOutCooldownSeconds`
4811
+ # @return [Fixnum]
4812
+ attr_accessor :scale_out_cooldown_seconds
4813
+
4814
+ # Optional. Target metrics for read pool auto scaling.
4815
+ # Corresponds to the JSON property `targetMetrics`
4816
+ # @return [Array<Google::Apis::SqladminV1beta4::TargetMetric>]
4817
+ attr_accessor :target_metrics
4818
+
4819
+ def initialize(**args)
4820
+ update!(**args)
4821
+ end
4822
+
4823
+ # Update properties of this object
4824
+ def update!(**args)
4825
+ @disable_scale_in = args[:disable_scale_in] if args.key?(:disable_scale_in)
4826
+ @enabled = args[:enabled] if args.key?(:enabled)
4827
+ @max_node_count = args[:max_node_count] if args.key?(:max_node_count)
4828
+ @min_node_count = args[:min_node_count] if args.key?(:min_node_count)
4829
+ @scale_in_cooldown_seconds = args[:scale_in_cooldown_seconds] if args.key?(:scale_in_cooldown_seconds)
4830
+ @scale_out_cooldown_seconds = args[:scale_out_cooldown_seconds] if args.key?(:scale_out_cooldown_seconds)
4831
+ @target_metrics = args[:target_metrics] if args.key?(:target_metrics)
4832
+ end
4833
+ end
4834
+
2671
4835
  # Read-replica configuration for connecting to the primary instance.
2672
4836
  class ReplicaConfiguration
2673
4837
  include Google::Apis::Core::Hashable
2674
4838
 
4839
+ # Optional. Specifies if a SQL Server replica is a cascadable replica. A
4840
+ # cascadable replica is a SQL Server cross region replica that supports replica(
4841
+ # s) under it.
4842
+ # Corresponds to the JSON property `cascadableReplica`
4843
+ # @return [Boolean]
4844
+ attr_accessor :cascadable_replica
4845
+ alias_method :cascadable_replica?, :cascadable_replica
4846
+
2675
4847
  # Specifies if the replica is the failover target. If the field is set to `true`
2676
4848
  # the replica will be designated as a failover replica. In case the primary
2677
4849
  # instance fails, the replica instance will be promoted as the new primary
@@ -2698,12 +4870,59 @@ module Google
2698
4870
 
2699
4871
  # Update properties of this object
2700
4872
  def update!(**args)
4873
+ @cascadable_replica = args[:cascadable_replica] if args.key?(:cascadable_replica)
2701
4874
  @failover_target = args[:failover_target] if args.key?(:failover_target)
2702
4875
  @kind = args[:kind] if args.key?(:kind)
2703
4876
  @mysql_replica_configuration = args[:mysql_replica_configuration] if args.key?(:mysql_replica_configuration)
2704
4877
  end
2705
4878
  end
2706
4879
 
4880
+ # A primary instance and disaster recovery (DR) replica pair. A DR replica is a
4881
+ # cross-region replica that you designate for failover in the event that the
4882
+ # primary instance has regional failure. Applicable to MySQL and PostgreSQL.
4883
+ class ReplicationCluster
4884
+ include Google::Apis::Core::Hashable
4885
+
4886
+ # Output only. Read-only field that indicates whether the replica is a DR
4887
+ # replica. This field is not set if the instance is a primary instance.
4888
+ # Corresponds to the JSON property `drReplica`
4889
+ # @return [Boolean]
4890
+ attr_accessor :dr_replica
4891
+ alias_method :dr_replica?, :dr_replica
4892
+
4893
+ # Optional. If the instance is a primary instance, then this field identifies
4894
+ # the disaster recovery (DR) replica. A DR replica is an optional configuration
4895
+ # for Enterprise Plus edition instances. If the instance is a read replica, then
4896
+ # the field is not set. Set this field to a replica name to designate a DR
4897
+ # replica for a primary instance. Remove the replica name to remove the DR
4898
+ # replica designation.
4899
+ # Corresponds to the JSON property `failoverDrReplicaName`
4900
+ # @return [String]
4901
+ attr_accessor :failover_dr_replica_name
4902
+
4903
+ # Output only. If set, this field indicates this instance has a private service
4904
+ # access (PSA) DNS endpoint that is pointing to the primary instance of the
4905
+ # cluster. If this instance is the primary, then the DNS endpoint points to this
4906
+ # instance. After a switchover or replica failover operation, this DNS endpoint
4907
+ # points to the promoted instance. This is a read-only field, returned to the
4908
+ # user as information. This field can exist even if a standalone instance doesn'
4909
+ # t have a DR replica yet or the DR replica is deleted.
4910
+ # Corresponds to the JSON property `psaWriteEndpoint`
4911
+ # @return [String]
4912
+ attr_accessor :psa_write_endpoint
4913
+
4914
+ def initialize(**args)
4915
+ update!(**args)
4916
+ end
4917
+
4918
+ # Update properties of this object
4919
+ def update!(**args)
4920
+ @dr_replica = args[:dr_replica] if args.key?(:dr_replica)
4921
+ @failover_dr_replica_name = args[:failover_dr_replica_name] if args.key?(:failover_dr_replica_name)
4922
+ @psa_write_endpoint = args[:psa_write_endpoint] if args.key?(:psa_write_endpoint)
4923
+ end
4924
+ end
4925
+
2707
4926
  #
2708
4927
  class Reschedule
2709
4928
  include Google::Apis::Core::Hashable
@@ -2762,27 +4981,121 @@ module Google
2762
4981
 
2763
4982
  # Update properties of this object
2764
4983
  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)
4984
+ @backup_run_id = args[:backup_run_id] if args.key?(:backup_run_id)
4985
+ @instance_id = args[:instance_id] if args.key?(:instance_id)
4986
+ @kind = args[:kind] if args.key?(:kind)
4987
+ @project = args[:project] if args.key?(:project)
4988
+ end
4989
+ end
4990
+
4991
+ # Instance rotate Entra ID certificate context.
4992
+ class RotateEntraIdCertificateContext
4993
+ include Google::Apis::Core::Hashable
4994
+
4995
+ # Optional. This is always `sql#rotateEntraIdCertificateContext`.
4996
+ # Corresponds to the JSON property `kind`
4997
+ # @return [String]
4998
+ attr_accessor :kind
4999
+
5000
+ # Optional. The fingerprint of the next version to be rotated to. If left
5001
+ # unspecified, will be rotated to the most recently added Entra ID certificate
5002
+ # version.
5003
+ # Corresponds to the JSON property `nextVersion`
5004
+ # @return [String]
5005
+ attr_accessor :next_version
5006
+
5007
+ def initialize(**args)
5008
+ update!(**args)
5009
+ end
5010
+
5011
+ # Update properties of this object
5012
+ def update!(**args)
5013
+ @kind = args[:kind] if args.key?(:kind)
5014
+ @next_version = args[:next_version] if args.key?(:next_version)
5015
+ end
5016
+ end
5017
+
5018
+ # Instance rotate server CA context.
5019
+ class RotateServerCaContext
5020
+ include Google::Apis::Core::Hashable
5021
+
5022
+ # This is always `sql#rotateServerCaContext`.
5023
+ # Corresponds to the JSON property `kind`
5024
+ # @return [String]
5025
+ attr_accessor :kind
5026
+
5027
+ # The fingerprint of the next version to be rotated to. If left unspecified,
5028
+ # will be rotated to the most recently added server CA version.
5029
+ # Corresponds to the JSON property `nextVersion`
5030
+ # @return [String]
5031
+ attr_accessor :next_version
5032
+
5033
+ def initialize(**args)
5034
+ update!(**args)
5035
+ end
5036
+
5037
+ # Update properties of this object
5038
+ def update!(**args)
5039
+ @kind = args[:kind] if args.key?(:kind)
5040
+ @next_version = args[:next_version] if args.key?(:next_version)
5041
+ end
5042
+ end
5043
+
5044
+ # Instance rotate server certificate context.
5045
+ class RotateServerCertificateContext
5046
+ include Google::Apis::Core::Hashable
5047
+
5048
+ # Optional. This is always `sql#rotateServerCertificateContext`.
5049
+ # Corresponds to the JSON property `kind`
5050
+ # @return [String]
5051
+ attr_accessor :kind
5052
+
5053
+ # Optional. The fingerprint of the next version to be rotated to. If left
5054
+ # unspecified, will be rotated to the most recently added server certificate
5055
+ # version.
5056
+ # Corresponds to the JSON property `nextVersion`
5057
+ # @return [String]
5058
+ attr_accessor :next_version
5059
+
5060
+ def initialize(**args)
5061
+ update!(**args)
5062
+ end
5063
+
5064
+ # Update properties of this object
5065
+ def update!(**args)
5066
+ @kind = args[:kind] if args.key?(:kind)
5067
+ @next_version = args[:next_version] if args.key?(:next_version)
5068
+ end
5069
+ end
5070
+
5071
+ # Contains the values for a row.
5072
+ class Row
5073
+ include Google::Apis::Core::Hashable
5074
+
5075
+ # The values for the row.
5076
+ # Corresponds to the JSON property `values`
5077
+ # @return [Array<Google::Apis::SqladminV1beta4::Value>]
5078
+ attr_accessor :values
5079
+
5080
+ def initialize(**args)
5081
+ update!(**args)
5082
+ end
5083
+
5084
+ # Update properties of this object
5085
+ def update!(**args)
5086
+ @values = args[:values] if args.key?(:values)
2769
5087
  end
2770
5088
  end
2771
5089
 
2772
- # Instance rotate server CA context.
2773
- class RotateServerCaContext
5090
+ # A list of objects that the user selects for replication from an external
5091
+ # source instance.
5092
+ class SelectedObjects
2774
5093
  include Google::Apis::Core::Hashable
2775
5094
 
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`
5095
+ # Required. The name of the database to migrate.
5096
+ # Corresponds to the JSON property `database`
2784
5097
  # @return [String]
2785
- attr_accessor :next_version
5098
+ attr_accessor :database
2786
5099
 
2787
5100
  def initialize(**args)
2788
5101
  update!(**args)
@@ -2790,8 +5103,7 @@ module Google
2790
5103
 
2791
5104
  # Update properties of this object
2792
5105
  def update!(**args)
2793
- @kind = args[:kind] if args.key?(:kind)
2794
- @next_version = args[:next_version] if args.key?(:next_version)
5106
+ @database = args[:database] if args.key?(:database)
2795
5107
  end
2796
5108
  end
2797
5109
 
@@ -2813,12 +5125,25 @@ module Google
2813
5125
  # @return [Google::Apis::SqladminV1beta4::SqlActiveDirectoryConfig]
2814
5126
  attr_accessor :active_directory_config
2815
5127
 
5128
+ # Specifies options for controlling advanced machine features.
5129
+ # Corresponds to the JSON property `advancedMachineFeatures`
5130
+ # @return [Google::Apis::SqladminV1beta4::AdvancedMachineFeatures]
5131
+ attr_accessor :advanced_machine_features
5132
+
2816
5133
  # The App Engine app IDs that can access this instance. (Deprecated) Applied to
2817
5134
  # First Generation instances only.
2818
5135
  # Corresponds to the JSON property `authorizedGaeApplications`
2819
5136
  # @return [Array<String>]
2820
5137
  attr_accessor :authorized_gae_applications
2821
5138
 
5139
+ # Optional. Cloud SQL for MySQL auto-upgrade configuration. When this parameter
5140
+ # is set to true, auto-upgrade is enabled for MySQL 8.0 minor versions. The
5141
+ # MySQL version must be 8.0.35 or higher.
5142
+ # Corresponds to the JSON property `autoUpgradeEnabled`
5143
+ # @return [Boolean]
5144
+ attr_accessor :auto_upgrade_enabled
5145
+ alias_method :auto_upgrade_enabled?, :auto_upgrade_enabled
5146
+
2822
5147
  # Availability type. Potential values: * `ZONAL`: The instance serves data from
2823
5148
  # only one zone. Outages in that zone affect data accessibility. * `REGIONAL`:
2824
5149
  # The instance can serve data from more than one zone in a region (it is highly
@@ -2838,6 +5163,11 @@ module Google
2838
5163
  # @return [String]
2839
5164
  attr_accessor :collation
2840
5165
 
5166
+ # The managed connection pooling configuration.
5167
+ # Corresponds to the JSON property `connectionPoolConfig`
5168
+ # @return [Google::Apis::SqladminV1beta4::ConnectionPoolConfig]
5169
+ attr_accessor :connection_pool_config
5170
+
2841
5171
  # Specifies if connections must use Cloud SQL connectors. Option values include
2842
5172
  # the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without
2843
5173
  # Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud
@@ -2857,6 +5187,29 @@ module Google
2857
5187
  attr_accessor :crash_safe_replication_enabled
2858
5188
  alias_method :crash_safe_replication_enabled?, :crash_safe_replication_enabled
2859
5189
 
5190
+ # This parameter controls whether to allow using ExecuteSql API to connect to
5191
+ # the instance. Not allowed by default.
5192
+ # Corresponds to the JSON property `dataApiAccess`
5193
+ # @return [String]
5194
+ attr_accessor :data_api_access
5195
+
5196
+ # Data cache configurations.
5197
+ # Corresponds to the JSON property `dataCacheConfig`
5198
+ # @return [Google::Apis::SqladminV1beta4::DataCacheConfig]
5199
+ attr_accessor :data_cache_config
5200
+
5201
+ # Optional. Provisioned number of I/O operations per second for the data disk.
5202
+ # This field is only used for hyperdisk-balanced disk types.
5203
+ # Corresponds to the JSON property `dataDiskProvisionedIops`
5204
+ # @return [Fixnum]
5205
+ attr_accessor :data_disk_provisioned_iops
5206
+
5207
+ # Optional. Provisioned throughput measured in MiB per second for the data disk.
5208
+ # This field is only used for hyperdisk-balanced disk types.
5209
+ # Corresponds to the JSON property `dataDiskProvisionedThroughput`
5210
+ # @return [Fixnum]
5211
+ attr_accessor :data_disk_provisioned_throughput
5212
+
2860
5213
  # The size of data disk, in GB. The data disk size minimum is 10GB.
2861
5214
  # Corresponds to the JSON property `dataDiskSizeGb`
2862
5215
  # @return [Fixnum]
@@ -2891,6 +5244,38 @@ module Google
2891
5244
  # @return [Array<Google::Apis::SqladminV1beta4::DenyMaintenancePeriod>]
2892
5245
  attr_accessor :deny_maintenance_periods
2893
5246
 
5247
+ # Optional. The edition of the instance.
5248
+ # Corresponds to the JSON property `edition`
5249
+ # @return [String]
5250
+ attr_accessor :edition
5251
+
5252
+ # Optional. By default, Cloud SQL instances have schema extraction disabled for
5253
+ # Dataplex. When this parameter is set to true, schema extraction for Dataplex
5254
+ # on Cloud SQL instances is activated.
5255
+ # Corresponds to the JSON property `enableDataplexIntegration`
5256
+ # @return [Boolean]
5257
+ attr_accessor :enable_dataplex_integration
5258
+ alias_method :enable_dataplex_integration?, :enable_dataplex_integration
5259
+
5260
+ # Optional. When this parameter is set to true, Cloud SQL instances can connect
5261
+ # to Vertex AI to pass requests for real-time predictions and insights to the AI.
5262
+ # The default value is false. This applies only to Cloud SQL for MySQL and
5263
+ # Cloud SQL for PostgreSQL instances.
5264
+ # Corresponds to the JSON property `enableGoogleMlIntegration`
5265
+ # @return [Boolean]
5266
+ attr_accessor :enable_google_ml_integration
5267
+ alias_method :enable_google_ml_integration?, :enable_google_ml_integration
5268
+
5269
+ # SQL Server Entra ID configuration.
5270
+ # Corresponds to the JSON property `entraidConfig`
5271
+ # @return [Google::Apis::SqladminV1beta4::SqlServerEntraIdConfig]
5272
+ attr_accessor :entraid_config
5273
+
5274
+ # Config used to determine the final backup settings for the instance.
5275
+ # Corresponds to the JSON property `finalBackupConfig`
5276
+ # @return [Google::Apis::SqladminV1beta4::FinalBackupConfig]
5277
+ attr_accessor :final_backup_config
5278
+
2894
5279
  # Insights configuration. This specifies when Cloud SQL Insights feature is
2895
5280
  # enabled and optional configuration.
2896
5281
  # Corresponds to the JSON property `insightsConfig`
@@ -2920,17 +5305,36 @@ module Google
2920
5305
  # @return [Google::Apis::SqladminV1beta4::MaintenanceWindow]
2921
5306
  attr_accessor :maintenance_window
2922
5307
 
2923
- # Database instance local user password validation policy
5308
+ # Database instance local user password validation policy. This message defines
5309
+ # the password policy for local database users. When enabled, it enforces
5310
+ # constraints on password complexity, length, and reuse. Keep this policy
5311
+ # enabled to help prevent unauthorized access.
2924
5312
  # Corresponds to the JSON property `passwordValidationPolicy`
2925
5313
  # @return [Google::Apis::SqladminV1beta4::PasswordValidationPolicy]
2926
5314
  attr_accessor :password_validation_policy
2927
5315
 
5316
+ # Performance Capture configuration.
5317
+ # Corresponds to the JSON property `performanceCaptureConfig`
5318
+ # @return [Google::Apis::SqladminV1beta4::PerformanceCaptureConfig]
5319
+ attr_accessor :performance_capture_config
5320
+
2928
5321
  # The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`.
2929
5322
  # Only `PER_USE` is supported for Second Generation instances.
2930
5323
  # Corresponds to the JSON property `pricingPlan`
2931
5324
  # @return [String]
2932
5325
  attr_accessor :pricing_plan
2933
5326
 
5327
+ # The read pool auto-scale configuration.
5328
+ # Corresponds to the JSON property `readPoolAutoScaleConfig`
5329
+ # @return [Google::Apis::SqladminV1beta4::ReadPoolAutoScaleConfig]
5330
+ attr_accessor :read_pool_auto_scale_config
5331
+
5332
+ # Optional. Configuration value for recreation of replica after certain
5333
+ # replication lag.
5334
+ # Corresponds to the JSON property `replicationLagMaxSeconds`
5335
+ # @return [Fixnum]
5336
+ attr_accessor :replication_lag_max_seconds
5337
+
2934
5338
  # The type of replication this instance uses. This can be either `ASYNCHRONOUS`
2935
5339
  # or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First
2936
5340
  # Generation instances.
@@ -2938,6 +5342,15 @@ module Google
2938
5342
  # @return [String]
2939
5343
  attr_accessor :replication_type
2940
5344
 
5345
+ # Optional. When this parameter is set to true, Cloud SQL retains backups of the
5346
+ # instance even after the instance is deleted. The ON_DEMAND backup will be
5347
+ # retained until customer deletes the backup or the project. The AUTOMATED
5348
+ # backup will be retained based on the backups retention setting.
5349
+ # Corresponds to the JSON property `retainBackupsOnDelete`
5350
+ # @return [Boolean]
5351
+ attr_accessor :retain_backups_on_delete
5352
+ alias_method :retain_backups_on_delete?, :retain_backups_on_delete
5353
+
2941
5354
  # The version of instance settings. This is a required field for update method
2942
5355
  # to make sure concurrent updates are handled properly. During update, use the
2943
5356
  # most recent settingsVersion value for this instance and do not try to update
@@ -2989,26 +5402,42 @@ module Google
2989
5402
  def update!(**args)
2990
5403
  @activation_policy = args[:activation_policy] if args.key?(:activation_policy)
2991
5404
  @active_directory_config = args[:active_directory_config] if args.key?(:active_directory_config)
5405
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
2992
5406
  @authorized_gae_applications = args[:authorized_gae_applications] if args.key?(:authorized_gae_applications)
5407
+ @auto_upgrade_enabled = args[:auto_upgrade_enabled] if args.key?(:auto_upgrade_enabled)
2993
5408
  @availability_type = args[:availability_type] if args.key?(:availability_type)
2994
5409
  @backup_configuration = args[:backup_configuration] if args.key?(:backup_configuration)
2995
5410
  @collation = args[:collation] if args.key?(:collation)
5411
+ @connection_pool_config = args[:connection_pool_config] if args.key?(:connection_pool_config)
2996
5412
  @connector_enforcement = args[:connector_enforcement] if args.key?(:connector_enforcement)
2997
5413
  @crash_safe_replication_enabled = args[:crash_safe_replication_enabled] if args.key?(:crash_safe_replication_enabled)
5414
+ @data_api_access = args[:data_api_access] if args.key?(:data_api_access)
5415
+ @data_cache_config = args[:data_cache_config] if args.key?(:data_cache_config)
5416
+ @data_disk_provisioned_iops = args[:data_disk_provisioned_iops] if args.key?(:data_disk_provisioned_iops)
5417
+ @data_disk_provisioned_throughput = args[:data_disk_provisioned_throughput] if args.key?(:data_disk_provisioned_throughput)
2998
5418
  @data_disk_size_gb = args[:data_disk_size_gb] if args.key?(:data_disk_size_gb)
2999
5419
  @data_disk_type = args[:data_disk_type] if args.key?(:data_disk_type)
3000
5420
  @database_flags = args[:database_flags] if args.key?(:database_flags)
3001
5421
  @database_replication_enabled = args[:database_replication_enabled] if args.key?(:database_replication_enabled)
3002
5422
  @deletion_protection_enabled = args[:deletion_protection_enabled] if args.key?(:deletion_protection_enabled)
3003
5423
  @deny_maintenance_periods = args[:deny_maintenance_periods] if args.key?(:deny_maintenance_periods)
5424
+ @edition = args[:edition] if args.key?(:edition)
5425
+ @enable_dataplex_integration = args[:enable_dataplex_integration] if args.key?(:enable_dataplex_integration)
5426
+ @enable_google_ml_integration = args[:enable_google_ml_integration] if args.key?(:enable_google_ml_integration)
5427
+ @entraid_config = args[:entraid_config] if args.key?(:entraid_config)
5428
+ @final_backup_config = args[:final_backup_config] if args.key?(:final_backup_config)
3004
5429
  @insights_config = args[:insights_config] if args.key?(:insights_config)
3005
5430
  @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
3006
5431
  @kind = args[:kind] if args.key?(:kind)
3007
5432
  @location_preference = args[:location_preference] if args.key?(:location_preference)
3008
5433
  @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
3009
5434
  @password_validation_policy = args[:password_validation_policy] if args.key?(:password_validation_policy)
5435
+ @performance_capture_config = args[:performance_capture_config] if args.key?(:performance_capture_config)
3010
5436
  @pricing_plan = args[:pricing_plan] if args.key?(:pricing_plan)
5437
+ @read_pool_auto_scale_config = args[:read_pool_auto_scale_config] if args.key?(:read_pool_auto_scale_config)
5438
+ @replication_lag_max_seconds = args[:replication_lag_max_seconds] if args.key?(:replication_lag_max_seconds)
3011
5439
  @replication_type = args[:replication_type] if args.key?(:replication_type)
5440
+ @retain_backups_on_delete = args[:retain_backups_on_delete] if args.key?(:retain_backups_on_delete)
3012
5441
  @settings_version = args[:settings_version] if args.key?(:settings_version)
3013
5442
  @sql_server_audit_config = args[:sql_server_audit_config] if args.key?(:sql_server_audit_config)
3014
5443
  @storage_auto_resize = args[:storage_auto_resize] if args.key?(:storage_auto_resize)
@@ -3023,6 +5452,17 @@ module Google
3023
5452
  class SqlActiveDirectoryConfig
3024
5453
  include Google::Apis::Core::Hashable
3025
5454
 
5455
+ # Optional. The secret manager key storing the administrator credential. (e.g.,
5456
+ # projects/`project`/secrets/`secret`).
5457
+ # Corresponds to the JSON property `adminCredentialSecretName`
5458
+ # @return [String]
5459
+ attr_accessor :admin_credential_secret_name
5460
+
5461
+ # Optional. Domain controller IPv4 addresses used to bootstrap Active Directory.
5462
+ # Corresponds to the JSON property `dnsServers`
5463
+ # @return [Array<String>]
5464
+ attr_accessor :dns_servers
5465
+
3026
5466
  # The name of the domain (e.g., mydomain.com).
3027
5467
  # Corresponds to the JSON property `domain`
3028
5468
  # @return [String]
@@ -3033,14 +5473,29 @@ module Google
3033
5473
  # @return [String]
3034
5474
  attr_accessor :kind
3035
5475
 
5476
+ # Optional. The mode of the Active Directory configuration.
5477
+ # Corresponds to the JSON property `mode`
5478
+ # @return [String]
5479
+ attr_accessor :mode
5480
+
5481
+ # Optional. The organizational unit distinguished name. This is the full
5482
+ # hierarchical path to the organizational unit.
5483
+ # Corresponds to the JSON property `organizationalUnit`
5484
+ # @return [String]
5485
+ attr_accessor :organizational_unit
5486
+
3036
5487
  def initialize(**args)
3037
5488
  update!(**args)
3038
5489
  end
3039
5490
 
3040
5491
  # Update properties of this object
3041
5492
  def update!(**args)
5493
+ @admin_credential_secret_name = args[:admin_credential_secret_name] if args.key?(:admin_credential_secret_name)
5494
+ @dns_servers = args[:dns_servers] if args.key?(:dns_servers)
3042
5495
  @domain = args[:domain] if args.key?(:domain)
3043
5496
  @kind = args[:kind] if args.key?(:kind)
5497
+ @mode = args[:mode] if args.key?(:mode)
5498
+ @organizational_unit = args[:organizational_unit] if args.key?(:organizational_unit)
3044
5499
  end
3045
5500
  end
3046
5501
 
@@ -3075,6 +5530,153 @@ module Google
3075
5530
  end
3076
5531
  end
3077
5532
 
5533
+ # Acquire SSRS lease response.
5534
+ class SqlInstancesAcquireSsrsLeaseResponse
5535
+ include Google::Apis::Core::Hashable
5536
+
5537
+ # The unique identifier for this operation.
5538
+ # Corresponds to the JSON property `operationId`
5539
+ # @return [String]
5540
+ attr_accessor :operation_id
5541
+
5542
+ def initialize(**args)
5543
+ update!(**args)
5544
+ end
5545
+
5546
+ # Update properties of this object
5547
+ def update!(**args)
5548
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
5549
+ end
5550
+ end
5551
+
5552
+ # Execute SQL statements response.
5553
+ class SqlInstancesExecuteSqlResponse
5554
+ include Google::Apis::Core::Hashable
5555
+
5556
+ # A list of notices and warnings generated during query execution. For
5557
+ # PostgreSQL, this includes all notices and warnings. For MySQL, this includes
5558
+ # warnings generated by the last executed statement. To retrieve all warnings
5559
+ # for a multi-statement query, `SHOW WARNINGS` must be executed after each
5560
+ # statement.
5561
+ # Corresponds to the JSON property `messages`
5562
+ # @return [Array<Google::Apis::SqladminV1beta4::Message>]
5563
+ attr_accessor :messages
5564
+
5565
+ # The additional metadata information regarding the execution of the SQL
5566
+ # statements.
5567
+ # Corresponds to the JSON property `metadata`
5568
+ # @return [Google::Apis::SqladminV1beta4::Metadata]
5569
+ attr_accessor :metadata
5570
+
5571
+ # The list of results after executing all the SQL statements.
5572
+ # Corresponds to the JSON property `results`
5573
+ # @return [Array<Google::Apis::SqladminV1beta4::QueryResult>]
5574
+ attr_accessor :results
5575
+
5576
+ # The `Status` type defines a logical error model that is suitable for different
5577
+ # programming environments, including REST APIs and RPC APIs. It is used by [
5578
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
5579
+ # data: error code, error message, and error details. You can find out more
5580
+ # about this error model and how to work with it in the [API Design Guide](https:
5581
+ # //cloud.google.com/apis/design/errors).
5582
+ # Corresponds to the JSON property `status`
5583
+ # @return [Google::Apis::SqladminV1beta4::Status]
5584
+ attr_accessor :status
5585
+
5586
+ def initialize(**args)
5587
+ update!(**args)
5588
+ end
5589
+
5590
+ # Update properties of this object
5591
+ def update!(**args)
5592
+ @messages = args[:messages] if args.key?(:messages)
5593
+ @metadata = args[:metadata] if args.key?(:metadata)
5594
+ @results = args[:results] if args.key?(:results)
5595
+ @status = args[:status] if args.key?(:status)
5596
+ end
5597
+ end
5598
+
5599
+ # Instance get disk shrink config response.
5600
+ class SqlInstancesGetDiskShrinkConfigResponse
5601
+ include Google::Apis::Core::Hashable
5602
+
5603
+ # This is always `sql#getDiskShrinkConfig`.
5604
+ # Corresponds to the JSON property `kind`
5605
+ # @return [String]
5606
+ attr_accessor :kind
5607
+
5608
+ # Additional message to customers.
5609
+ # Corresponds to the JSON property `message`
5610
+ # @return [String]
5611
+ attr_accessor :message
5612
+
5613
+ # The minimum size to which a disk can be shrunk in GigaBytes.
5614
+ # Corresponds to the JSON property `minimalTargetSizeGb`
5615
+ # @return [Fixnum]
5616
+ attr_accessor :minimal_target_size_gb
5617
+
5618
+ def initialize(**args)
5619
+ update!(**args)
5620
+ end
5621
+
5622
+ # Update properties of this object
5623
+ def update!(**args)
5624
+ @kind = args[:kind] if args.key?(:kind)
5625
+ @message = args[:message] if args.key?(:message)
5626
+ @minimal_target_size_gb = args[:minimal_target_size_gb] if args.key?(:minimal_target_size_gb)
5627
+ end
5628
+ end
5629
+
5630
+ # Instance get latest recovery time response.
5631
+ class SqlInstancesGetLatestRecoveryTimeResponse
5632
+ include Google::Apis::Core::Hashable
5633
+
5634
+ # Timestamp, identifies the earliest recovery time of the source instance.
5635
+ # Corresponds to the JSON property `earliestRecoveryTime`
5636
+ # @return [String]
5637
+ attr_accessor :earliest_recovery_time
5638
+
5639
+ # This is always `sql#getLatestRecoveryTime`.
5640
+ # Corresponds to the JSON property `kind`
5641
+ # @return [String]
5642
+ attr_accessor :kind
5643
+
5644
+ # Timestamp, identifies the latest recovery time of the source instance.
5645
+ # Corresponds to the JSON property `latestRecoveryTime`
5646
+ # @return [String]
5647
+ attr_accessor :latest_recovery_time
5648
+
5649
+ def initialize(**args)
5650
+ update!(**args)
5651
+ end
5652
+
5653
+ # Update properties of this object
5654
+ def update!(**args)
5655
+ @earliest_recovery_time = args[:earliest_recovery_time] if args.key?(:earliest_recovery_time)
5656
+ @kind = args[:kind] if args.key?(:kind)
5657
+ @latest_recovery_time = args[:latest_recovery_time] if args.key?(:latest_recovery_time)
5658
+ end
5659
+ end
5660
+
5661
+ # The response for the release of the SSRS lease.
5662
+ class SqlInstancesReleaseSsrsLeaseResponse
5663
+ include Google::Apis::Core::Hashable
5664
+
5665
+ # The operation ID.
5666
+ # Corresponds to the JSON property `operationId`
5667
+ # @return [String]
5668
+ attr_accessor :operation_id
5669
+
5670
+ def initialize(**args)
5671
+ update!(**args)
5672
+ end
5673
+
5674
+ # Update properties of this object
5675
+ def update!(**args)
5676
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
5677
+ end
5678
+ end
5679
+
3078
5680
  # Reschedule options for maintenance windows.
3079
5681
  class SqlInstancesRescheduleMaintenanceRequestBody
3080
5682
  include Google::Apis::Core::Hashable
@@ -3094,15 +5696,44 @@ module Google
3094
5696
  end
3095
5697
  end
3096
5698
 
5699
+ # Instance reset replica size request.
5700
+ class SqlInstancesResetReplicaSizeRequest
5701
+ include Google::Apis::Core::Hashable
5702
+
5703
+ def initialize(**args)
5704
+ update!(**args)
5705
+ end
5706
+
5707
+ # Update properties of this object
5708
+ def update!(**args)
5709
+ end
5710
+ end
5711
+
3097
5712
  #
3098
5713
  class SqlInstancesStartExternalSyncRequest
3099
5714
  include Google::Apis::Core::Hashable
3100
5715
 
5716
+ # Optional. MigrationType configures the migration to use physical files or
5717
+ # logical dump files. If not set, then the logical dump file configuration is
5718
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5719
+ # Corresponds to the JSON property `migrationType`
5720
+ # @return [String]
5721
+ attr_accessor :migration_type
5722
+
3101
5723
  # MySQL-specific external server sync settings.
3102
5724
  # Corresponds to the JSON property `mysqlSyncConfig`
3103
5725
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
3104
5726
  attr_accessor :mysql_sync_config
3105
5727
 
5728
+ # Optional. MySQL only. True if end-user has confirmed that this SES call will
5729
+ # wipe replica databases overlapping with the proposed selected_objects. If this
5730
+ # field is not set and there are both overlapping and additional databases
5731
+ # proposed, an error will be returned.
5732
+ # Corresponds to the JSON property `replicaOverwriteEnabled`
5733
+ # @return [Boolean]
5734
+ attr_accessor :replica_overwrite_enabled
5735
+ alias_method :replica_overwrite_enabled?, :replica_overwrite_enabled
5736
+
3106
5737
  # Whether to skip the verification step (VESS).
3107
5738
  # Corresponds to the JSON property `skipVerification`
3108
5739
  # @return [Boolean]
@@ -3114,15 +5745,24 @@ module Google
3114
5745
  # @return [String]
3115
5746
  attr_accessor :sync_mode
3116
5747
 
5748
+ # Optional. Parallel level for initial data sync. Currently only applicable for
5749
+ # MySQL.
5750
+ # Corresponds to the JSON property `syncParallelLevel`
5751
+ # @return [String]
5752
+ attr_accessor :sync_parallel_level
5753
+
3117
5754
  def initialize(**args)
3118
5755
  update!(**args)
3119
5756
  end
3120
5757
 
3121
5758
  # Update properties of this object
3122
5759
  def update!(**args)
5760
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3123
5761
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
5762
+ @replica_overwrite_enabled = args[:replica_overwrite_enabled] if args.key?(:replica_overwrite_enabled)
3124
5763
  @skip_verification = args[:skip_verification] if args.key?(:skip_verification)
3125
5764
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5765
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3126
5766
  end
3127
5767
  end
3128
5768
 
@@ -3130,16 +5770,34 @@ module Google
3130
5770
  class SqlInstancesVerifyExternalSyncSettingsRequest
3131
5771
  include Google::Apis::Core::Hashable
3132
5772
 
5773
+ # Optional. MigrationType configures the migration to use physical files or
5774
+ # logical dump files. If not set, then the logical dump file configuration is
5775
+ # used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
5776
+ # Corresponds to the JSON property `migrationType`
5777
+ # @return [String]
5778
+ attr_accessor :migration_type
5779
+
3133
5780
  # MySQL-specific external server sync settings.
3134
5781
  # Corresponds to the JSON property `mysqlSyncConfig`
3135
5782
  # @return [Google::Apis::SqladminV1beta4::MySqlSyncConfig]
3136
5783
  attr_accessor :mysql_sync_config
3137
5784
 
5785
+ # Optional. Migrate only the specified objects from the source instance. If this
5786
+ # field is empty, then migrate all objects.
5787
+ # Corresponds to the JSON property `selectedObjects`
5788
+ # @return [Array<Google::Apis::SqladminV1beta4::ExternalSyncSelectedObject>]
5789
+ attr_accessor :selected_objects
5790
+
3138
5791
  # External sync mode
3139
5792
  # Corresponds to the JSON property `syncMode`
3140
5793
  # @return [String]
3141
5794
  attr_accessor :sync_mode
3142
5795
 
5796
+ # Optional. Parallel level for initial data sync. Only applicable for PostgreSQL.
5797
+ # Corresponds to the JSON property `syncParallelLevel`
5798
+ # @return [String]
5799
+ attr_accessor :sync_parallel_level
5800
+
3143
5801
  # Flag to enable verifying connection only
3144
5802
  # Corresponds to the JSON property `verifyConnectionOnly`
3145
5803
  # @return [Boolean]
@@ -3158,8 +5816,11 @@ module Google
3158
5816
 
3159
5817
  # Update properties of this object
3160
5818
  def update!(**args)
5819
+ @migration_type = args[:migration_type] if args.key?(:migration_type)
3161
5820
  @mysql_sync_config = args[:mysql_sync_config] if args.key?(:mysql_sync_config)
5821
+ @selected_objects = args[:selected_objects] if args.key?(:selected_objects)
3162
5822
  @sync_mode = args[:sync_mode] if args.key?(:sync_mode)
5823
+ @sync_parallel_level = args[:sync_parallel_level] if args.key?(:sync_parallel_level)
3163
5824
  @verify_connection_only = args[:verify_connection_only] if args.key?(:verify_connection_only)
3164
5825
  @verify_replication_only = args[:verify_replication_only] if args.key?(:verify_replication_only)
3165
5826
  end
@@ -3326,6 +5987,37 @@ module Google
3326
5987
  end
3327
5988
  end
3328
5989
 
5990
+ # SQL Server Entra ID configuration.
5991
+ class SqlServerEntraIdConfig
5992
+ include Google::Apis::Core::Hashable
5993
+
5994
+ # Optional. The application ID for the Entra ID configuration.
5995
+ # Corresponds to the JSON property `applicationId`
5996
+ # @return [String]
5997
+ attr_accessor :application_id
5998
+
5999
+ # Output only. This is always sql#sqlServerEntraIdConfig
6000
+ # Corresponds to the JSON property `kind`
6001
+ # @return [String]
6002
+ attr_accessor :kind
6003
+
6004
+ # Optional. The tenant ID for the Entra ID configuration.
6005
+ # Corresponds to the JSON property `tenantId`
6006
+ # @return [String]
6007
+ attr_accessor :tenant_id
6008
+
6009
+ def initialize(**args)
6010
+ update!(**args)
6011
+ end
6012
+
6013
+ # Update properties of this object
6014
+ def update!(**args)
6015
+ @application_id = args[:application_id] if args.key?(:application_id)
6016
+ @kind = args[:kind] if args.key?(:kind)
6017
+ @tenant_id = args[:tenant_id] if args.key?(:tenant_id)
6018
+ end
6019
+ end
6020
+
3329
6021
  # Represents a Sql Server user on the Cloud SQL instance.
3330
6022
  class SqlServerUserDetails
3331
6023
  include Google::Apis::Core::Hashable
@@ -3352,6 +6044,25 @@ module Google
3352
6044
  end
3353
6045
  end
3354
6046
 
6047
+ # The sub operation type based on the operation type.
6048
+ class SqlSubOperationType
6049
+ include Google::Apis::Core::Hashable
6050
+
6051
+ # The type of maintenance to be performed on the instance.
6052
+ # Corresponds to the JSON property `maintenanceType`
6053
+ # @return [String]
6054
+ attr_accessor :maintenance_type
6055
+
6056
+ def initialize(**args)
6057
+ update!(**args)
6058
+ end
6059
+
6060
+ # Update properties of this object
6061
+ def update!(**args)
6062
+ @maintenance_type = args[:maintenance_type] if args.key?(:maintenance_type)
6063
+ end
6064
+ end
6065
+
3355
6066
  # SslCerts Resource
3356
6067
  class SslCert
3357
6068
  include Google::Apis::Core::Hashable
@@ -3556,6 +6267,45 @@ module Google
3556
6267
  end
3557
6268
  end
3558
6269
 
6270
+ # The `Status` type defines a logical error model that is suitable for different
6271
+ # programming environments, including REST APIs and RPC APIs. It is used by [
6272
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
6273
+ # data: error code, error message, and error details. You can find out more
6274
+ # about this error model and how to work with it in the [API Design Guide](https:
6275
+ # //cloud.google.com/apis/design/errors).
6276
+ class Status
6277
+ include Google::Apis::Core::Hashable
6278
+
6279
+ # The status code, which should be an enum value of google.rpc.Code.
6280
+ # Corresponds to the JSON property `code`
6281
+ # @return [Fixnum]
6282
+ attr_accessor :code
6283
+
6284
+ # A list of messages that carry the error details. There is a common set of
6285
+ # message types for APIs to use.
6286
+ # Corresponds to the JSON property `details`
6287
+ # @return [Array<Hash<String,Object>>]
6288
+ attr_accessor :details
6289
+
6290
+ # A developer-facing error message, which should be in English. Any user-facing
6291
+ # error message should be localized and sent in the google.rpc.Status.details
6292
+ # field, or localized by the client.
6293
+ # Corresponds to the JSON property `message`
6294
+ # @return [String]
6295
+ attr_accessor :message
6296
+
6297
+ def initialize(**args)
6298
+ update!(**args)
6299
+ end
6300
+
6301
+ # Update properties of this object
6302
+ def update!(**args)
6303
+ @code = args[:code] if args.key?(:code)
6304
+ @details = args[:details] if args.key?(:details)
6305
+ @message = args[:message] if args.key?(:message)
6306
+ end
6307
+ end
6308
+
3559
6309
  # Initial sync flags for certain Cloud SQL APIs. Currently used for the MySQL
3560
6310
  # external server initial dump.
3561
6311
  class SyncFlags
@@ -3583,6 +6333,31 @@ module Google
3583
6333
  end
3584
6334
  end
3585
6335
 
6336
+ # Target metric for read pool auto scaling.
6337
+ class TargetMetric
6338
+ include Google::Apis::Core::Hashable
6339
+
6340
+ # The metric name to be used for auto scaling.
6341
+ # Corresponds to the JSON property `metric`
6342
+ # @return [String]
6343
+ attr_accessor :metric
6344
+
6345
+ # The target value for the metric.
6346
+ # Corresponds to the JSON property `targetValue`
6347
+ # @return [Float]
6348
+ attr_accessor :target_value
6349
+
6350
+ def initialize(**args)
6351
+ update!(**args)
6352
+ end
6353
+
6354
+ # Update properties of this object
6355
+ def update!(**args)
6356
+ @metric = args[:metric] if args.key?(:metric)
6357
+ @target_value = args[:target_value] if args.key?(:target_value)
6358
+ end
6359
+ end
6360
+
3586
6361
  # A Google Cloud SQL service tier resource.
3587
6362
  class Tier
3588
6363
  include Google::Apis::Core::Hashable
@@ -3682,6 +6457,11 @@ module Google
3682
6457
  class User
3683
6458
  include Google::Apis::Core::Hashable
3684
6459
 
6460
+ # Optional. Role memberships of the user
6461
+ # Corresponds to the JSON property `databaseRoles`
6462
+ # @return [Array<String>]
6463
+ attr_accessor :database_roles
6464
+
3685
6465
  # Dual password status for the user.
3686
6466
  # Corresponds to the JSON property `dualPasswordType`
3687
6467
  # @return [String]
@@ -3701,6 +6481,17 @@ module Google
3701
6481
  # @return [String]
3702
6482
  attr_accessor :host
3703
6483
 
6484
+ # Optional. The full email for an IAM user. For normal database users, this will
6485
+ # not be filled. Only applicable to MySQL database users.
6486
+ # Corresponds to the JSON property `iamEmail`
6487
+ # @return [String]
6488
+ attr_accessor :iam_email
6489
+
6490
+ # Indicates if a group is active or inactive for IAM database authentication.
6491
+ # Corresponds to the JSON property `iamStatus`
6492
+ # @return [String]
6493
+ attr_accessor :iam_status
6494
+
3704
6495
  # The name of the Cloud SQL instance. This does not include the project ID. Can
3705
6496
  # be omitted for *update* because it is already specified on the URL.
3706
6497
  # Corresponds to the JSON property `instance`
@@ -3752,9 +6543,12 @@ module Google
3752
6543
 
3753
6544
  # Update properties of this object
3754
6545
  def update!(**args)
6546
+ @database_roles = args[:database_roles] if args.key?(:database_roles)
3755
6547
  @dual_password_type = args[:dual_password_type] if args.key?(:dual_password_type)
3756
6548
  @etag = args[:etag] if args.key?(:etag)
3757
6549
  @host = args[:host] if args.key?(:host)
6550
+ @iam_email = args[:iam_email] if args.key?(:iam_email)
6551
+ @iam_status = args[:iam_status] if args.key?(:iam_status)
3758
6552
  @instance = args[:instance] if args.key?(:instance)
3759
6553
  @kind = args[:kind] if args.key?(:kind)
3760
6554
  @name = args[:name] if args.key?(:name)
@@ -3826,9 +6620,7 @@ module Google
3826
6620
  # @return [String]
3827
6621
  attr_accessor :kind
3828
6622
 
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.
6623
+ # Unused.
3832
6624
  # Corresponds to the JSON property `nextPageToken`
3833
6625
  # @return [String]
3834
6626
  attr_accessor :next_page_token
@@ -3844,6 +6636,32 @@ module Google
3844
6636
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3845
6637
  end
3846
6638
  end
6639
+
6640
+ # The cell value of the table.
6641
+ class Value
6642
+ include Google::Apis::Core::Hashable
6643
+
6644
+ # If cell value is null, then this flag will be set to true.
6645
+ # Corresponds to the JSON property `nullValue`
6646
+ # @return [Boolean]
6647
+ attr_accessor :null_value
6648
+ alias_method :null_value?, :null_value
6649
+
6650
+ # The cell value represented in string format.
6651
+ # Corresponds to the JSON property `value`
6652
+ # @return [String]
6653
+ attr_accessor :value
6654
+
6655
+ def initialize(**args)
6656
+ update!(**args)
6657
+ end
6658
+
6659
+ # Update properties of this object
6660
+ def update!(**args)
6661
+ @null_value = args[:null_value] if args.key?(:null_value)
6662
+ @value = args[:value] if args.key?(:value)
6663
+ end
6664
+ end
3847
6665
  end
3848
6666
  end
3849
6667
  end