<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="sqladmin_v1.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1.Backups.html">Backups</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#CreateBackup">CreateBackup(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a backup for a Cloud SQL instance. This API can be used only to create on-demand backups.</p>
<p class="toc_element">
  <code><a href="#DeleteBackup">DeleteBackup(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes the backup.</p>
<p class="toc_element">
  <code><a href="#GetBackup">GetBackup(name, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a resource containing information about a backup.</p>
<p class="toc_element">
  <code><a href="#ListBackups">ListBackups(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all backups associated with the project.</p>
<p class="toc_element">
  <code><a href="#ListBackups_next">ListBackups_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#UpdateBackup">UpdateBackup(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the retention period and description of the backup. You can use this API to update final backups only.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="CreateBackup">CreateBackup(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a backup for a Cloud SQL instance. This API can be used only to create on-demand backups.

Args:
  parent: string, Required. The parent resource where this backup is created. Format: projects/{project} (required)
  body: object, The request body.
    The object takes the form of:

{ # A backup resource.
  &quot;backupInterval&quot;: { # Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time. # Output only. This output contains the following values: start_time: All database writes up to this time are available. end_time: Any database writes after this time aren&#x27;t available.
    &quot;endTime&quot;: &quot;A String&quot;, # Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.
    &quot;startTime&quot;: &quot;A String&quot;, # Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.
  },
  &quot;backupKind&quot;: &quot;A String&quot;, # Output only. Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
  &quot;backupRun&quot;: &quot;A String&quot;, # Output only. The mapping to backup run resource used for IAM validations.
  &quot;databaseVersion&quot;: &quot;A String&quot;, # Output only. The database version of the instance of at the time this backup was made.
  &quot;description&quot;: &quot;A String&quot;, # The description of this backup.
  &quot;error&quot;: { # Database instance operation error. # Output only. Information about why the backup operation fails (for example, when the backup state fails).
    &quot;code&quot;: &quot;A String&quot;, # Identifies the specific error that occurred.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationError`.
    &quot;message&quot;: &quot;A String&quot;, # Additional information about the error encountered.
  },
  &quot;expiryTime&quot;: &quot;A String&quot;, # Backup expiration time. A UTC timestamp of when this backup expired.
  &quot;instance&quot;: &quot;A String&quot;, # The name of the source database instance.
  &quot;instanceDeletionTime&quot;: &quot;A String&quot;, # Optional. Output only. Timestamp in UTC of when the instance associated with this backup is deleted.
  &quot;instanceSettings&quot;: { # A Cloud SQL instance resource. # Optional. Output only. The instance setting of the source instance that&#x27;s associated with this backup.
    &quot;availableMaintenanceVersions&quot;: [ # Output only. List all maintenance versions applicable on the instance
      &quot;A String&quot;,
    ],
    &quot;backendType&quot;: &quot;A String&quot;, # The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
    &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the instance was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
    &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
    &quot;databaseInstalledVersion&quot;: &quot;A String&quot;, # Output only. Stores the current database version running on the instance including minor version such as `MYSQL_8_0_18`.
    &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
    &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionConfiguration`.
      &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
    },
    &quot;diskEncryptionStatus&quot;: { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionStatus`.
      &quot;kmsKeyVersionName&quot;: &quot;A String&quot;, # KMS key version used to encrypt the Cloud SQL instance resource
    },
    &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The dns name of the instance.
    &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this instance.
      { # DNS metadata.
        &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
        &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
        &quot;name&quot;: &quot;A String&quot;, # The DNS name.
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
    &quot;failoverReplica&quot;: { # The name and status of the failover replica.
      &quot;available&quot;: True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
      &quot;name&quot;: &quot;A String&quot;, # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn&#x27;t include the project ID.
    },
    &quot;gceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
    &quot;geminiConfig&quot;: { # Gemini instance configuration. # Gemini instance configuration.
      &quot;activeQueryEnabled&quot;: True or False, # Output only. Whether the active query is enabled.
      &quot;entitled&quot;: True or False, # Output only. Whether Gemini is enabled.
      &quot;flagRecommenderEnabled&quot;: True or False, # Output only. Whether the flag recommender is enabled.
      &quot;googleVacuumMgmtEnabled&quot;: True or False, # Output only. Whether the vacuum management is enabled.
      &quot;indexAdvisorEnabled&quot;: True or False, # Output only. Whether the index advisor is enabled.
      &quot;oomSessionCancelEnabled&quot;: True or False, # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
    },
    &quot;includeReplicasForMajorVersionUpgrade&quot;: True or False, # Input only. Determines whether an in-place major version upgrade of replicas happens when an in-place major version upgrade of a primary instance is initiated.
    &quot;instanceType&quot;: &quot;A String&quot;, # The instance type.
    &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
      { # Database instance IP mapping
        &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
        &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
        &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
      },
    ],
    &quot;ipv6Address&quot;: &quot;A String&quot;, # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#instance`.
    &quot;maintenanceVersion&quot;: &quot;A String&quot;, # The current software version on the instance.
    &quot;masterInstanceName&quot;: &quot;A String&quot;, # The name of the instance which will act as primary in the replication setup.
    &quot;maxDiskSize&quot;: &quot;A String&quot;, # The maximum disk size of the instance in bytes.
    &quot;name&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance. This does not include the project ID.
    &quot;nodeCount&quot;: 42, # The number of read pool nodes in a read pool.
    &quot;nodes&quot;: [ # Output only. Entries containing information about each read pool node of the read pool.
      { # Details of a single read pool node of a read pool.
        &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The DNS name of the read pool node.
        &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this read pool node.
          { # DNS metadata.
            &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
            &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
            &quot;name&quot;: &quot;A String&quot;, # The DNS name.
          },
        ],
        &quot;gceZone&quot;: &quot;A String&quot;, # Output only. The zone of the read pool node.
        &quot;ipAddresses&quot;: [ # Output only. Mappings containing IP addresses that can be used to connect to the read pool node.
          { # Database instance IP mapping
            &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
            &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
            &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the read pool node, to be used for retrieving metrics and logs.
        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the read pool node.
      },
    ],
    &quot;onPremisesConfiguration&quot;: { # On-premises instance configuration. # Configuration specific to on-premises instances.
      &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
      &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
      &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
      &quot;dumpFilePath&quot;: &quot;A String&quot;, # The dump file to create the Cloud SQL replica.
      &quot;hostPort&quot;: &quot;A String&quot;, # The host and port of the on-premises instance in host:port format
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#onPremisesConfiguration`.
      &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
      &quot;selectedObjects&quot;: [ # Optional. A list of objects that the user selects for replication from an external source instance.
        { # A list of objects that the user selects for replication from an external source instance.
          &quot;database&quot;: &quot;A String&quot;, # Required. The name of the database to migrate.
        },
      ],
      &quot;sourceInstance&quot;: { # Reference to another Cloud SQL instance. # The reference to Cloud SQL instance if the source is Cloud SQL.
        &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced. This does not include the project ID.
        &quot;project&quot;: &quot;A String&quot;, # The project ID of the Cloud SQL instance being referenced. The default is the same project ID as the instance references it.
        &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
      },
      &quot;sslOption&quot;: &quot;A String&quot;, # Optional. SSL option for replica connection to the on-premises source.
      &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
    },
    &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
      &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend * Writers: * the proactive database wellness job for OOD. * Readers:
      &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
    },
    &quot;primaryDnsName&quot;: &quot;A String&quot;, # Output only. DEPRECATED: please use write_endpoint instead.
    &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
    &quot;pscServiceAttachmentLink&quot;: &quot;A String&quot;, # Output only. The link to service attachment of PSC instance.
    &quot;region&quot;: &quot;A String&quot;, # The geographical region of the Cloud SQL instance. It can be one of the [regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-central1`. The default value is `us-central1`.
    &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
      &quot;cascadableReplica&quot;: True or False, # Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it.
      &quot;failoverTarget&quot;: True or False, # Specifies if the replica is the failover target. If the field is set to `true`, the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#replicaConfiguration`.
      &quot;mysqlReplicaConfiguration&quot;: { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named `master.info` in the data directory.
        &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
        &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
        &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
        &quot;connectRetryInterval&quot;: 42, # Seconds to wait between connect retries. MySQL&#x27;s default is 60 seconds.
        &quot;dumpFilePath&quot;: &quot;A String&quot;, # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#mysqlReplicaConfiguration`.
        &quot;masterHeartbeatPeriod&quot;: &quot;A String&quot;, # Interval in milliseconds between replication heartbeats.
        &quot;password&quot;: &quot;A String&quot;, # The password for the replication connection.
        &quot;sslCipher&quot;: &quot;A String&quot;, # A list of permissible ciphers to use for SSL encryption.
        &quot;username&quot;: &quot;A String&quot;, # The username for the replication connection.
        &quot;verifyServerCertificate&quot;: True or False, # Whether or not to check the primary instance&#x27;s Common Name value in the certificate that it sends during the SSL handshake.
      },
    },
    &quot;replicaNames&quot;: [ # The replicas of the instance.
      &quot;A String&quot;,
    ],
    &quot;replicationCluster&quot;: { # A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL. # Optional. A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL.
      &quot;drReplica&quot;: True or False, # Output only. Read-only field that indicates whether the replica is a DR replica. This field is not set if the instance is a primary instance.
      &quot;failoverDrReplicaName&quot;: &quot;A String&quot;, # Optional. If the instance is a primary instance, then this field identifies the disaster recovery (DR) replica. A DR replica is an optional configuration for Enterprise Plus edition instances. If the instance is a read replica, then the field is not set. Set this field to a replica name to designate a DR replica for a primary instance. Remove the replica name to remove the DR replica designation.
      &quot;psaWriteEndpoint&quot;: &quot;A String&quot;, # Output only. If set, this field indicates this instance has a private service access (PSA) DNS endpoint that is pointing to the primary instance of the cluster. If this instance is the primary, then the DNS endpoint points to this instance. After a switchover or replica failover operation, this DNS endpoint points to the promoted instance. This is a read-only field, returned to the user as information. This field can exist even if a standalone instance doesn&#x27;t have a DR replica yet or the DR replica is deleted.
    },
    &quot;rootPassword&quot;: &quot;A String&quot;, # Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
    &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the instance satisfies PZI. The status is reserved for future use.
    &quot;satisfiesPzs&quot;: True or False, # This status indicates whether the instance satisfies PZS. The status is reserved for future use.
    &quot;scheduledMaintenance&quot;: { # Any scheduled maintenance for this instance. # The start time of any upcoming scheduled maintenance for this instance.
      &quot;canDefer&quot;: True or False,
      &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
      &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
      &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
    },
    &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
    &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
    &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
      &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
      &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
      &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
      &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`
      &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
      &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#sslCert`.
      &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
      &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
    },
    &quot;serviceAccountEmailAddress&quot;: &quot;A String&quot;, # The service account email address assigned to the instance.\This property is read-only.
    &quot;settings&quot;: { # Database instance settings. # The user settings.
      &quot;activationPolicy&quot;: &quot;A String&quot;, # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: * `ALWAYS`: The instance is on, and remains so even in the absence of connection requests. * `NEVER`: The instance is off; it is not activated, even if a connection request arrives.
      &quot;activeDirectoryConfig&quot;: { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
        &quot;adminCredentialSecretName&quot;: &quot;A String&quot;, # Optional. The secret manager key storing the administrator credential. (e.g., projects/{project}/secrets/{secret}).
        &quot;dnsServers&quot;: [ # Optional. Domain controller IPv4 addresses used to bootstrap Active Directory.
          &quot;A String&quot;,
        ],
        &quot;domain&quot;: &quot;A String&quot;, # The name of the domain (e.g., mydomain.com).
        &quot;kind&quot;: &quot;A String&quot;, # This is always sql#activeDirectoryConfig.
        &quot;mode&quot;: &quot;A String&quot;, # Optional. The mode of the Active Directory configuration.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # Optional. The organizational unit distinguished name. This is the full hierarchical path to the organizational unit.
      },
      &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Specifies advanced machine configuration for the instances relevant only for SQL Server.
        &quot;threadsPerCore&quot;: 42, # The number of threads per physical core.
      },
      &quot;authorizedGaeApplications&quot;: [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
        &quot;A String&quot;,
      ],
      &quot;autoUpgradeEnabled&quot;: True or False, # Optional. Cloud SQL for MySQL auto-upgrade configuration. When this parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor versions. The MySQL version must be 8.0.35 or higher.
      &quot;availabilityType&quot;: &quot;A String&quot;, # Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available)./ For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
      &quot;backupConfiguration&quot;: { # Database instance backup configuration. # The daily backup configuration for the instance.
        &quot;backupRetentionSettings&quot;: { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
          &quot;retainedBackups&quot;: 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is &#x27;COUNT&#x27;, we will retain this many backups.
          &quot;retentionUnit&quot;: &quot;A String&quot;, # The unit that &#x27;retained_backups&#x27; represents.
        },
        &quot;backupTier&quot;: &quot;A String&quot;, # Output only. Backup tier that manages the backups for the instance.
        &quot;binaryLogEnabled&quot;: True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
        &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#backupConfiguration`.
        &quot;location&quot;: &quot;A String&quot;, # Location of the backup
        &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Whether point in time recovery is enabled.
        &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
        &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - `HH:MM`.
        &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
        &quot;transactionalLogStorageState&quot;: &quot;A String&quot;, # Output only. This value contains the storage location of transactional logs used to perform point-in-time recovery (PITR) for the database.
      },
      &quot;collation&quot;: &quot;A String&quot;, # The name of server Instance collation.
      &quot;connectionPoolConfig&quot;: { # The managed connection pooling configuration. # Optional. The managed connection pooling configuration for the instance.
        &quot;connectionPoolingEnabled&quot;: True or False, # Whether managed connection pooling is enabled.
        &quot;flags&quot;: [ # Optional. List of connection pool configuration flags.
          { # Connection pool flags for Cloud SQL instances managed connection pool configuration.
            &quot;name&quot;: &quot;A String&quot;, # Required. The name of the flag.
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
          },
        ],
        &quot;poolerCount&quot;: 42, # Output only. Number of connection poolers.
      },
      &quot;connectorEnforcement&quot;: &quot;A String&quot;, # Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors). Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance.
      &quot;crashSafeReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
      &quot;dataApiAccess&quot;: &quot;A String&quot;, # This parameter controls whether to allow using Data API to connect to the instance. Not allowed by default.
      &quot;dataCacheConfig&quot;: { # Data cache configurations. # Configuration for data cache.
        &quot;dataCacheEnabled&quot;: True or False, # Whether data cache is enabled for the instance.
      },
      &quot;dataDiskProvisionedIops&quot;: &quot;A String&quot;, # Optional. Provisioned number of I/O operations per second for the data disk. This field is only used for hyperdisk-balanced disk types.
      &quot;dataDiskProvisionedThroughput&quot;: &quot;A String&quot;, # Optional. Provisioned throughput measured in MiB per second for the data disk. This field is only used for hyperdisk-balanced disk types.
      &quot;dataDiskSizeGb&quot;: &quot;A String&quot;, # The size of data disk, in GB. The data disk size minimum is 10GB.
      &quot;dataDiskType&quot;: &quot;A String&quot;, # The type of data disk: `PD_SSD` (default) or `PD_HDD`. Not used for First Generation instances.
      &quot;databaseFlags&quot;: [ # The database flags passed to the instance at startup.
        { # Database flags for Cloud SQL instances.
          &quot;name&quot;: &quot;A String&quot;, # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
          &quot;value&quot;: &quot;A String&quot;, # The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
        },
      ],
      &quot;databaseReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance.
      &quot;deletionProtectionEnabled&quot;: True or False, # Configuration to protect against accidental instance deletion.
      &quot;denyMaintenancePeriods&quot;: [ # Deny maintenance periods
        { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
          &quot;endDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
          &quot;startDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the deny maintenance period recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
          &quot;time&quot;: &quot;A String&quot;, # Time in UTC when the &quot;deny maintenance period&quot; starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
        },
      ],
      &quot;edition&quot;: &quot;A String&quot;, # Optional. The edition of the instance.
      &quot;enableDataplexIntegration&quot;: True or False, # Optional. By default, Cloud SQL instances have schema extraction disabled for Dataplex. When this parameter is set to true, schema extraction for Dataplex on Cloud SQL instances is activated.
      &quot;enableGoogleMlIntegration&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL instances can connect to Vertex AI to pass requests for real-time predictions and insights to the AI. The default value is false. This applies only to Cloud SQL for MySQL and Cloud SQL for PostgreSQL instances.
      &quot;finalBackupConfig&quot;: { # Config used to determine the final backup settings for the instance. # Optional. The final backup configuration for the instance.
        &quot;enabled&quot;: True or False, # Whether the final backup is enabled for the instance.
        &quot;retentionDays&quot;: 42, # The number of days to retain the final backup after the instance deletion. The final backup will be purged at (time_of_instance_deletion + retention_days).
      },
      &quot;insightsConfig&quot;: { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
        &quot;queryInsightsEnabled&quot;: True or False, # Whether Query Insights feature is enabled.
        &quot;queryPlansPerMinute&quot;: 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
        &quot;queryStringLength&quot;: 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query lengths greater than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
        &quot;recordApplicationTags&quot;: True or False, # Whether Query Insights will record application tags from query when enabled.
        &quot;recordClientAddress&quot;: True or False, # Whether Query Insights will record client address when enabled.
      },
      &quot;ipConfiguration&quot;: { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
        &quot;allocatedIpRange&quot;: &quot;A String&quot;, # The name of the allocated ip range for the private ip Cloud SQL instance. For example: &quot;google-managed-services-default&quot;. If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`
        &quot;authorizedNetworks&quot;: [ # The list of external networks that are allowed to connect to the instance using the IP. In &#x27;CIDR&#x27; notation, also known as &#x27;slash&#x27; notation (for example: `157.197.200.0/24`).
          { # An entry for an Access Control list.
            &quot;expirationTime&quot;: &quot;A String&quot;, # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
            &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#aclEntry`.
            &quot;name&quot;: &quot;A String&quot;, # Optional. A label to identify this entry.
            &quot;value&quot;: &quot;A String&quot;, # The allowlisted value for the access control list.
          },
        ],
        &quot;customSubjectAlternativeNames&quot;: [ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
          &quot;A String&quot;,
        ],
        &quot;enablePrivatePathForGoogleCloudServices&quot;: True or False, # Controls connectivity to private IP instances from Google services, such as BigQuery.
        &quot;ipv4Enabled&quot;: True or False, # Whether the instance is assigned a public IP address or not.
        &quot;privateNetwork&quot;: &quot;A String&quot;, # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.
        &quot;pscConfig&quot;: { # PSC settings for a Cloud SQL instance. # PSC settings for this instance.
          &quot;allowedConsumerProjects&quot;: [ # Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).
            &quot;A String&quot;,
          ],
          &quot;networkAttachmentUri&quot;: &quot;A String&quot;, # Optional. The network attachment of the consumer network that the Private Service Connect enabled Cloud SQL instance is authorized to connect via PSC interface. format: projects/PROJECT/regions/REGION/networkAttachments/ID
          &quot;pscAutoConnections&quot;: [ # Optional. The list of settings for requested Private Service Connect consumer endpoints that can be used to connect to this Cloud SQL instance.
            { # Settings for an automatically-setup Private Service Connect consumer endpoint that is used to connect to a Cloud SQL instance.
              &quot;consumerNetwork&quot;: &quot;A String&quot;, # Optional. The consumer network of this consumer endpoint. This must be a resource path that includes both the host project and the network name. For example, `projects/project1/global/networks/network1`. The consumer host project of this network might be different from the consumer service project.
              &quot;consumerNetworkStatus&quot;: &quot;A String&quot;, # The connection policy status of the consumer network.
              &quot;consumerProject&quot;: &quot;A String&quot;, # Optional. This is the project ID of consumer service project of this consumer endpoint. Optional. This is only applicable if consumer_network is a shared vpc network.
              &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the consumer endpoint.
              &quot;status&quot;: &quot;A String&quot;, # The connection status of the consumer endpoint.
            },
          ],
          &quot;pscEnabled&quot;: True or False, # Whether PSC connectivity is enabled for this instance.
        },
        &quot;requireSsl&quot;: True or False, # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won&#x27;t be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the `require_ssl` flag.
        &quot;serverCaMode&quot;: &quot;A String&quot;, # Specify what type of CA is used for the server certificate.
        &quot;serverCaPool&quot;: &quot;A String&quot;, # Optional. The resource name of the server CA pool for an instance with `CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/{PROJECT}/locations/{REGION}/caPools/{CA_POOL_ID}
        &quot;sslMode&quot;: &quot;A String&quot;, # Specify how SSL/TLS is enforced in database connections. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means accept only SSL connections, while `require_ssl=false` means accept both non-SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `ssl_mode` and accepts only SSL connections.
      },
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#settings`.
      &quot;locationPreference&quot;: { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or Compute Engine zone for better performance. App Engine co-location was only applicable to First Generation instances.
        &quot;followGaeApplication&quot;: &quot;A String&quot;, # The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#locationPreference`.
        &quot;secondaryZone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to &#x27;no_secondary_zone&#x27;.
        &quot;zone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.). WARNING: Changing this might restart the instance.
      },
      &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
        &quot;day&quot;: 42, # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an integer, 1 to 7, where `1` equals Monday.
        &quot;hour&quot;: 42, # Hour of day - 0 to 23. Specify in the UTC time zone.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#maintenanceWindow`.
        &quot;updateTrack&quot;: &quot;A String&quot;, # Maintenance timing settings: `canary`, `stable`, or `week5`. For more information, see [About maintenance on Cloud SQL instances](https://cloud.google.com/sql/docs/mysql/maintenance).
      },
      &quot;passwordValidationPolicy&quot;: { # Database instance local user password validation policy # The local user password validation policy of the instance.
        &quot;complexity&quot;: &quot;A String&quot;, # The complexity of the password.
        &quot;disallowCompromisedCredentials&quot;: True or False, # This field is deprecated and will be removed in a future version of the API.
        &quot;disallowUsernameSubstring&quot;: True or False, # Disallow username as a part of the password.
        &quot;enablePasswordPolicy&quot;: True or False, # Whether the password policy is enabled or not.
        &quot;minLength&quot;: 42, # Minimum number of characters allowed.
        &quot;passwordChangeInterval&quot;: &quot;A String&quot;, # Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL.
        &quot;reuseInterval&quot;: 42, # Number of previous passwords that cannot be reused.
      },
      &quot;pricingPlan&quot;: &quot;A String&quot;, # The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`. Only `PER_USE` is supported for Second Generation instances.
      &quot;readPoolAutoScaleConfig&quot;: { # The read pool auto-scale configuration. # Optional. The read pool auto-scale configuration for the instance.
        &quot;disableScaleIn&quot;: True or False, # Indicates whether read pool auto scaling supports scale in operations (removing nodes).
        &quot;enabled&quot;: True or False, # Indicates whether read pool auto scaling is enabled.
        &quot;maxNodeCount&quot;: 42, # Maximum number of read pool nodes to be maintained.
        &quot;minNodeCount&quot;: 42, # Minimum number of read pool nodes to be maintained.
        &quot;scaleInCooldownSeconds&quot;: 42, # The cooldown period for scale-in operations.
        &quot;scaleOutCooldownSeconds&quot;: 42, # The cooldown period for scale-out operations.
        &quot;targetMetrics&quot;: [ # Optional. Target metrics for read pool auto scaling.
          { # Target metric for read pool auto scaling.
            &quot;metric&quot;: &quot;A String&quot;, # The metric name to be used for auto scaling.
            &quot;targetValue&quot;: 3.14, # The target value for the metric.
          },
        ],
      },
      &quot;replicationLagMaxSeconds&quot;: 42, # Optional. Configuration value for recreation of replica after certain replication lag
      &quot;replicationType&quot;: &quot;A String&quot;, # The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances.
      &quot;retainBackupsOnDelete&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL retains backups of the instance even after the instance is deleted. The ON_DEMAND backup will be retained until customer deletes the backup or the project. The AUTOMATED backup will be retained based on the backups retention setting.
      &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
      &quot;sqlServerAuditConfig&quot;: { # SQL Server specific audit configuration. # SQL Server specific audit configuration.
        &quot;bucket&quot;: &quot;A String&quot;, # The name of the destination bucket (e.g., gs://mybucket).
        &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sqlServerAuditConfig
        &quot;retentionInterval&quot;: &quot;A String&quot;, # How long to keep generated audit files.
        &quot;uploadInterval&quot;: &quot;A String&quot;, # How often to upload generated audit files.
      },
      &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
      &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
      &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance.
      &quot;timeZone&quot;: &quot;A String&quot;, # Server timezone, relevant only for Cloud SQL for SQL Server.
      &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
    },
    &quot;sqlNetworkArchitecture&quot;: &quot;A String&quot;,
    &quot;state&quot;: &quot;A String&quot;, # The current serving state of the Cloud SQL instance.
    &quot;suspensionReason&quot;: [ # If the instance state is SUSPENDED, the reason for the suspension.
      &quot;A String&quot;,
    ],
    &quot;switchTransactionLogsToCloudStorageEnabled&quot;: True or False, # Input only. Whether Cloud SQL is enabled to switch storing point-in-time recovery log files from a data disk to Cloud Storage.
    &quot;tags&quot;: { # Optional. Input only. Immutable. Tag keys and tag values that are bound to this instance. You must represent each item in the map as: `&quot;&quot; : &quot;&quot;`. For example, a single resource can have the following tags: ``` &quot;123/environment&quot;: &quot;production&quot;, &quot;123/costCenter&quot;: &quot;marketing&quot;, ``` For more information on tag creation and management, see https://cloud.google.com/resource-manager/docs/tags/tags-overview.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;upgradableDatabaseVersions&quot;: [ # Output only. All database versions that are available for upgrade.
      { # An available database version. It can be a major or a minor version.
        &quot;displayName&quot;: &quot;A String&quot;, # The database version&#x27;s display name.
        &quot;majorVersion&quot;: &quot;A String&quot;, # The version&#x27;s major version name.
        &quot;name&quot;: &quot;A String&quot;, # The database version name. For MySQL 8.0, this string provides the database major and minor version.
      },
    ],
    &quot;writeEndpoint&quot;: &quot;A String&quot;, # Output only. The dns name of the primary instance in a replication group.
  },
  &quot;kind&quot;: &quot;A String&quot;, # Output only. This is always `sql#backup`.
  &quot;kmsKey&quot;: &quot;A String&quot;, # Output only. This output contains the encryption configuration for a backup and the resource name of the KMS key for disk encryption.
  &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. This output contains the encryption status for a backup and the version of the KMS key that&#x27;s used to encrypt the Cloud SQL instance.
  &quot;location&quot;: &quot;A String&quot;, # The storage location of the backups. The location can be multi-regional.
  &quot;maxChargeableBytes&quot;: &quot;A String&quot;, # Output only. The maximum chargeable bytes for the backup.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the backup. Format: projects/{project}/backups/{backup}.
  &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZI. The status is reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZS. The status is reserved for future use.
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. The URI of this resource.
  &quot;state&quot;: &quot;A String&quot;, # Output only. The status of this backup.
  &quot;timeZone&quot;: &quot;A String&quot;, # Output only. This output contains a backup time zone. If a Cloud SQL for SQL Server instance has a different time zone from the backup&#x27;s time zone, then the restore to the instance doesn&#x27;t happen.
  &quot;ttlDays&quot;: &quot;A String&quot;, # Input only. The time-to-live (TTL) interval for this resource (in days). For example: ttlDays:7, means 7 days from the current time. The expiration time can&#x27;t exceed 365 days from the time that the backup is created.
  &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this backup. The type can be &quot;AUTOMATED&quot;, &quot;ON_DEMAND&quot; or “FINAL”.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
  &quot;acquireSsrsLeaseContext&quot;: { # Acquire SSRS lease context. # The context for acquire SSRS lease operation, if applicable.
    &quot;duration&quot;: &quot;A String&quot;, # Lease duration needed for SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for SSRS setup.
    &quot;serviceLogin&quot;: &quot;A String&quot;, # The username to be used as the service login to connect to the report database for SSRS setup.
    &quot;setupLogin&quot;: &quot;A String&quot;, # The username to be used as the setup login to connect to the database server for SSRS setup.
  },
  &quot;apiWarning&quot;: { # An Admin API warning message. # An Admin API warning message.
    &quot;code&quot;: &quot;A String&quot;, # Code to uniquely identify the warning type.
    &quot;message&quot;: &quot;A String&quot;, # The warning message.
    &quot;region&quot;: &quot;A String&quot;, # The region name for REGION_UNREACHABLE warning.
  },
  &quot;backupContext&quot;: { # Backup context. # The context for backup operation, if applicable.
    &quot;backupId&quot;: &quot;A String&quot;, # The identifier of the backup.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#backupContext`.
    &quot;name&quot;: &quot;A String&quot;, # The name of the backup. Format: projects/{project}/backups/{backup}
  },
  &quot;endTime&quot;: &quot;A String&quot;, # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;error&quot;: { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
    &quot;errors&quot;: [ # The list of errors encountered while processing this operation.
      { # Database instance operation error.
        &quot;code&quot;: &quot;A String&quot;, # Identifies the specific error that occurred.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationError`.
        &quot;message&quot;: &quot;A String&quot;, # Additional information about the error encountered.
      },
    ],
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationErrors`.
  },
  &quot;exportContext&quot;: { # Database instance export context. # The context for export operation, if applicable.
    &quot;bakExportOptions&quot;: { # Options for exporting BAK files (SQL Server-only)
      &quot;bakType&quot;: &quot;A String&quot;, # Type of this bak file will be export, FULL or DIFF, SQL Server only
      &quot;copyOnly&quot;: True or False, # Deprecated: copy_only is deprecated. Use differential_base instead
      &quot;differentialBase&quot;: True or False, # Whether or not the backup can be used as a differential base copy_only backup can not be served as differential base
      &quot;exportLogEndTime&quot;: &quot;A String&quot;, # Optional. The end timestamp when transaction log will be included in the export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs until current time will be included. Only applied to Cloud SQL for SQL Server.
      &quot;exportLogStartTime&quot;: &quot;A String&quot;, # Optional. The begin timestamp when transaction log will be included in the export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs from the beginning of retention period will be included. Only applied to Cloud SQL for SQL Server.
      &quot;stripeCount&quot;: 42, # Option for specifying how many stripes to use for the export. If blank, and the value of the striped field is true, the number of stripes is automatically chosen.
      &quot;striped&quot;: True or False, # Whether or not the export should be striped.
    },
    &quot;csvExportOptions&quot;: { # Options for exporting data as CSV. `MySQL` and `PostgreSQL` instances only.
      &quot;escapeCharacter&quot;: &quot;A String&quot;, # Specifies the character that should appear before a data character that needs to be escaped.
      &quot;fieldsTerminatedBy&quot;: &quot;A String&quot;, # Specifies the character that separates columns within each row (line) of the file.
      &quot;linesTerminatedBy&quot;: &quot;A String&quot;, # This is used to separate lines. If a line does not contain all fields, the rest of the columns are set to their default values.
      &quot;quoteCharacter&quot;: &quot;A String&quot;, # Specifies the quoting character to be used when a data value is quoted.
      &quot;selectQuery&quot;: &quot;A String&quot;, # The select query used to extract the data.
    },
    &quot;databases&quot;: [ # Databases to be exported. `MySQL instances:` If `fileType` is `SQL` and no database is specified, all databases are exported, except for the `mysql` system database. If `fileType` is `CSV`, you can specify one database, either by using this property or by using the `csvExportOptions.selectQuery` property, which takes precedence over this property. `PostgreSQL instances:` If you don&#x27;t specify a database by name, all user databases in the instance are exported. This excludes system databases and Cloud SQL databases used to manage internal operations. Exporting all user databases is only available for directory-formatted parallel export. If `fileType` is `CSV`, this database must match the one specified in the `csvExportOptions.selectQuery` property. `SQL Server instances:` You must specify one database to be exported, and the `fileType` must be `BAK`.
      &quot;A String&quot;,
    ],
    &quot;fileType&quot;: &quot;A String&quot;, # The file type for the specified uri.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#exportContext`.
    &quot;offload&quot;: True or False, # Whether to perform a serverless export.
    &quot;sqlExportOptions&quot;: { # Options for exporting data as SQL statements.
      &quot;mysqlExportOptions&quot;: { # Options for exporting from MySQL.
        &quot;masterData&quot;: 42, # Option to include SQL statement required to set up replication. If set to `1`, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to `2`, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than `1`, --set-gtid-purged is set to OFF.
      },
      &quot;parallel&quot;: True or False, # Optional. Whether or not the export should be parallel.
      &quot;postgresExportOptions&quot;: { # Options for exporting from a Cloud SQL for PostgreSQL instance.
        &quot;clean&quot;: True or False, # Optional. Use this option to include DROP &lt;object&gt; SQL statements. Use these statements to delete database objects before running the import operation.
        &quot;ifExists&quot;: True or False, # Optional. Option to include an IF EXISTS SQL statement with each DROP statement produced by clean.
      },
      &quot;schemaOnly&quot;: True or False, # Export only schemas.
      &quot;tables&quot;: [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
        &quot;A String&quot;,
      ],
      &quot;threads&quot;: 42, # Optional. The number of threads to use for parallel export.
    },
    &quot;tdeExportOptions&quot;: { # Optional. Export parameters specific to SQL Server TDE certificates
      &quot;certificatePath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate public key in the form gs://bucketName/fileName. The instance must have write access to the bucket. Applicable only for SQL Server instances.
      &quot;name&quot;: &quot;A String&quot;, # Required. Certificate name. Applicable only for SQL Server instances.
      &quot;privateKeyPassword&quot;: &quot;A String&quot;, # Required. Password that encrypts the private key.
      &quot;privateKeyPath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate private key in the form gs://bucketName/fileName. The instance must have write access to the location. Applicable only for SQL Server instances.
    },
    &quot;uri&quot;: &quot;A String&quot;, # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form `gs://bucketName/fileName`. If the file already exists, the request succeeds, but the operation fails. If `fileType` is `SQL` and the filename ends with .gz, the contents are compressed.
  },
  &quot;importContext&quot;: { # Database instance import context. # The context for import operation, if applicable.
    &quot;bakImportOptions&quot;: { # Import parameters specific to SQL Server .BAK files
      &quot;bakType&quot;: &quot;A String&quot;, # Type of the bak content, FULL or DIFF
      &quot;encryptionOptions&quot;: {
        &quot;certPath&quot;: &quot;A String&quot;, # Path to the Certificate (.cer) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.
        &quot;keepEncrypted&quot;: True or False, # Optional. Whether the imported file remains encrypted.
        &quot;pvkPassword&quot;: &quot;A String&quot;, # Password that encrypts the private key
        &quot;pvkPath&quot;: &quot;A String&quot;, # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.
      },
      &quot;noRecovery&quot;: True or False, # Whether or not the backup importing will restore database with NORECOVERY option Applies only to Cloud SQL for SQL Server.
      &quot;recoveryOnly&quot;: True or False, # Whether or not the backup importing request will just bring database online without downloading Bak content only one of &quot;no_recovery&quot; and &quot;recovery_only&quot; can be true otherwise error will return. Applies only to Cloud SQL for SQL Server.
      &quot;stopAt&quot;: &quot;A String&quot;, # Optional. The timestamp when the import should stop. This timestamp is in the [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies to Cloud SQL for SQL Server only.
      &quot;stopAtMark&quot;: &quot;A String&quot;, # Optional. The marked transaction where the import should stop. This field is equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server only.
      &quot;striped&quot;: True or False, # Whether or not the backup set being restored is striped. Applies only to Cloud SQL for SQL Server.
    },
    &quot;csvImportOptions&quot;: { # Options for importing data as CSV.
      &quot;columns&quot;: [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
        &quot;A String&quot;,
      ],
      &quot;escapeCharacter&quot;: &quot;A String&quot;, # Specifies the character that should appear before a data character that needs to be escaped.
      &quot;fieldsTerminatedBy&quot;: &quot;A String&quot;, # Specifies the character that separates columns within each row (line) of the file.
      &quot;linesTerminatedBy&quot;: &quot;A String&quot;, # This is used to separate lines. If a line does not contain all fields, the rest of the columns are set to their default values.
      &quot;quoteCharacter&quot;: &quot;A String&quot;, # Specifies the quoting character to be used when a data value is quoted.
      &quot;table&quot;: &quot;A String&quot;, # The table to which CSV data is imported.
    },
    &quot;database&quot;: &quot;A String&quot;, # The target database for the import. If `fileType` is `SQL`, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. For entire instance parallel import operations, the database is overridden by the database name stored in subdirectory name. If `fileType` is `CSV`, one database must be specified.
    &quot;fileType&quot;: &quot;A String&quot;, # The file type for the specified uri.\`SQL`: The file contains SQL statements. \`CSV`: The file contains CSV data.
    &quot;importUser&quot;: &quot;A String&quot;, # The PostgreSQL user for this import operation. PostgreSQL instances only.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#importContext`.
    &quot;sqlImportOptions&quot;: { # Optional. Options for importing data from SQL statements.
      &quot;parallel&quot;: True or False, # Optional. Whether or not the import should be parallel.
      &quot;postgresImportOptions&quot;: { # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
        &quot;clean&quot;: True or False, # Optional. The --clean flag for the pg_restore utility. This flag applies only if you enabled Cloud SQL to import files in parallel.
        &quot;ifExists&quot;: True or False, # Optional. The --if-exists flag for the pg_restore utility. This flag applies only if you enabled Cloud SQL to import files in parallel.
      },
      &quot;threads&quot;: 42, # Optional. The number of threads to use for parallel import.
    },
    &quot;tdeImportOptions&quot;: { # Optional. Import parameters specific to SQL Server TDE certificates
      &quot;certificatePath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate public key in the form gs://bucketName/fileName. The instance must have read access to the file. Applicable only for SQL Server instances.
      &quot;name&quot;: &quot;A String&quot;, # Required. Certificate name. Applicable only for SQL Server instances.
      &quot;privateKeyPassword&quot;: &quot;A String&quot;, # Required. Password that encrypts the private key.
      &quot;privateKeyPath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate private key in the form gs://bucketName/fileName. The instance must have read access to the file. Applicable only for SQL Server instances.
    },
    &quot;uri&quot;: &quot;A String&quot;, # Path to the import file in Cloud Storage, in the form `gs://bucketName/fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`. The instance must have write permissions to the bucket and read access to the file.
  },
  &quot;insertTime&quot;: &quot;A String&quot;, # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operation`.
  &quot;name&quot;: &quot;A String&quot;, # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
  &quot;operationType&quot;: &quot;A String&quot;, # The type of the operation. Valid values are: * `CREATE` * `DELETE` * `UPDATE` * `RESTART` * `IMPORT` * `EXPORT` * `BACKUP_VOLUME` * `RESTORE_VOLUME` * `CREATE_USER` * `DELETE_USER` * `CREATE_DATABASE` * `DELETE_DATABASE`
  &quot;preCheckMajorVersionUpgradeContext&quot;: { # Pre-check major version upgrade context. # This field is only populated when the operation_type is PRE_CHECK_MAJOR_VERSION_UPGRADE. The PreCheckMajorVersionUpgradeContext message itself contains the details for that pre-check, such as the target database version for the upgrade and the results of the check (including any warnings or errors found).
    &quot;kind&quot;: &quot;A String&quot;, # Optional. This is always `sql#preCheckMajorVersionUpgradeContext`.
    &quot;preCheckResponse&quot;: [ # Output only. The responses from the precheck operation.
      { # Structured PreCheckResponse containing message, type, and required actions.
        &quot;actionsRequired&quot;: [ # The actions that the user needs to take. Use repeated for multiple actions.
          &quot;A String&quot;,
        ],
        &quot;message&quot;: &quot;A String&quot;, # The message to be displayed to the user.
        &quot;messageType&quot;: &quot;A String&quot;, # The type of message whether it is an info, warning, or error.
      },
    ],
    &quot;targetDatabaseVersion&quot;: &quot;A String&quot;, # Required. The target database version to upgrade to.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
  &quot;startTime&quot;: &quot;A String&quot;, # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;status&quot;: &quot;A String&quot;, # The status of an operation.
  &quot;subOperationType&quot;: { # The sub operation type based on the operation type. # Optional. The sub operation based on the operation type.
    &quot;maintenanceType&quot;: &quot;A String&quot;, # The type of maintenance to be performed on the instance.
  },
  &quot;targetId&quot;: &quot;A String&quot;, # Name of the resource on which this operation runs.
  &quot;targetLink&quot;: &quot;A String&quot;,
  &quot;targetProject&quot;: &quot;A String&quot;, # The project ID of the target instance related to this operation.
  &quot;user&quot;: &quot;A String&quot;, # The email address of the user who initiated this operation.
}</pre>
</div>

<div class="method">
    <code class="details" id="DeleteBackup">DeleteBackup(name, x__xgafv=None)</code>
  <pre>Deletes the backup.

Args:
  name: string, Required. The name of the backup to delete. Format: projects/{project}/backups/{backup} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
  &quot;acquireSsrsLeaseContext&quot;: { # Acquire SSRS lease context. # The context for acquire SSRS lease operation, if applicable.
    &quot;duration&quot;: &quot;A String&quot;, # Lease duration needed for SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for SSRS setup.
    &quot;serviceLogin&quot;: &quot;A String&quot;, # The username to be used as the service login to connect to the report database for SSRS setup.
    &quot;setupLogin&quot;: &quot;A String&quot;, # The username to be used as the setup login to connect to the database server for SSRS setup.
  },
  &quot;apiWarning&quot;: { # An Admin API warning message. # An Admin API warning message.
    &quot;code&quot;: &quot;A String&quot;, # Code to uniquely identify the warning type.
    &quot;message&quot;: &quot;A String&quot;, # The warning message.
    &quot;region&quot;: &quot;A String&quot;, # The region name for REGION_UNREACHABLE warning.
  },
  &quot;backupContext&quot;: { # Backup context. # The context for backup operation, if applicable.
    &quot;backupId&quot;: &quot;A String&quot;, # The identifier of the backup.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#backupContext`.
    &quot;name&quot;: &quot;A String&quot;, # The name of the backup. Format: projects/{project}/backups/{backup}
  },
  &quot;endTime&quot;: &quot;A String&quot;, # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;error&quot;: { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
    &quot;errors&quot;: [ # The list of errors encountered while processing this operation.
      { # Database instance operation error.
        &quot;code&quot;: &quot;A String&quot;, # Identifies the specific error that occurred.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationError`.
        &quot;message&quot;: &quot;A String&quot;, # Additional information about the error encountered.
      },
    ],
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationErrors`.
  },
  &quot;exportContext&quot;: { # Database instance export context. # The context for export operation, if applicable.
    &quot;bakExportOptions&quot;: { # Options for exporting BAK files (SQL Server-only)
      &quot;bakType&quot;: &quot;A String&quot;, # Type of this bak file will be export, FULL or DIFF, SQL Server only
      &quot;copyOnly&quot;: True or False, # Deprecated: copy_only is deprecated. Use differential_base instead
      &quot;differentialBase&quot;: True or False, # Whether or not the backup can be used as a differential base copy_only backup can not be served as differential base
      &quot;exportLogEndTime&quot;: &quot;A String&quot;, # Optional. The end timestamp when transaction log will be included in the export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs until current time will be included. Only applied to Cloud SQL for SQL Server.
      &quot;exportLogStartTime&quot;: &quot;A String&quot;, # Optional. The begin timestamp when transaction log will be included in the export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs from the beginning of retention period will be included. Only applied to Cloud SQL for SQL Server.
      &quot;stripeCount&quot;: 42, # Option for specifying how many stripes to use for the export. If blank, and the value of the striped field is true, the number of stripes is automatically chosen.
      &quot;striped&quot;: True or False, # Whether or not the export should be striped.
    },
    &quot;csvExportOptions&quot;: { # Options for exporting data as CSV. `MySQL` and `PostgreSQL` instances only.
      &quot;escapeCharacter&quot;: &quot;A String&quot;, # Specifies the character that should appear before a data character that needs to be escaped.
      &quot;fieldsTerminatedBy&quot;: &quot;A String&quot;, # Specifies the character that separates columns within each row (line) of the file.
      &quot;linesTerminatedBy&quot;: &quot;A String&quot;, # This is used to separate lines. If a line does not contain all fields, the rest of the columns are set to their default values.
      &quot;quoteCharacter&quot;: &quot;A String&quot;, # Specifies the quoting character to be used when a data value is quoted.
      &quot;selectQuery&quot;: &quot;A String&quot;, # The select query used to extract the data.
    },
    &quot;databases&quot;: [ # Databases to be exported. `MySQL instances:` If `fileType` is `SQL` and no database is specified, all databases are exported, except for the `mysql` system database. If `fileType` is `CSV`, you can specify one database, either by using this property or by using the `csvExportOptions.selectQuery` property, which takes precedence over this property. `PostgreSQL instances:` If you don&#x27;t specify a database by name, all user databases in the instance are exported. This excludes system databases and Cloud SQL databases used to manage internal operations. Exporting all user databases is only available for directory-formatted parallel export. If `fileType` is `CSV`, this database must match the one specified in the `csvExportOptions.selectQuery` property. `SQL Server instances:` You must specify one database to be exported, and the `fileType` must be `BAK`.
      &quot;A String&quot;,
    ],
    &quot;fileType&quot;: &quot;A String&quot;, # The file type for the specified uri.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#exportContext`.
    &quot;offload&quot;: True or False, # Whether to perform a serverless export.
    &quot;sqlExportOptions&quot;: { # Options for exporting data as SQL statements.
      &quot;mysqlExportOptions&quot;: { # Options for exporting from MySQL.
        &quot;masterData&quot;: 42, # Option to include SQL statement required to set up replication. If set to `1`, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to `2`, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than `1`, --set-gtid-purged is set to OFF.
      },
      &quot;parallel&quot;: True or False, # Optional. Whether or not the export should be parallel.
      &quot;postgresExportOptions&quot;: { # Options for exporting from a Cloud SQL for PostgreSQL instance.
        &quot;clean&quot;: True or False, # Optional. Use this option to include DROP &lt;object&gt; SQL statements. Use these statements to delete database objects before running the import operation.
        &quot;ifExists&quot;: True or False, # Optional. Option to include an IF EXISTS SQL statement with each DROP statement produced by clean.
      },
      &quot;schemaOnly&quot;: True or False, # Export only schemas.
      &quot;tables&quot;: [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
        &quot;A String&quot;,
      ],
      &quot;threads&quot;: 42, # Optional. The number of threads to use for parallel export.
    },
    &quot;tdeExportOptions&quot;: { # Optional. Export parameters specific to SQL Server TDE certificates
      &quot;certificatePath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate public key in the form gs://bucketName/fileName. The instance must have write access to the bucket. Applicable only for SQL Server instances.
      &quot;name&quot;: &quot;A String&quot;, # Required. Certificate name. Applicable only for SQL Server instances.
      &quot;privateKeyPassword&quot;: &quot;A String&quot;, # Required. Password that encrypts the private key.
      &quot;privateKeyPath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate private key in the form gs://bucketName/fileName. The instance must have write access to the location. Applicable only for SQL Server instances.
    },
    &quot;uri&quot;: &quot;A String&quot;, # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form `gs://bucketName/fileName`. If the file already exists, the request succeeds, but the operation fails. If `fileType` is `SQL` and the filename ends with .gz, the contents are compressed.
  },
  &quot;importContext&quot;: { # Database instance import context. # The context for import operation, if applicable.
    &quot;bakImportOptions&quot;: { # Import parameters specific to SQL Server .BAK files
      &quot;bakType&quot;: &quot;A String&quot;, # Type of the bak content, FULL or DIFF
      &quot;encryptionOptions&quot;: {
        &quot;certPath&quot;: &quot;A String&quot;, # Path to the Certificate (.cer) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.
        &quot;keepEncrypted&quot;: True or False, # Optional. Whether the imported file remains encrypted.
        &quot;pvkPassword&quot;: &quot;A String&quot;, # Password that encrypts the private key
        &quot;pvkPath&quot;: &quot;A String&quot;, # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.
      },
      &quot;noRecovery&quot;: True or False, # Whether or not the backup importing will restore database with NORECOVERY option Applies only to Cloud SQL for SQL Server.
      &quot;recoveryOnly&quot;: True or False, # Whether or not the backup importing request will just bring database online without downloading Bak content only one of &quot;no_recovery&quot; and &quot;recovery_only&quot; can be true otherwise error will return. Applies only to Cloud SQL for SQL Server.
      &quot;stopAt&quot;: &quot;A String&quot;, # Optional. The timestamp when the import should stop. This timestamp is in the [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies to Cloud SQL for SQL Server only.
      &quot;stopAtMark&quot;: &quot;A String&quot;, # Optional. The marked transaction where the import should stop. This field is equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server only.
      &quot;striped&quot;: True or False, # Whether or not the backup set being restored is striped. Applies only to Cloud SQL for SQL Server.
    },
    &quot;csvImportOptions&quot;: { # Options for importing data as CSV.
      &quot;columns&quot;: [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
        &quot;A String&quot;,
      ],
      &quot;escapeCharacter&quot;: &quot;A String&quot;, # Specifies the character that should appear before a data character that needs to be escaped.
      &quot;fieldsTerminatedBy&quot;: &quot;A String&quot;, # Specifies the character that separates columns within each row (line) of the file.
      &quot;linesTerminatedBy&quot;: &quot;A String&quot;, # This is used to separate lines. If a line does not contain all fields, the rest of the columns are set to their default values.
      &quot;quoteCharacter&quot;: &quot;A String&quot;, # Specifies the quoting character to be used when a data value is quoted.
      &quot;table&quot;: &quot;A String&quot;, # The table to which CSV data is imported.
    },
    &quot;database&quot;: &quot;A String&quot;, # The target database for the import. If `fileType` is `SQL`, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. For entire instance parallel import operations, the database is overridden by the database name stored in subdirectory name. If `fileType` is `CSV`, one database must be specified.
    &quot;fileType&quot;: &quot;A String&quot;, # The file type for the specified uri.\`SQL`: The file contains SQL statements. \`CSV`: The file contains CSV data.
    &quot;importUser&quot;: &quot;A String&quot;, # The PostgreSQL user for this import operation. PostgreSQL instances only.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#importContext`.
    &quot;sqlImportOptions&quot;: { # Optional. Options for importing data from SQL statements.
      &quot;parallel&quot;: True or False, # Optional. Whether or not the import should be parallel.
      &quot;postgresImportOptions&quot;: { # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
        &quot;clean&quot;: True or False, # Optional. The --clean flag for the pg_restore utility. This flag applies only if you enabled Cloud SQL to import files in parallel.
        &quot;ifExists&quot;: True or False, # Optional. The --if-exists flag for the pg_restore utility. This flag applies only if you enabled Cloud SQL to import files in parallel.
      },
      &quot;threads&quot;: 42, # Optional. The number of threads to use for parallel import.
    },
    &quot;tdeImportOptions&quot;: { # Optional. Import parameters specific to SQL Server TDE certificates
      &quot;certificatePath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate public key in the form gs://bucketName/fileName. The instance must have read access to the file. Applicable only for SQL Server instances.
      &quot;name&quot;: &quot;A String&quot;, # Required. Certificate name. Applicable only for SQL Server instances.
      &quot;privateKeyPassword&quot;: &quot;A String&quot;, # Required. Password that encrypts the private key.
      &quot;privateKeyPath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate private key in the form gs://bucketName/fileName. The instance must have read access to the file. Applicable only for SQL Server instances.
    },
    &quot;uri&quot;: &quot;A String&quot;, # Path to the import file in Cloud Storage, in the form `gs://bucketName/fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`. The instance must have write permissions to the bucket and read access to the file.
  },
  &quot;insertTime&quot;: &quot;A String&quot;, # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operation`.
  &quot;name&quot;: &quot;A String&quot;, # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
  &quot;operationType&quot;: &quot;A String&quot;, # The type of the operation. Valid values are: * `CREATE` * `DELETE` * `UPDATE` * `RESTART` * `IMPORT` * `EXPORT` * `BACKUP_VOLUME` * `RESTORE_VOLUME` * `CREATE_USER` * `DELETE_USER` * `CREATE_DATABASE` * `DELETE_DATABASE`
  &quot;preCheckMajorVersionUpgradeContext&quot;: { # Pre-check major version upgrade context. # This field is only populated when the operation_type is PRE_CHECK_MAJOR_VERSION_UPGRADE. The PreCheckMajorVersionUpgradeContext message itself contains the details for that pre-check, such as the target database version for the upgrade and the results of the check (including any warnings or errors found).
    &quot;kind&quot;: &quot;A String&quot;, # Optional. This is always `sql#preCheckMajorVersionUpgradeContext`.
    &quot;preCheckResponse&quot;: [ # Output only. The responses from the precheck operation.
      { # Structured PreCheckResponse containing message, type, and required actions.
        &quot;actionsRequired&quot;: [ # The actions that the user needs to take. Use repeated for multiple actions.
          &quot;A String&quot;,
        ],
        &quot;message&quot;: &quot;A String&quot;, # The message to be displayed to the user.
        &quot;messageType&quot;: &quot;A String&quot;, # The type of message whether it is an info, warning, or error.
      },
    ],
    &quot;targetDatabaseVersion&quot;: &quot;A String&quot;, # Required. The target database version to upgrade to.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
  &quot;startTime&quot;: &quot;A String&quot;, # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;status&quot;: &quot;A String&quot;, # The status of an operation.
  &quot;subOperationType&quot;: { # The sub operation type based on the operation type. # Optional. The sub operation based on the operation type.
    &quot;maintenanceType&quot;: &quot;A String&quot;, # The type of maintenance to be performed on the instance.
  },
  &quot;targetId&quot;: &quot;A String&quot;, # Name of the resource on which this operation runs.
  &quot;targetLink&quot;: &quot;A String&quot;,
  &quot;targetProject&quot;: &quot;A String&quot;, # The project ID of the target instance related to this operation.
  &quot;user&quot;: &quot;A String&quot;, # The email address of the user who initiated this operation.
}</pre>
</div>

<div class="method">
    <code class="details" id="GetBackup">GetBackup(name, x__xgafv=None)</code>
  <pre>Retrieves a resource containing information about a backup.

Args:
  name: string, Required. The name of the backup to retrieve. Format: projects/{project}/backups/{backup} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A backup resource.
  &quot;backupInterval&quot;: { # Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time. # Output only. This output contains the following values: start_time: All database writes up to this time are available. end_time: Any database writes after this time aren&#x27;t available.
    &quot;endTime&quot;: &quot;A String&quot;, # Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.
    &quot;startTime&quot;: &quot;A String&quot;, # Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.
  },
  &quot;backupKind&quot;: &quot;A String&quot;, # Output only. Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
  &quot;backupRun&quot;: &quot;A String&quot;, # Output only. The mapping to backup run resource used for IAM validations.
  &quot;databaseVersion&quot;: &quot;A String&quot;, # Output only. The database version of the instance of at the time this backup was made.
  &quot;description&quot;: &quot;A String&quot;, # The description of this backup.
  &quot;error&quot;: { # Database instance operation error. # Output only. Information about why the backup operation fails (for example, when the backup state fails).
    &quot;code&quot;: &quot;A String&quot;, # Identifies the specific error that occurred.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationError`.
    &quot;message&quot;: &quot;A String&quot;, # Additional information about the error encountered.
  },
  &quot;expiryTime&quot;: &quot;A String&quot;, # Backup expiration time. A UTC timestamp of when this backup expired.
  &quot;instance&quot;: &quot;A String&quot;, # The name of the source database instance.
  &quot;instanceDeletionTime&quot;: &quot;A String&quot;, # Optional. Output only. Timestamp in UTC of when the instance associated with this backup is deleted.
  &quot;instanceSettings&quot;: { # A Cloud SQL instance resource. # Optional. Output only. The instance setting of the source instance that&#x27;s associated with this backup.
    &quot;availableMaintenanceVersions&quot;: [ # Output only. List all maintenance versions applicable on the instance
      &quot;A String&quot;,
    ],
    &quot;backendType&quot;: &quot;A String&quot;, # The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
    &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the instance was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
    &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
    &quot;databaseInstalledVersion&quot;: &quot;A String&quot;, # Output only. Stores the current database version running on the instance including minor version such as `MYSQL_8_0_18`.
    &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
    &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionConfiguration`.
      &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
    },
    &quot;diskEncryptionStatus&quot;: { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionStatus`.
      &quot;kmsKeyVersionName&quot;: &quot;A String&quot;, # KMS key version used to encrypt the Cloud SQL instance resource
    },
    &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The dns name of the instance.
    &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this instance.
      { # DNS metadata.
        &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
        &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
        &quot;name&quot;: &quot;A String&quot;, # The DNS name.
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
    &quot;failoverReplica&quot;: { # The name and status of the failover replica.
      &quot;available&quot;: True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
      &quot;name&quot;: &quot;A String&quot;, # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn&#x27;t include the project ID.
    },
    &quot;gceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
    &quot;geminiConfig&quot;: { # Gemini instance configuration. # Gemini instance configuration.
      &quot;activeQueryEnabled&quot;: True or False, # Output only. Whether the active query is enabled.
      &quot;entitled&quot;: True or False, # Output only. Whether Gemini is enabled.
      &quot;flagRecommenderEnabled&quot;: True or False, # Output only. Whether the flag recommender is enabled.
      &quot;googleVacuumMgmtEnabled&quot;: True or False, # Output only. Whether the vacuum management is enabled.
      &quot;indexAdvisorEnabled&quot;: True or False, # Output only. Whether the index advisor is enabled.
      &quot;oomSessionCancelEnabled&quot;: True or False, # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
    },
    &quot;includeReplicasForMajorVersionUpgrade&quot;: True or False, # Input only. Determines whether an in-place major version upgrade of replicas happens when an in-place major version upgrade of a primary instance is initiated.
    &quot;instanceType&quot;: &quot;A String&quot;, # The instance type.
    &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
      { # Database instance IP mapping
        &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
        &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
        &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
      },
    ],
    &quot;ipv6Address&quot;: &quot;A String&quot;, # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#instance`.
    &quot;maintenanceVersion&quot;: &quot;A String&quot;, # The current software version on the instance.
    &quot;masterInstanceName&quot;: &quot;A String&quot;, # The name of the instance which will act as primary in the replication setup.
    &quot;maxDiskSize&quot;: &quot;A String&quot;, # The maximum disk size of the instance in bytes.
    &quot;name&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance. This does not include the project ID.
    &quot;nodeCount&quot;: 42, # The number of read pool nodes in a read pool.
    &quot;nodes&quot;: [ # Output only. Entries containing information about each read pool node of the read pool.
      { # Details of a single read pool node of a read pool.
        &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The DNS name of the read pool node.
        &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this read pool node.
          { # DNS metadata.
            &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
            &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
            &quot;name&quot;: &quot;A String&quot;, # The DNS name.
          },
        ],
        &quot;gceZone&quot;: &quot;A String&quot;, # Output only. The zone of the read pool node.
        &quot;ipAddresses&quot;: [ # Output only. Mappings containing IP addresses that can be used to connect to the read pool node.
          { # Database instance IP mapping
            &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
            &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
            &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the read pool node, to be used for retrieving metrics and logs.
        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the read pool node.
      },
    ],
    &quot;onPremisesConfiguration&quot;: { # On-premises instance configuration. # Configuration specific to on-premises instances.
      &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
      &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
      &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
      &quot;dumpFilePath&quot;: &quot;A String&quot;, # The dump file to create the Cloud SQL replica.
      &quot;hostPort&quot;: &quot;A String&quot;, # The host and port of the on-premises instance in host:port format
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#onPremisesConfiguration`.
      &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
      &quot;selectedObjects&quot;: [ # Optional. A list of objects that the user selects for replication from an external source instance.
        { # A list of objects that the user selects for replication from an external source instance.
          &quot;database&quot;: &quot;A String&quot;, # Required. The name of the database to migrate.
        },
      ],
      &quot;sourceInstance&quot;: { # Reference to another Cloud SQL instance. # The reference to Cloud SQL instance if the source is Cloud SQL.
        &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced. This does not include the project ID.
        &quot;project&quot;: &quot;A String&quot;, # The project ID of the Cloud SQL instance being referenced. The default is the same project ID as the instance references it.
        &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
      },
      &quot;sslOption&quot;: &quot;A String&quot;, # Optional. SSL option for replica connection to the on-premises source.
      &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
    },
    &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
      &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend * Writers: * the proactive database wellness job for OOD. * Readers:
      &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
    },
    &quot;primaryDnsName&quot;: &quot;A String&quot;, # Output only. DEPRECATED: please use write_endpoint instead.
    &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
    &quot;pscServiceAttachmentLink&quot;: &quot;A String&quot;, # Output only. The link to service attachment of PSC instance.
    &quot;region&quot;: &quot;A String&quot;, # The geographical region of the Cloud SQL instance. It can be one of the [regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-central1`. The default value is `us-central1`.
    &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
      &quot;cascadableReplica&quot;: True or False, # Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it.
      &quot;failoverTarget&quot;: True or False, # Specifies if the replica is the failover target. If the field is set to `true`, the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#replicaConfiguration`.
      &quot;mysqlReplicaConfiguration&quot;: { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named `master.info` in the data directory.
        &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
        &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
        &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
        &quot;connectRetryInterval&quot;: 42, # Seconds to wait between connect retries. MySQL&#x27;s default is 60 seconds.
        &quot;dumpFilePath&quot;: &quot;A String&quot;, # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#mysqlReplicaConfiguration`.
        &quot;masterHeartbeatPeriod&quot;: &quot;A String&quot;, # Interval in milliseconds between replication heartbeats.
        &quot;password&quot;: &quot;A String&quot;, # The password for the replication connection.
        &quot;sslCipher&quot;: &quot;A String&quot;, # A list of permissible ciphers to use for SSL encryption.
        &quot;username&quot;: &quot;A String&quot;, # The username for the replication connection.
        &quot;verifyServerCertificate&quot;: True or False, # Whether or not to check the primary instance&#x27;s Common Name value in the certificate that it sends during the SSL handshake.
      },
    },
    &quot;replicaNames&quot;: [ # The replicas of the instance.
      &quot;A String&quot;,
    ],
    &quot;replicationCluster&quot;: { # A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL. # Optional. A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL.
      &quot;drReplica&quot;: True or False, # Output only. Read-only field that indicates whether the replica is a DR replica. This field is not set if the instance is a primary instance.
      &quot;failoverDrReplicaName&quot;: &quot;A String&quot;, # Optional. If the instance is a primary instance, then this field identifies the disaster recovery (DR) replica. A DR replica is an optional configuration for Enterprise Plus edition instances. If the instance is a read replica, then the field is not set. Set this field to a replica name to designate a DR replica for a primary instance. Remove the replica name to remove the DR replica designation.
      &quot;psaWriteEndpoint&quot;: &quot;A String&quot;, # Output only. If set, this field indicates this instance has a private service access (PSA) DNS endpoint that is pointing to the primary instance of the cluster. If this instance is the primary, then the DNS endpoint points to this instance. After a switchover or replica failover operation, this DNS endpoint points to the promoted instance. This is a read-only field, returned to the user as information. This field can exist even if a standalone instance doesn&#x27;t have a DR replica yet or the DR replica is deleted.
    },
    &quot;rootPassword&quot;: &quot;A String&quot;, # Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
    &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the instance satisfies PZI. The status is reserved for future use.
    &quot;satisfiesPzs&quot;: True or False, # This status indicates whether the instance satisfies PZS. The status is reserved for future use.
    &quot;scheduledMaintenance&quot;: { # Any scheduled maintenance for this instance. # The start time of any upcoming scheduled maintenance for this instance.
      &quot;canDefer&quot;: True or False,
      &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
      &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
      &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
    },
    &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
    &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
    &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
      &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
      &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
      &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
      &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`
      &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
      &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#sslCert`.
      &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
      &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
    },
    &quot;serviceAccountEmailAddress&quot;: &quot;A String&quot;, # The service account email address assigned to the instance.\This property is read-only.
    &quot;settings&quot;: { # Database instance settings. # The user settings.
      &quot;activationPolicy&quot;: &quot;A String&quot;, # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: * `ALWAYS`: The instance is on, and remains so even in the absence of connection requests. * `NEVER`: The instance is off; it is not activated, even if a connection request arrives.
      &quot;activeDirectoryConfig&quot;: { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
        &quot;adminCredentialSecretName&quot;: &quot;A String&quot;, # Optional. The secret manager key storing the administrator credential. (e.g., projects/{project}/secrets/{secret}).
        &quot;dnsServers&quot;: [ # Optional. Domain controller IPv4 addresses used to bootstrap Active Directory.
          &quot;A String&quot;,
        ],
        &quot;domain&quot;: &quot;A String&quot;, # The name of the domain (e.g., mydomain.com).
        &quot;kind&quot;: &quot;A String&quot;, # This is always sql#activeDirectoryConfig.
        &quot;mode&quot;: &quot;A String&quot;, # Optional. The mode of the Active Directory configuration.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # Optional. The organizational unit distinguished name. This is the full hierarchical path to the organizational unit.
      },
      &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Specifies advanced machine configuration for the instances relevant only for SQL Server.
        &quot;threadsPerCore&quot;: 42, # The number of threads per physical core.
      },
      &quot;authorizedGaeApplications&quot;: [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
        &quot;A String&quot;,
      ],
      &quot;autoUpgradeEnabled&quot;: True or False, # Optional. Cloud SQL for MySQL auto-upgrade configuration. When this parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor versions. The MySQL version must be 8.0.35 or higher.
      &quot;availabilityType&quot;: &quot;A String&quot;, # Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available)./ For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
      &quot;backupConfiguration&quot;: { # Database instance backup configuration. # The daily backup configuration for the instance.
        &quot;backupRetentionSettings&quot;: { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
          &quot;retainedBackups&quot;: 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is &#x27;COUNT&#x27;, we will retain this many backups.
          &quot;retentionUnit&quot;: &quot;A String&quot;, # The unit that &#x27;retained_backups&#x27; represents.
        },
        &quot;backupTier&quot;: &quot;A String&quot;, # Output only. Backup tier that manages the backups for the instance.
        &quot;binaryLogEnabled&quot;: True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
        &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#backupConfiguration`.
        &quot;location&quot;: &quot;A String&quot;, # Location of the backup
        &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Whether point in time recovery is enabled.
        &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
        &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - `HH:MM`.
        &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
        &quot;transactionalLogStorageState&quot;: &quot;A String&quot;, # Output only. This value contains the storage location of transactional logs used to perform point-in-time recovery (PITR) for the database.
      },
      &quot;collation&quot;: &quot;A String&quot;, # The name of server Instance collation.
      &quot;connectionPoolConfig&quot;: { # The managed connection pooling configuration. # Optional. The managed connection pooling configuration for the instance.
        &quot;connectionPoolingEnabled&quot;: True or False, # Whether managed connection pooling is enabled.
        &quot;flags&quot;: [ # Optional. List of connection pool configuration flags.
          { # Connection pool flags for Cloud SQL instances managed connection pool configuration.
            &quot;name&quot;: &quot;A String&quot;, # Required. The name of the flag.
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
          },
        ],
        &quot;poolerCount&quot;: 42, # Output only. Number of connection poolers.
      },
      &quot;connectorEnforcement&quot;: &quot;A String&quot;, # Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors). Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance.
      &quot;crashSafeReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
      &quot;dataApiAccess&quot;: &quot;A String&quot;, # This parameter controls whether to allow using Data API to connect to the instance. Not allowed by default.
      &quot;dataCacheConfig&quot;: { # Data cache configurations. # Configuration for data cache.
        &quot;dataCacheEnabled&quot;: True or False, # Whether data cache is enabled for the instance.
      },
      &quot;dataDiskProvisionedIops&quot;: &quot;A String&quot;, # Optional. Provisioned number of I/O operations per second for the data disk. This field is only used for hyperdisk-balanced disk types.
      &quot;dataDiskProvisionedThroughput&quot;: &quot;A String&quot;, # Optional. Provisioned throughput measured in MiB per second for the data disk. This field is only used for hyperdisk-balanced disk types.
      &quot;dataDiskSizeGb&quot;: &quot;A String&quot;, # The size of data disk, in GB. The data disk size minimum is 10GB.
      &quot;dataDiskType&quot;: &quot;A String&quot;, # The type of data disk: `PD_SSD` (default) or `PD_HDD`. Not used for First Generation instances.
      &quot;databaseFlags&quot;: [ # The database flags passed to the instance at startup.
        { # Database flags for Cloud SQL instances.
          &quot;name&quot;: &quot;A String&quot;, # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
          &quot;value&quot;: &quot;A String&quot;, # The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
        },
      ],
      &quot;databaseReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance.
      &quot;deletionProtectionEnabled&quot;: True or False, # Configuration to protect against accidental instance deletion.
      &quot;denyMaintenancePeriods&quot;: [ # Deny maintenance periods
        { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
          &quot;endDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
          &quot;startDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the deny maintenance period recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
          &quot;time&quot;: &quot;A String&quot;, # Time in UTC when the &quot;deny maintenance period&quot; starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
        },
      ],
      &quot;edition&quot;: &quot;A String&quot;, # Optional. The edition of the instance.
      &quot;enableDataplexIntegration&quot;: True or False, # Optional. By default, Cloud SQL instances have schema extraction disabled for Dataplex. When this parameter is set to true, schema extraction for Dataplex on Cloud SQL instances is activated.
      &quot;enableGoogleMlIntegration&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL instances can connect to Vertex AI to pass requests for real-time predictions and insights to the AI. The default value is false. This applies only to Cloud SQL for MySQL and Cloud SQL for PostgreSQL instances.
      &quot;finalBackupConfig&quot;: { # Config used to determine the final backup settings for the instance. # Optional. The final backup configuration for the instance.
        &quot;enabled&quot;: True or False, # Whether the final backup is enabled for the instance.
        &quot;retentionDays&quot;: 42, # The number of days to retain the final backup after the instance deletion. The final backup will be purged at (time_of_instance_deletion + retention_days).
      },
      &quot;insightsConfig&quot;: { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
        &quot;queryInsightsEnabled&quot;: True or False, # Whether Query Insights feature is enabled.
        &quot;queryPlansPerMinute&quot;: 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
        &quot;queryStringLength&quot;: 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query lengths greater than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
        &quot;recordApplicationTags&quot;: True or False, # Whether Query Insights will record application tags from query when enabled.
        &quot;recordClientAddress&quot;: True or False, # Whether Query Insights will record client address when enabled.
      },
      &quot;ipConfiguration&quot;: { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
        &quot;allocatedIpRange&quot;: &quot;A String&quot;, # The name of the allocated ip range for the private ip Cloud SQL instance. For example: &quot;google-managed-services-default&quot;. If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`
        &quot;authorizedNetworks&quot;: [ # The list of external networks that are allowed to connect to the instance using the IP. In &#x27;CIDR&#x27; notation, also known as &#x27;slash&#x27; notation (for example: `157.197.200.0/24`).
          { # An entry for an Access Control list.
            &quot;expirationTime&quot;: &quot;A String&quot;, # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
            &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#aclEntry`.
            &quot;name&quot;: &quot;A String&quot;, # Optional. A label to identify this entry.
            &quot;value&quot;: &quot;A String&quot;, # The allowlisted value for the access control list.
          },
        ],
        &quot;customSubjectAlternativeNames&quot;: [ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
          &quot;A String&quot;,
        ],
        &quot;enablePrivatePathForGoogleCloudServices&quot;: True or False, # Controls connectivity to private IP instances from Google services, such as BigQuery.
        &quot;ipv4Enabled&quot;: True or False, # Whether the instance is assigned a public IP address or not.
        &quot;privateNetwork&quot;: &quot;A String&quot;, # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.
        &quot;pscConfig&quot;: { # PSC settings for a Cloud SQL instance. # PSC settings for this instance.
          &quot;allowedConsumerProjects&quot;: [ # Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).
            &quot;A String&quot;,
          ],
          &quot;networkAttachmentUri&quot;: &quot;A String&quot;, # Optional. The network attachment of the consumer network that the Private Service Connect enabled Cloud SQL instance is authorized to connect via PSC interface. format: projects/PROJECT/regions/REGION/networkAttachments/ID
          &quot;pscAutoConnections&quot;: [ # Optional. The list of settings for requested Private Service Connect consumer endpoints that can be used to connect to this Cloud SQL instance.
            { # Settings for an automatically-setup Private Service Connect consumer endpoint that is used to connect to a Cloud SQL instance.
              &quot;consumerNetwork&quot;: &quot;A String&quot;, # Optional. The consumer network of this consumer endpoint. This must be a resource path that includes both the host project and the network name. For example, `projects/project1/global/networks/network1`. The consumer host project of this network might be different from the consumer service project.
              &quot;consumerNetworkStatus&quot;: &quot;A String&quot;, # The connection policy status of the consumer network.
              &quot;consumerProject&quot;: &quot;A String&quot;, # Optional. This is the project ID of consumer service project of this consumer endpoint. Optional. This is only applicable if consumer_network is a shared vpc network.
              &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the consumer endpoint.
              &quot;status&quot;: &quot;A String&quot;, # The connection status of the consumer endpoint.
            },
          ],
          &quot;pscEnabled&quot;: True or False, # Whether PSC connectivity is enabled for this instance.
        },
        &quot;requireSsl&quot;: True or False, # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won&#x27;t be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the `require_ssl` flag.
        &quot;serverCaMode&quot;: &quot;A String&quot;, # Specify what type of CA is used for the server certificate.
        &quot;serverCaPool&quot;: &quot;A String&quot;, # Optional. The resource name of the server CA pool for an instance with `CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/{PROJECT}/locations/{REGION}/caPools/{CA_POOL_ID}
        &quot;sslMode&quot;: &quot;A String&quot;, # Specify how SSL/TLS is enforced in database connections. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means accept only SSL connections, while `require_ssl=false` means accept both non-SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `ssl_mode` and accepts only SSL connections.
      },
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#settings`.
      &quot;locationPreference&quot;: { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or Compute Engine zone for better performance. App Engine co-location was only applicable to First Generation instances.
        &quot;followGaeApplication&quot;: &quot;A String&quot;, # The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#locationPreference`.
        &quot;secondaryZone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to &#x27;no_secondary_zone&#x27;.
        &quot;zone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.). WARNING: Changing this might restart the instance.
      },
      &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
        &quot;day&quot;: 42, # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an integer, 1 to 7, where `1` equals Monday.
        &quot;hour&quot;: 42, # Hour of day - 0 to 23. Specify in the UTC time zone.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#maintenanceWindow`.
        &quot;updateTrack&quot;: &quot;A String&quot;, # Maintenance timing settings: `canary`, `stable`, or `week5`. For more information, see [About maintenance on Cloud SQL instances](https://cloud.google.com/sql/docs/mysql/maintenance).
      },
      &quot;passwordValidationPolicy&quot;: { # Database instance local user password validation policy # The local user password validation policy of the instance.
        &quot;complexity&quot;: &quot;A String&quot;, # The complexity of the password.
        &quot;disallowCompromisedCredentials&quot;: True or False, # This field is deprecated and will be removed in a future version of the API.
        &quot;disallowUsernameSubstring&quot;: True or False, # Disallow username as a part of the password.
        &quot;enablePasswordPolicy&quot;: True or False, # Whether the password policy is enabled or not.
        &quot;minLength&quot;: 42, # Minimum number of characters allowed.
        &quot;passwordChangeInterval&quot;: &quot;A String&quot;, # Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL.
        &quot;reuseInterval&quot;: 42, # Number of previous passwords that cannot be reused.
      },
      &quot;pricingPlan&quot;: &quot;A String&quot;, # The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`. Only `PER_USE` is supported for Second Generation instances.
      &quot;readPoolAutoScaleConfig&quot;: { # The read pool auto-scale configuration. # Optional. The read pool auto-scale configuration for the instance.
        &quot;disableScaleIn&quot;: True or False, # Indicates whether read pool auto scaling supports scale in operations (removing nodes).
        &quot;enabled&quot;: True or False, # Indicates whether read pool auto scaling is enabled.
        &quot;maxNodeCount&quot;: 42, # Maximum number of read pool nodes to be maintained.
        &quot;minNodeCount&quot;: 42, # Minimum number of read pool nodes to be maintained.
        &quot;scaleInCooldownSeconds&quot;: 42, # The cooldown period for scale-in operations.
        &quot;scaleOutCooldownSeconds&quot;: 42, # The cooldown period for scale-out operations.
        &quot;targetMetrics&quot;: [ # Optional. Target metrics for read pool auto scaling.
          { # Target metric for read pool auto scaling.
            &quot;metric&quot;: &quot;A String&quot;, # The metric name to be used for auto scaling.
            &quot;targetValue&quot;: 3.14, # The target value for the metric.
          },
        ],
      },
      &quot;replicationLagMaxSeconds&quot;: 42, # Optional. Configuration value for recreation of replica after certain replication lag
      &quot;replicationType&quot;: &quot;A String&quot;, # The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances.
      &quot;retainBackupsOnDelete&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL retains backups of the instance even after the instance is deleted. The ON_DEMAND backup will be retained until customer deletes the backup or the project. The AUTOMATED backup will be retained based on the backups retention setting.
      &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
      &quot;sqlServerAuditConfig&quot;: { # SQL Server specific audit configuration. # SQL Server specific audit configuration.
        &quot;bucket&quot;: &quot;A String&quot;, # The name of the destination bucket (e.g., gs://mybucket).
        &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sqlServerAuditConfig
        &quot;retentionInterval&quot;: &quot;A String&quot;, # How long to keep generated audit files.
        &quot;uploadInterval&quot;: &quot;A String&quot;, # How often to upload generated audit files.
      },
      &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
      &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
      &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance.
      &quot;timeZone&quot;: &quot;A String&quot;, # Server timezone, relevant only for Cloud SQL for SQL Server.
      &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
    },
    &quot;sqlNetworkArchitecture&quot;: &quot;A String&quot;,
    &quot;state&quot;: &quot;A String&quot;, # The current serving state of the Cloud SQL instance.
    &quot;suspensionReason&quot;: [ # If the instance state is SUSPENDED, the reason for the suspension.
      &quot;A String&quot;,
    ],
    &quot;switchTransactionLogsToCloudStorageEnabled&quot;: True or False, # Input only. Whether Cloud SQL is enabled to switch storing point-in-time recovery log files from a data disk to Cloud Storage.
    &quot;tags&quot;: { # Optional. Input only. Immutable. Tag keys and tag values that are bound to this instance. You must represent each item in the map as: `&quot;&quot; : &quot;&quot;`. For example, a single resource can have the following tags: ``` &quot;123/environment&quot;: &quot;production&quot;, &quot;123/costCenter&quot;: &quot;marketing&quot;, ``` For more information on tag creation and management, see https://cloud.google.com/resource-manager/docs/tags/tags-overview.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;upgradableDatabaseVersions&quot;: [ # Output only. All database versions that are available for upgrade.
      { # An available database version. It can be a major or a minor version.
        &quot;displayName&quot;: &quot;A String&quot;, # The database version&#x27;s display name.
        &quot;majorVersion&quot;: &quot;A String&quot;, # The version&#x27;s major version name.
        &quot;name&quot;: &quot;A String&quot;, # The database version name. For MySQL 8.0, this string provides the database major and minor version.
      },
    ],
    &quot;writeEndpoint&quot;: &quot;A String&quot;, # Output only. The dns name of the primary instance in a replication group.
  },
  &quot;kind&quot;: &quot;A String&quot;, # Output only. This is always `sql#backup`.
  &quot;kmsKey&quot;: &quot;A String&quot;, # Output only. This output contains the encryption configuration for a backup and the resource name of the KMS key for disk encryption.
  &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. This output contains the encryption status for a backup and the version of the KMS key that&#x27;s used to encrypt the Cloud SQL instance.
  &quot;location&quot;: &quot;A String&quot;, # The storage location of the backups. The location can be multi-regional.
  &quot;maxChargeableBytes&quot;: &quot;A String&quot;, # Output only. The maximum chargeable bytes for the backup.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the backup. Format: projects/{project}/backups/{backup}.
  &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZI. The status is reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZS. The status is reserved for future use.
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. The URI of this resource.
  &quot;state&quot;: &quot;A String&quot;, # Output only. The status of this backup.
  &quot;timeZone&quot;: &quot;A String&quot;, # Output only. This output contains a backup time zone. If a Cloud SQL for SQL Server instance has a different time zone from the backup&#x27;s time zone, then the restore to the instance doesn&#x27;t happen.
  &quot;ttlDays&quot;: &quot;A String&quot;, # Input only. The time-to-live (TTL) interval for this resource (in days). For example: ttlDays:7, means 7 days from the current time. The expiration time can&#x27;t exceed 365 days from the time that the backup is created.
  &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this backup. The type can be &quot;AUTOMATED&quot;, &quot;ON_DEMAND&quot; or “FINAL”.
}</pre>
</div>

<div class="method">
    <code class="details" id="ListBackups">ListBackups(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists all backups associated with the project.

Args:
  parent: string, Required. The parent that owns this collection of backups. Format: projects/{project} (required)
  filter: string, Multiple filter queries are separated by spaces. For example, &#x27;instance:abc AND type:FINAL, &#x27;location:us&#x27;, &#x27;backupInterval.startTime&gt;=1950-01-01T01:01:25.771Z&#x27;. You can filter by type, instance, backupInterval.startTime (creation time), or location.
  pageSize: integer, The maximum number of backups to return per response. The service might return fewer backups than this value. If a value for this parameter isn&#x27;t specified, then, at most, 500 backups are returned. The maximum value is 2,000. Any values that you set, which are greater than 2,000, are changed to 2,000.
  pageToken: string, A page token, received from a previous `ListBackups` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBackups` must match the call that provided the page token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response payload containing a list of the backups.
  &quot;backups&quot;: [ # A list of backups.
    { # A backup resource.
      &quot;backupInterval&quot;: { # Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time. # Output only. This output contains the following values: start_time: All database writes up to this time are available. end_time: Any database writes after this time aren&#x27;t available.
        &quot;endTime&quot;: &quot;A String&quot;, # Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.
        &quot;startTime&quot;: &quot;A String&quot;, # Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.
      },
      &quot;backupKind&quot;: &quot;A String&quot;, # Output only. Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
      &quot;backupRun&quot;: &quot;A String&quot;, # Output only. The mapping to backup run resource used for IAM validations.
      &quot;databaseVersion&quot;: &quot;A String&quot;, # Output only. The database version of the instance of at the time this backup was made.
      &quot;description&quot;: &quot;A String&quot;, # The description of this backup.
      &quot;error&quot;: { # Database instance operation error. # Output only. Information about why the backup operation fails (for example, when the backup state fails).
        &quot;code&quot;: &quot;A String&quot;, # Identifies the specific error that occurred.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationError`.
        &quot;message&quot;: &quot;A String&quot;, # Additional information about the error encountered.
      },
      &quot;expiryTime&quot;: &quot;A String&quot;, # Backup expiration time. A UTC timestamp of when this backup expired.
      &quot;instance&quot;: &quot;A String&quot;, # The name of the source database instance.
      &quot;instanceDeletionTime&quot;: &quot;A String&quot;, # Optional. Output only. Timestamp in UTC of when the instance associated with this backup is deleted.
      &quot;instanceSettings&quot;: { # A Cloud SQL instance resource. # Optional. Output only. The instance setting of the source instance that&#x27;s associated with this backup.
        &quot;availableMaintenanceVersions&quot;: [ # Output only. List all maintenance versions applicable on the instance
          &quot;A String&quot;,
        ],
        &quot;backendType&quot;: &quot;A String&quot;, # The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
        &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
        &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the instance was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
        &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
        &quot;databaseInstalledVersion&quot;: &quot;A String&quot;, # Output only. Stores the current database version running on the instance including minor version such as `MYSQL_8_0_18`.
        &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
        &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
          &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionConfiguration`.
          &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
        },
        &quot;diskEncryptionStatus&quot;: { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
          &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionStatus`.
          &quot;kmsKeyVersionName&quot;: &quot;A String&quot;, # KMS key version used to encrypt the Cloud SQL instance resource
        },
        &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The dns name of the instance.
        &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this instance.
          { # DNS metadata.
            &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
            &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
            &quot;name&quot;: &quot;A String&quot;, # The DNS name.
          },
        ],
        &quot;etag&quot;: &quot;A String&quot;, # This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
        &quot;failoverReplica&quot;: { # The name and status of the failover replica.
          &quot;available&quot;: True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
          &quot;name&quot;: &quot;A String&quot;, # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn&#x27;t include the project ID.
        },
        &quot;gceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
        &quot;geminiConfig&quot;: { # Gemini instance configuration. # Gemini instance configuration.
          &quot;activeQueryEnabled&quot;: True or False, # Output only. Whether the active query is enabled.
          &quot;entitled&quot;: True or False, # Output only. Whether Gemini is enabled.
          &quot;flagRecommenderEnabled&quot;: True or False, # Output only. Whether the flag recommender is enabled.
          &quot;googleVacuumMgmtEnabled&quot;: True or False, # Output only. Whether the vacuum management is enabled.
          &quot;indexAdvisorEnabled&quot;: True or False, # Output only. Whether the index advisor is enabled.
          &quot;oomSessionCancelEnabled&quot;: True or False, # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
        },
        &quot;includeReplicasForMajorVersionUpgrade&quot;: True or False, # Input only. Determines whether an in-place major version upgrade of replicas happens when an in-place major version upgrade of a primary instance is initiated.
        &quot;instanceType&quot;: &quot;A String&quot;, # The instance type.
        &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
          { # Database instance IP mapping
            &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
            &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
            &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
          },
        ],
        &quot;ipv6Address&quot;: &quot;A String&quot;, # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#instance`.
        &quot;maintenanceVersion&quot;: &quot;A String&quot;, # The current software version on the instance.
        &quot;masterInstanceName&quot;: &quot;A String&quot;, # The name of the instance which will act as primary in the replication setup.
        &quot;maxDiskSize&quot;: &quot;A String&quot;, # The maximum disk size of the instance in bytes.
        &quot;name&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance. This does not include the project ID.
        &quot;nodeCount&quot;: 42, # The number of read pool nodes in a read pool.
        &quot;nodes&quot;: [ # Output only. Entries containing information about each read pool node of the read pool.
          { # Details of a single read pool node of a read pool.
            &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The DNS name of the read pool node.
            &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this read pool node.
              { # DNS metadata.
                &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
                &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
                &quot;name&quot;: &quot;A String&quot;, # The DNS name.
              },
            ],
            &quot;gceZone&quot;: &quot;A String&quot;, # Output only. The zone of the read pool node.
            &quot;ipAddresses&quot;: [ # Output only. Mappings containing IP addresses that can be used to connect to the read pool node.
              { # Database instance IP mapping
                &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
                &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
                &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
              },
            ],
            &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the read pool node, to be used for retrieving metrics and logs.
            &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the read pool node.
          },
        ],
        &quot;onPremisesConfiguration&quot;: { # On-premises instance configuration. # Configuration specific to on-premises instances.
          &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
          &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
          &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
          &quot;dumpFilePath&quot;: &quot;A String&quot;, # The dump file to create the Cloud SQL replica.
          &quot;hostPort&quot;: &quot;A String&quot;, # The host and port of the on-premises instance in host:port format
          &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#onPremisesConfiguration`.
          &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
          &quot;selectedObjects&quot;: [ # Optional. A list of objects that the user selects for replication from an external source instance.
            { # A list of objects that the user selects for replication from an external source instance.
              &quot;database&quot;: &quot;A String&quot;, # Required. The name of the database to migrate.
            },
          ],
          &quot;sourceInstance&quot;: { # Reference to another Cloud SQL instance. # The reference to Cloud SQL instance if the source is Cloud SQL.
            &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced. This does not include the project ID.
            &quot;project&quot;: &quot;A String&quot;, # The project ID of the Cloud SQL instance being referenced. The default is the same project ID as the instance references it.
            &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
          },
          &quot;sslOption&quot;: &quot;A String&quot;, # Optional. SSL option for replica connection to the on-premises source.
          &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
        },
        &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
          &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend * Writers: * the proactive database wellness job for OOD. * Readers:
          &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
        },
        &quot;primaryDnsName&quot;: &quot;A String&quot;, # Output only. DEPRECATED: please use write_endpoint instead.
        &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
        &quot;pscServiceAttachmentLink&quot;: &quot;A String&quot;, # Output only. The link to service attachment of PSC instance.
        &quot;region&quot;: &quot;A String&quot;, # The geographical region of the Cloud SQL instance. It can be one of the [regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-central1`. The default value is `us-central1`.
        &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
          &quot;cascadableReplica&quot;: True or False, # Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it.
          &quot;failoverTarget&quot;: True or False, # Specifies if the replica is the failover target. If the field is set to `true`, the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
          &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#replicaConfiguration`.
          &quot;mysqlReplicaConfiguration&quot;: { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named `master.info` in the data directory.
            &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
            &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
            &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
            &quot;connectRetryInterval&quot;: 42, # Seconds to wait between connect retries. MySQL&#x27;s default is 60 seconds.
            &quot;dumpFilePath&quot;: &quot;A String&quot;, # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
            &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#mysqlReplicaConfiguration`.
            &quot;masterHeartbeatPeriod&quot;: &quot;A String&quot;, # Interval in milliseconds between replication heartbeats.
            &quot;password&quot;: &quot;A String&quot;, # The password for the replication connection.
            &quot;sslCipher&quot;: &quot;A String&quot;, # A list of permissible ciphers to use for SSL encryption.
            &quot;username&quot;: &quot;A String&quot;, # The username for the replication connection.
            &quot;verifyServerCertificate&quot;: True or False, # Whether or not to check the primary instance&#x27;s Common Name value in the certificate that it sends during the SSL handshake.
          },
        },
        &quot;replicaNames&quot;: [ # The replicas of the instance.
          &quot;A String&quot;,
        ],
        &quot;replicationCluster&quot;: { # A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL. # Optional. A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL.
          &quot;drReplica&quot;: True or False, # Output only. Read-only field that indicates whether the replica is a DR replica. This field is not set if the instance is a primary instance.
          &quot;failoverDrReplicaName&quot;: &quot;A String&quot;, # Optional. If the instance is a primary instance, then this field identifies the disaster recovery (DR) replica. A DR replica is an optional configuration for Enterprise Plus edition instances. If the instance is a read replica, then the field is not set. Set this field to a replica name to designate a DR replica for a primary instance. Remove the replica name to remove the DR replica designation.
          &quot;psaWriteEndpoint&quot;: &quot;A String&quot;, # Output only. If set, this field indicates this instance has a private service access (PSA) DNS endpoint that is pointing to the primary instance of the cluster. If this instance is the primary, then the DNS endpoint points to this instance. After a switchover or replica failover operation, this DNS endpoint points to the promoted instance. This is a read-only field, returned to the user as information. This field can exist even if a standalone instance doesn&#x27;t have a DR replica yet or the DR replica is deleted.
        },
        &quot;rootPassword&quot;: &quot;A String&quot;, # Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
        &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the instance satisfies PZI. The status is reserved for future use.
        &quot;satisfiesPzs&quot;: True or False, # This status indicates whether the instance satisfies PZS. The status is reserved for future use.
        &quot;scheduledMaintenance&quot;: { # Any scheduled maintenance for this instance. # The start time of any upcoming scheduled maintenance for this instance.
          &quot;canDefer&quot;: True or False,
          &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
          &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
          &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
        },
        &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
        &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
        &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
          &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
          &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
          &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
          &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`
          &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
          &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
          &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#sslCert`.
          &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
          &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
        },
        &quot;serviceAccountEmailAddress&quot;: &quot;A String&quot;, # The service account email address assigned to the instance.\This property is read-only.
        &quot;settings&quot;: { # Database instance settings. # The user settings.
          &quot;activationPolicy&quot;: &quot;A String&quot;, # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: * `ALWAYS`: The instance is on, and remains so even in the absence of connection requests. * `NEVER`: The instance is off; it is not activated, even if a connection request arrives.
          &quot;activeDirectoryConfig&quot;: { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
            &quot;adminCredentialSecretName&quot;: &quot;A String&quot;, # Optional. The secret manager key storing the administrator credential. (e.g., projects/{project}/secrets/{secret}).
            &quot;dnsServers&quot;: [ # Optional. Domain controller IPv4 addresses used to bootstrap Active Directory.
              &quot;A String&quot;,
            ],
            &quot;domain&quot;: &quot;A String&quot;, # The name of the domain (e.g., mydomain.com).
            &quot;kind&quot;: &quot;A String&quot;, # This is always sql#activeDirectoryConfig.
            &quot;mode&quot;: &quot;A String&quot;, # Optional. The mode of the Active Directory configuration.
            &quot;organizationalUnit&quot;: &quot;A String&quot;, # Optional. The organizational unit distinguished name. This is the full hierarchical path to the organizational unit.
          },
          &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Specifies advanced machine configuration for the instances relevant only for SQL Server.
            &quot;threadsPerCore&quot;: 42, # The number of threads per physical core.
          },
          &quot;authorizedGaeApplications&quot;: [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
            &quot;A String&quot;,
          ],
          &quot;autoUpgradeEnabled&quot;: True or False, # Optional. Cloud SQL for MySQL auto-upgrade configuration. When this parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor versions. The MySQL version must be 8.0.35 or higher.
          &quot;availabilityType&quot;: &quot;A String&quot;, # Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available)./ For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
          &quot;backupConfiguration&quot;: { # Database instance backup configuration. # The daily backup configuration for the instance.
            &quot;backupRetentionSettings&quot;: { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
              &quot;retainedBackups&quot;: 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is &#x27;COUNT&#x27;, we will retain this many backups.
              &quot;retentionUnit&quot;: &quot;A String&quot;, # The unit that &#x27;retained_backups&#x27; represents.
            },
            &quot;backupTier&quot;: &quot;A String&quot;, # Output only. Backup tier that manages the backups for the instance.
            &quot;binaryLogEnabled&quot;: True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
            &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
            &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#backupConfiguration`.
            &quot;location&quot;: &quot;A String&quot;, # Location of the backup
            &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Whether point in time recovery is enabled.
            &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
            &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - `HH:MM`.
            &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
            &quot;transactionalLogStorageState&quot;: &quot;A String&quot;, # Output only. This value contains the storage location of transactional logs used to perform point-in-time recovery (PITR) for the database.
          },
          &quot;collation&quot;: &quot;A String&quot;, # The name of server Instance collation.
          &quot;connectionPoolConfig&quot;: { # The managed connection pooling configuration. # Optional. The managed connection pooling configuration for the instance.
            &quot;connectionPoolingEnabled&quot;: True or False, # Whether managed connection pooling is enabled.
            &quot;flags&quot;: [ # Optional. List of connection pool configuration flags.
              { # Connection pool flags for Cloud SQL instances managed connection pool configuration.
                &quot;name&quot;: &quot;A String&quot;, # Required. The name of the flag.
                &quot;value&quot;: &quot;A String&quot;, # Required. The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
              },
            ],
            &quot;poolerCount&quot;: 42, # Output only. Number of connection poolers.
          },
          &quot;connectorEnforcement&quot;: &quot;A String&quot;, # Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors). Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance.
          &quot;crashSafeReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
          &quot;dataApiAccess&quot;: &quot;A String&quot;, # This parameter controls whether to allow using Data API to connect to the instance. Not allowed by default.
          &quot;dataCacheConfig&quot;: { # Data cache configurations. # Configuration for data cache.
            &quot;dataCacheEnabled&quot;: True or False, # Whether data cache is enabled for the instance.
          },
          &quot;dataDiskProvisionedIops&quot;: &quot;A String&quot;, # Optional. Provisioned number of I/O operations per second for the data disk. This field is only used for hyperdisk-balanced disk types.
          &quot;dataDiskProvisionedThroughput&quot;: &quot;A String&quot;, # Optional. Provisioned throughput measured in MiB per second for the data disk. This field is only used for hyperdisk-balanced disk types.
          &quot;dataDiskSizeGb&quot;: &quot;A String&quot;, # The size of data disk, in GB. The data disk size minimum is 10GB.
          &quot;dataDiskType&quot;: &quot;A String&quot;, # The type of data disk: `PD_SSD` (default) or `PD_HDD`. Not used for First Generation instances.
          &quot;databaseFlags&quot;: [ # The database flags passed to the instance at startup.
            { # Database flags for Cloud SQL instances.
              &quot;name&quot;: &quot;A String&quot;, # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
              &quot;value&quot;: &quot;A String&quot;, # The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
            },
          ],
          &quot;databaseReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance.
          &quot;deletionProtectionEnabled&quot;: True or False, # Configuration to protect against accidental instance deletion.
          &quot;denyMaintenancePeriods&quot;: [ # Deny maintenance periods
            { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
              &quot;endDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
              &quot;startDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the deny maintenance period recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
              &quot;time&quot;: &quot;A String&quot;, # Time in UTC when the &quot;deny maintenance period&quot; starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
            },
          ],
          &quot;edition&quot;: &quot;A String&quot;, # Optional. The edition of the instance.
          &quot;enableDataplexIntegration&quot;: True or False, # Optional. By default, Cloud SQL instances have schema extraction disabled for Dataplex. When this parameter is set to true, schema extraction for Dataplex on Cloud SQL instances is activated.
          &quot;enableGoogleMlIntegration&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL instances can connect to Vertex AI to pass requests for real-time predictions and insights to the AI. The default value is false. This applies only to Cloud SQL for MySQL and Cloud SQL for PostgreSQL instances.
          &quot;finalBackupConfig&quot;: { # Config used to determine the final backup settings for the instance. # Optional. The final backup configuration for the instance.
            &quot;enabled&quot;: True or False, # Whether the final backup is enabled for the instance.
            &quot;retentionDays&quot;: 42, # The number of days to retain the final backup after the instance deletion. The final backup will be purged at (time_of_instance_deletion + retention_days).
          },
          &quot;insightsConfig&quot;: { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
            &quot;queryInsightsEnabled&quot;: True or False, # Whether Query Insights feature is enabled.
            &quot;queryPlansPerMinute&quot;: 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
            &quot;queryStringLength&quot;: 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query lengths greater than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
            &quot;recordApplicationTags&quot;: True or False, # Whether Query Insights will record application tags from query when enabled.
            &quot;recordClientAddress&quot;: True or False, # Whether Query Insights will record client address when enabled.
          },
          &quot;ipConfiguration&quot;: { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
            &quot;allocatedIpRange&quot;: &quot;A String&quot;, # The name of the allocated ip range for the private ip Cloud SQL instance. For example: &quot;google-managed-services-default&quot;. If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`
            &quot;authorizedNetworks&quot;: [ # The list of external networks that are allowed to connect to the instance using the IP. In &#x27;CIDR&#x27; notation, also known as &#x27;slash&#x27; notation (for example: `157.197.200.0/24`).
              { # An entry for an Access Control list.
                &quot;expirationTime&quot;: &quot;A String&quot;, # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
                &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#aclEntry`.
                &quot;name&quot;: &quot;A String&quot;, # Optional. A label to identify this entry.
                &quot;value&quot;: &quot;A String&quot;, # The allowlisted value for the access control list.
              },
            ],
            &quot;customSubjectAlternativeNames&quot;: [ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
              &quot;A String&quot;,
            ],
            &quot;enablePrivatePathForGoogleCloudServices&quot;: True or False, # Controls connectivity to private IP instances from Google services, such as BigQuery.
            &quot;ipv4Enabled&quot;: True or False, # Whether the instance is assigned a public IP address or not.
            &quot;privateNetwork&quot;: &quot;A String&quot;, # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.
            &quot;pscConfig&quot;: { # PSC settings for a Cloud SQL instance. # PSC settings for this instance.
              &quot;allowedConsumerProjects&quot;: [ # Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).
                &quot;A String&quot;,
              ],
              &quot;networkAttachmentUri&quot;: &quot;A String&quot;, # Optional. The network attachment of the consumer network that the Private Service Connect enabled Cloud SQL instance is authorized to connect via PSC interface. format: projects/PROJECT/regions/REGION/networkAttachments/ID
              &quot;pscAutoConnections&quot;: [ # Optional. The list of settings for requested Private Service Connect consumer endpoints that can be used to connect to this Cloud SQL instance.
                { # Settings for an automatically-setup Private Service Connect consumer endpoint that is used to connect to a Cloud SQL instance.
                  &quot;consumerNetwork&quot;: &quot;A String&quot;, # Optional. The consumer network of this consumer endpoint. This must be a resource path that includes both the host project and the network name. For example, `projects/project1/global/networks/network1`. The consumer host project of this network might be different from the consumer service project.
                  &quot;consumerNetworkStatus&quot;: &quot;A String&quot;, # The connection policy status of the consumer network.
                  &quot;consumerProject&quot;: &quot;A String&quot;, # Optional. This is the project ID of consumer service project of this consumer endpoint. Optional. This is only applicable if consumer_network is a shared vpc network.
                  &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the consumer endpoint.
                  &quot;status&quot;: &quot;A String&quot;, # The connection status of the consumer endpoint.
                },
              ],
              &quot;pscEnabled&quot;: True or False, # Whether PSC connectivity is enabled for this instance.
            },
            &quot;requireSsl&quot;: True or False, # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won&#x27;t be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the `require_ssl` flag.
            &quot;serverCaMode&quot;: &quot;A String&quot;, # Specify what type of CA is used for the server certificate.
            &quot;serverCaPool&quot;: &quot;A String&quot;, # Optional. The resource name of the server CA pool for an instance with `CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/{PROJECT}/locations/{REGION}/caPools/{CA_POOL_ID}
            &quot;sslMode&quot;: &quot;A String&quot;, # Specify how SSL/TLS is enforced in database connections. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means accept only SSL connections, while `require_ssl=false` means accept both non-SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `ssl_mode` and accepts only SSL connections.
          },
          &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#settings`.
          &quot;locationPreference&quot;: { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or Compute Engine zone for better performance. App Engine co-location was only applicable to First Generation instances.
            &quot;followGaeApplication&quot;: &quot;A String&quot;, # The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance.
            &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#locationPreference`.
            &quot;secondaryZone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to &#x27;no_secondary_zone&#x27;.
            &quot;zone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.). WARNING: Changing this might restart the instance.
          },
          &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
            &quot;day&quot;: 42, # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an integer, 1 to 7, where `1` equals Monday.
            &quot;hour&quot;: 42, # Hour of day - 0 to 23. Specify in the UTC time zone.
            &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#maintenanceWindow`.
            &quot;updateTrack&quot;: &quot;A String&quot;, # Maintenance timing settings: `canary`, `stable`, or `week5`. For more information, see [About maintenance on Cloud SQL instances](https://cloud.google.com/sql/docs/mysql/maintenance).
          },
          &quot;passwordValidationPolicy&quot;: { # Database instance local user password validation policy # The local user password validation policy of the instance.
            &quot;complexity&quot;: &quot;A String&quot;, # The complexity of the password.
            &quot;disallowCompromisedCredentials&quot;: True or False, # This field is deprecated and will be removed in a future version of the API.
            &quot;disallowUsernameSubstring&quot;: True or False, # Disallow username as a part of the password.
            &quot;enablePasswordPolicy&quot;: True or False, # Whether the password policy is enabled or not.
            &quot;minLength&quot;: 42, # Minimum number of characters allowed.
            &quot;passwordChangeInterval&quot;: &quot;A String&quot;, # Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL.
            &quot;reuseInterval&quot;: 42, # Number of previous passwords that cannot be reused.
          },
          &quot;pricingPlan&quot;: &quot;A String&quot;, # The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`. Only `PER_USE` is supported for Second Generation instances.
          &quot;readPoolAutoScaleConfig&quot;: { # The read pool auto-scale configuration. # Optional. The read pool auto-scale configuration for the instance.
            &quot;disableScaleIn&quot;: True or False, # Indicates whether read pool auto scaling supports scale in operations (removing nodes).
            &quot;enabled&quot;: True or False, # Indicates whether read pool auto scaling is enabled.
            &quot;maxNodeCount&quot;: 42, # Maximum number of read pool nodes to be maintained.
            &quot;minNodeCount&quot;: 42, # Minimum number of read pool nodes to be maintained.
            &quot;scaleInCooldownSeconds&quot;: 42, # The cooldown period for scale-in operations.
            &quot;scaleOutCooldownSeconds&quot;: 42, # The cooldown period for scale-out operations.
            &quot;targetMetrics&quot;: [ # Optional. Target metrics for read pool auto scaling.
              { # Target metric for read pool auto scaling.
                &quot;metric&quot;: &quot;A String&quot;, # The metric name to be used for auto scaling.
                &quot;targetValue&quot;: 3.14, # The target value for the metric.
              },
            ],
          },
          &quot;replicationLagMaxSeconds&quot;: 42, # Optional. Configuration value for recreation of replica after certain replication lag
          &quot;replicationType&quot;: &quot;A String&quot;, # The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances.
          &quot;retainBackupsOnDelete&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL retains backups of the instance even after the instance is deleted. The ON_DEMAND backup will be retained until customer deletes the backup or the project. The AUTOMATED backup will be retained based on the backups retention setting.
          &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
          &quot;sqlServerAuditConfig&quot;: { # SQL Server specific audit configuration. # SQL Server specific audit configuration.
            &quot;bucket&quot;: &quot;A String&quot;, # The name of the destination bucket (e.g., gs://mybucket).
            &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sqlServerAuditConfig
            &quot;retentionInterval&quot;: &quot;A String&quot;, # How long to keep generated audit files.
            &quot;uploadInterval&quot;: &quot;A String&quot;, # How often to upload generated audit files.
          },
          &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
          &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
          &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance.
          &quot;timeZone&quot;: &quot;A String&quot;, # Server timezone, relevant only for Cloud SQL for SQL Server.
          &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
        &quot;sqlNetworkArchitecture&quot;: &quot;A String&quot;,
        &quot;state&quot;: &quot;A String&quot;, # The current serving state of the Cloud SQL instance.
        &quot;suspensionReason&quot;: [ # If the instance state is SUSPENDED, the reason for the suspension.
          &quot;A String&quot;,
        ],
        &quot;switchTransactionLogsToCloudStorageEnabled&quot;: True or False, # Input only. Whether Cloud SQL is enabled to switch storing point-in-time recovery log files from a data disk to Cloud Storage.
        &quot;tags&quot;: { # Optional. Input only. Immutable. Tag keys and tag values that are bound to this instance. You must represent each item in the map as: `&quot;&quot; : &quot;&quot;`. For example, a single resource can have the following tags: ``` &quot;123/environment&quot;: &quot;production&quot;, &quot;123/costCenter&quot;: &quot;marketing&quot;, ``` For more information on tag creation and management, see https://cloud.google.com/resource-manager/docs/tags/tags-overview.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;upgradableDatabaseVersions&quot;: [ # Output only. All database versions that are available for upgrade.
          { # An available database version. It can be a major or a minor version.
            &quot;displayName&quot;: &quot;A String&quot;, # The database version&#x27;s display name.
            &quot;majorVersion&quot;: &quot;A String&quot;, # The version&#x27;s major version name.
            &quot;name&quot;: &quot;A String&quot;, # The database version name. For MySQL 8.0, this string provides the database major and minor version.
          },
        ],
        &quot;writeEndpoint&quot;: &quot;A String&quot;, # Output only. The dns name of the primary instance in a replication group.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Output only. This is always `sql#backup`.
      &quot;kmsKey&quot;: &quot;A String&quot;, # Output only. This output contains the encryption configuration for a backup and the resource name of the KMS key for disk encryption.
      &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. This output contains the encryption status for a backup and the version of the KMS key that&#x27;s used to encrypt the Cloud SQL instance.
      &quot;location&quot;: &quot;A String&quot;, # The storage location of the backups. The location can be multi-regional.
      &quot;maxChargeableBytes&quot;: &quot;A String&quot;, # Output only. The maximum chargeable bytes for the backup.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the backup. Format: projects/{project}/backups/{backup}.
      &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZI. The status is reserved for future use.
      &quot;satisfiesPzs&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZS. The status is reserved for future use.
      &quot;selfLink&quot;: &quot;A String&quot;, # Output only. The URI of this resource.
      &quot;state&quot;: &quot;A String&quot;, # Output only. The status of this backup.
      &quot;timeZone&quot;: &quot;A String&quot;, # Output only. This output contains a backup time zone. If a Cloud SQL for SQL Server instance has a different time zone from the backup&#x27;s time zone, then the restore to the instance doesn&#x27;t happen.
      &quot;ttlDays&quot;: &quot;A String&quot;, # Input only. The time-to-live (TTL) interval for this resource (in days). For example: ttlDays:7, means 7 days from the current time. The expiration time can&#x27;t exceed 365 days from the time that the backup is created.
      &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this backup. The type can be &quot;AUTOMATED&quot;, &quot;ON_DEMAND&quot; or “FINAL”.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, then there aren&#x27;t subsequent pages.
  &quot;warnings&quot;: [ # If a region isn&#x27;t unavailable or if an unknown error occurs, then a warning message is returned.
    { # An Admin API warning message.
      &quot;code&quot;: &quot;A String&quot;, # Code to uniquely identify the warning type.
      &quot;message&quot;: &quot;A String&quot;, # The warning message.
      &quot;region&quot;: &quot;A String&quot;, # The region name for REGION_UNREACHABLE warning.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="ListBackups_next">ListBackups_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="UpdateBackup">UpdateBackup(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates the retention period and description of the backup. You can use this API to update final backups only.

Args:
  name: string, Output only. The resource name of the backup. Format: projects/{project}/backups/{backup}. (required)
  body: object, The request body.
    The object takes the form of:

{ # A backup resource.
  &quot;backupInterval&quot;: { # Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time. # Output only. This output contains the following values: start_time: All database writes up to this time are available. end_time: Any database writes after this time aren&#x27;t available.
    &quot;endTime&quot;: &quot;A String&quot;, # Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.
    &quot;startTime&quot;: &quot;A String&quot;, # Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.
  },
  &quot;backupKind&quot;: &quot;A String&quot;, # Output only. Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
  &quot;backupRun&quot;: &quot;A String&quot;, # Output only. The mapping to backup run resource used for IAM validations.
  &quot;databaseVersion&quot;: &quot;A String&quot;, # Output only. The database version of the instance of at the time this backup was made.
  &quot;description&quot;: &quot;A String&quot;, # The description of this backup.
  &quot;error&quot;: { # Database instance operation error. # Output only. Information about why the backup operation fails (for example, when the backup state fails).
    &quot;code&quot;: &quot;A String&quot;, # Identifies the specific error that occurred.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationError`.
    &quot;message&quot;: &quot;A String&quot;, # Additional information about the error encountered.
  },
  &quot;expiryTime&quot;: &quot;A String&quot;, # Backup expiration time. A UTC timestamp of when this backup expired.
  &quot;instance&quot;: &quot;A String&quot;, # The name of the source database instance.
  &quot;instanceDeletionTime&quot;: &quot;A String&quot;, # Optional. Output only. Timestamp in UTC of when the instance associated with this backup is deleted.
  &quot;instanceSettings&quot;: { # A Cloud SQL instance resource. # Optional. Output only. The instance setting of the source instance that&#x27;s associated with this backup.
    &quot;availableMaintenanceVersions&quot;: [ # Output only. List all maintenance versions applicable on the instance
      &quot;A String&quot;,
    ],
    &quot;backendType&quot;: &quot;A String&quot;, # The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
    &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the instance was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
    &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
    &quot;databaseInstalledVersion&quot;: &quot;A String&quot;, # Output only. Stores the current database version running on the instance including minor version such as `MYSQL_8_0_18`.
    &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
    &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionConfiguration`.
      &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
    },
    &quot;diskEncryptionStatus&quot;: { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#diskEncryptionStatus`.
      &quot;kmsKeyVersionName&quot;: &quot;A String&quot;, # KMS key version used to encrypt the Cloud SQL instance resource
    },
    &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The dns name of the instance.
    &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this instance.
      { # DNS metadata.
        &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
        &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
        &quot;name&quot;: &quot;A String&quot;, # The DNS name.
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
    &quot;failoverReplica&quot;: { # The name and status of the failover replica.
      &quot;available&quot;: True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
      &quot;name&quot;: &quot;A String&quot;, # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn&#x27;t include the project ID.
    },
    &quot;gceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
    &quot;geminiConfig&quot;: { # Gemini instance configuration. # Gemini instance configuration.
      &quot;activeQueryEnabled&quot;: True or False, # Output only. Whether the active query is enabled.
      &quot;entitled&quot;: True or False, # Output only. Whether Gemini is enabled.
      &quot;flagRecommenderEnabled&quot;: True or False, # Output only. Whether the flag recommender is enabled.
      &quot;googleVacuumMgmtEnabled&quot;: True or False, # Output only. Whether the vacuum management is enabled.
      &quot;indexAdvisorEnabled&quot;: True or False, # Output only. Whether the index advisor is enabled.
      &quot;oomSessionCancelEnabled&quot;: True or False, # Output only. Whether canceling the out-of-memory (OOM) session is enabled.
    },
    &quot;includeReplicasForMajorVersionUpgrade&quot;: True or False, # Input only. Determines whether an in-place major version upgrade of replicas happens when an in-place major version upgrade of a primary instance is initiated.
    &quot;instanceType&quot;: &quot;A String&quot;, # The instance type.
    &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
      { # Database instance IP mapping
        &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
        &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
        &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
      },
    ],
    &quot;ipv6Address&quot;: &quot;A String&quot;, # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#instance`.
    &quot;maintenanceVersion&quot;: &quot;A String&quot;, # The current software version on the instance.
    &quot;masterInstanceName&quot;: &quot;A String&quot;, # The name of the instance which will act as primary in the replication setup.
    &quot;maxDiskSize&quot;: &quot;A String&quot;, # The maximum disk size of the instance in bytes.
    &quot;name&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance. This does not include the project ID.
    &quot;nodeCount&quot;: 42, # The number of read pool nodes in a read pool.
    &quot;nodes&quot;: [ # Output only. Entries containing information about each read pool node of the read pool.
      { # Details of a single read pool node of a read pool.
        &quot;dnsName&quot;: &quot;A String&quot;, # Output only. The DNS name of the read pool node.
        &quot;dnsNames&quot;: [ # Output only. The list of DNS names used by this read pool node.
          { # DNS metadata.
            &quot;connectionType&quot;: &quot;A String&quot;, # Output only. The connection type of the DNS name.
            &quot;dnsScope&quot;: &quot;A String&quot;, # Output only. The scope that the DNS name applies to.
            &quot;name&quot;: &quot;A String&quot;, # The DNS name.
          },
        ],
        &quot;gceZone&quot;: &quot;A String&quot;, # Output only. The zone of the read pool node.
        &quot;ipAddresses&quot;: [ # Output only. Mappings containing IP addresses that can be used to connect to the read pool node.
          { # Database instance IP mapping
            &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
            &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired.
            &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported.
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the read pool node, to be used for retrieving metrics and logs.
        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the read pool node.
      },
    ],
    &quot;onPremisesConfiguration&quot;: { # On-premises instance configuration. # Configuration specific to on-premises instances.
      &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
      &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
      &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
      &quot;dumpFilePath&quot;: &quot;A String&quot;, # The dump file to create the Cloud SQL replica.
      &quot;hostPort&quot;: &quot;A String&quot;, # The host and port of the on-premises instance in host:port format
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#onPremisesConfiguration`.
      &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
      &quot;selectedObjects&quot;: [ # Optional. A list of objects that the user selects for replication from an external source instance.
        { # A list of objects that the user selects for replication from an external source instance.
          &quot;database&quot;: &quot;A String&quot;, # Required. The name of the database to migrate.
        },
      ],
      &quot;sourceInstance&quot;: { # Reference to another Cloud SQL instance. # The reference to Cloud SQL instance if the source is Cloud SQL.
        &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced. This does not include the project ID.
        &quot;project&quot;: &quot;A String&quot;, # The project ID of the Cloud SQL instance being referenced. The default is the same project ID as the instance references it.
        &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
      },
      &quot;sslOption&quot;: &quot;A String&quot;, # Optional. SSL option for replica connection to the on-premises source.
      &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
    },
    &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
      &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend * Writers: * the proactive database wellness job for OOD. * Readers:
      &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
    },
    &quot;primaryDnsName&quot;: &quot;A String&quot;, # Output only. DEPRECATED: please use write_endpoint instead.
    &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
    &quot;pscServiceAttachmentLink&quot;: &quot;A String&quot;, # Output only. The link to service attachment of PSC instance.
    &quot;region&quot;: &quot;A String&quot;, # The geographical region of the Cloud SQL instance. It can be one of the [regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-central1`. The default value is `us-central1`.
    &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
      &quot;cascadableReplica&quot;: True or False, # Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it.
      &quot;failoverTarget&quot;: True or False, # Specifies if the replica is the failover target. If the field is set to `true`, the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#replicaConfiguration`.
      &quot;mysqlReplicaConfiguration&quot;: { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named `master.info` in the data directory.
        &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
        &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
        &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponding public key is encoded in the client&#x27;s certificate.
        &quot;connectRetryInterval&quot;: 42, # Seconds to wait between connect retries. MySQL&#x27;s default is 60 seconds.
        &quot;dumpFilePath&quot;: &quot;A String&quot;, # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#mysqlReplicaConfiguration`.
        &quot;masterHeartbeatPeriod&quot;: &quot;A String&quot;, # Interval in milliseconds between replication heartbeats.
        &quot;password&quot;: &quot;A String&quot;, # The password for the replication connection.
        &quot;sslCipher&quot;: &quot;A String&quot;, # A list of permissible ciphers to use for SSL encryption.
        &quot;username&quot;: &quot;A String&quot;, # The username for the replication connection.
        &quot;verifyServerCertificate&quot;: True or False, # Whether or not to check the primary instance&#x27;s Common Name value in the certificate that it sends during the SSL handshake.
      },
    },
    &quot;replicaNames&quot;: [ # The replicas of the instance.
      &quot;A String&quot;,
    ],
    &quot;replicationCluster&quot;: { # A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL. # Optional. A primary instance and disaster recovery (DR) replica pair. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance experiences regional failure. Applicable to MySQL and PostgreSQL.
      &quot;drReplica&quot;: True or False, # Output only. Read-only field that indicates whether the replica is a DR replica. This field is not set if the instance is a primary instance.
      &quot;failoverDrReplicaName&quot;: &quot;A String&quot;, # Optional. If the instance is a primary instance, then this field identifies the disaster recovery (DR) replica. A DR replica is an optional configuration for Enterprise Plus edition instances. If the instance is a read replica, then the field is not set. Set this field to a replica name to designate a DR replica for a primary instance. Remove the replica name to remove the DR replica designation.
      &quot;psaWriteEndpoint&quot;: &quot;A String&quot;, # Output only. If set, this field indicates this instance has a private service access (PSA) DNS endpoint that is pointing to the primary instance of the cluster. If this instance is the primary, then the DNS endpoint points to this instance. After a switchover or replica failover operation, this DNS endpoint points to the promoted instance. This is a read-only field, returned to the user as information. This field can exist even if a standalone instance doesn&#x27;t have a DR replica yet or the DR replica is deleted.
    },
    &quot;rootPassword&quot;: &quot;A String&quot;, # Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
    &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the instance satisfies PZI. The status is reserved for future use.
    &quot;satisfiesPzs&quot;: True or False, # This status indicates whether the instance satisfies PZS. The status is reserved for future use.
    &quot;scheduledMaintenance&quot;: { # Any scheduled maintenance for this instance. # The start time of any upcoming scheduled maintenance for this instance.
      &quot;canDefer&quot;: True or False,
      &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
      &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
      &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
    },
    &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
    &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
    &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
      &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
      &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
      &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
      &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`
      &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
      &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#sslCert`.
      &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
      &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
    },
    &quot;serviceAccountEmailAddress&quot;: &quot;A String&quot;, # The service account email address assigned to the instance.\This property is read-only.
    &quot;settings&quot;: { # Database instance settings. # The user settings.
      &quot;activationPolicy&quot;: &quot;A String&quot;, # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: * `ALWAYS`: The instance is on, and remains so even in the absence of connection requests. * `NEVER`: The instance is off; it is not activated, even if a connection request arrives.
      &quot;activeDirectoryConfig&quot;: { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
        &quot;adminCredentialSecretName&quot;: &quot;A String&quot;, # Optional. The secret manager key storing the administrator credential. (e.g., projects/{project}/secrets/{secret}).
        &quot;dnsServers&quot;: [ # Optional. Domain controller IPv4 addresses used to bootstrap Active Directory.
          &quot;A String&quot;,
        ],
        &quot;domain&quot;: &quot;A String&quot;, # The name of the domain (e.g., mydomain.com).
        &quot;kind&quot;: &quot;A String&quot;, # This is always sql#activeDirectoryConfig.
        &quot;mode&quot;: &quot;A String&quot;, # Optional. The mode of the Active Directory configuration.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # Optional. The organizational unit distinguished name. This is the full hierarchical path to the organizational unit.
      },
      &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Specifies advanced machine configuration for the instances relevant only for SQL Server.
        &quot;threadsPerCore&quot;: 42, # The number of threads per physical core.
      },
      &quot;authorizedGaeApplications&quot;: [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
        &quot;A String&quot;,
      ],
      &quot;autoUpgradeEnabled&quot;: True or False, # Optional. Cloud SQL for MySQL auto-upgrade configuration. When this parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor versions. The MySQL version must be 8.0.35 or higher.
      &quot;availabilityType&quot;: &quot;A String&quot;, # Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available)./ For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
      &quot;backupConfiguration&quot;: { # Database instance backup configuration. # The daily backup configuration for the instance.
        &quot;backupRetentionSettings&quot;: { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
          &quot;retainedBackups&quot;: 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is &#x27;COUNT&#x27;, we will retain this many backups.
          &quot;retentionUnit&quot;: &quot;A String&quot;, # The unit that &#x27;retained_backups&#x27; represents.
        },
        &quot;backupTier&quot;: &quot;A String&quot;, # Output only. Backup tier that manages the backups for the instance.
        &quot;binaryLogEnabled&quot;: True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
        &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#backupConfiguration`.
        &quot;location&quot;: &quot;A String&quot;, # Location of the backup
        &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Whether point in time recovery is enabled.
        &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
        &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - `HH:MM`.
        &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
        &quot;transactionalLogStorageState&quot;: &quot;A String&quot;, # Output only. This value contains the storage location of transactional logs used to perform point-in-time recovery (PITR) for the database.
      },
      &quot;collation&quot;: &quot;A String&quot;, # The name of server Instance collation.
      &quot;connectionPoolConfig&quot;: { # The managed connection pooling configuration. # Optional. The managed connection pooling configuration for the instance.
        &quot;connectionPoolingEnabled&quot;: True or False, # Whether managed connection pooling is enabled.
        &quot;flags&quot;: [ # Optional. List of connection pool configuration flags.
          { # Connection pool flags for Cloud SQL instances managed connection pool configuration.
            &quot;name&quot;: &quot;A String&quot;, # Required. The name of the flag.
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
          },
        ],
        &quot;poolerCount&quot;: 42, # Output only. Number of connection poolers.
      },
      &quot;connectorEnforcement&quot;: &quot;A String&quot;, # Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors). Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance.
      &quot;crashSafeReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
      &quot;dataApiAccess&quot;: &quot;A String&quot;, # This parameter controls whether to allow using Data API to connect to the instance. Not allowed by default.
      &quot;dataCacheConfig&quot;: { # Data cache configurations. # Configuration for data cache.
        &quot;dataCacheEnabled&quot;: True or False, # Whether data cache is enabled for the instance.
      },
      &quot;dataDiskProvisionedIops&quot;: &quot;A String&quot;, # Optional. Provisioned number of I/O operations per second for the data disk. This field is only used for hyperdisk-balanced disk types.
      &quot;dataDiskProvisionedThroughput&quot;: &quot;A String&quot;, # Optional. Provisioned throughput measured in MiB per second for the data disk. This field is only used for hyperdisk-balanced disk types.
      &quot;dataDiskSizeGb&quot;: &quot;A String&quot;, # The size of data disk, in GB. The data disk size minimum is 10GB.
      &quot;dataDiskType&quot;: &quot;A String&quot;, # The type of data disk: `PD_SSD` (default) or `PD_HDD`. Not used for First Generation instances.
      &quot;databaseFlags&quot;: [ # The database flags passed to the instance at startup.
        { # Database flags for Cloud SQL instances.
          &quot;name&quot;: &quot;A String&quot;, # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
          &quot;value&quot;: &quot;A String&quot;, # The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn&#x27;t take a value.
        },
      ],
      &quot;databaseReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance.
      &quot;deletionProtectionEnabled&quot;: True or False, # Configuration to protect against accidental instance deletion.
      &quot;denyMaintenancePeriods&quot;: [ # Deny maintenance periods
        { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
          &quot;endDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
          &quot;startDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the deny maintenance period recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
          &quot;time&quot;: &quot;A String&quot;, # Time in UTC when the &quot;deny maintenance period&quot; starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
        },
      ],
      &quot;edition&quot;: &quot;A String&quot;, # Optional. The edition of the instance.
      &quot;enableDataplexIntegration&quot;: True or False, # Optional. By default, Cloud SQL instances have schema extraction disabled for Dataplex. When this parameter is set to true, schema extraction for Dataplex on Cloud SQL instances is activated.
      &quot;enableGoogleMlIntegration&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL instances can connect to Vertex AI to pass requests for real-time predictions and insights to the AI. The default value is false. This applies only to Cloud SQL for MySQL and Cloud SQL for PostgreSQL instances.
      &quot;finalBackupConfig&quot;: { # Config used to determine the final backup settings for the instance. # Optional. The final backup configuration for the instance.
        &quot;enabled&quot;: True or False, # Whether the final backup is enabled for the instance.
        &quot;retentionDays&quot;: 42, # The number of days to retain the final backup after the instance deletion. The final backup will be purged at (time_of_instance_deletion + retention_days).
      },
      &quot;insightsConfig&quot;: { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
        &quot;queryInsightsEnabled&quot;: True or False, # Whether Query Insights feature is enabled.
        &quot;queryPlansPerMinute&quot;: 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
        &quot;queryStringLength&quot;: 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query lengths greater than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
        &quot;recordApplicationTags&quot;: True or False, # Whether Query Insights will record application tags from query when enabled.
        &quot;recordClientAddress&quot;: True or False, # Whether Query Insights will record client address when enabled.
      },
      &quot;ipConfiguration&quot;: { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
        &quot;allocatedIpRange&quot;: &quot;A String&quot;, # The name of the allocated ip range for the private ip Cloud SQL instance. For example: &quot;google-managed-services-default&quot;. If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`
        &quot;authorizedNetworks&quot;: [ # The list of external networks that are allowed to connect to the instance using the IP. In &#x27;CIDR&#x27; notation, also known as &#x27;slash&#x27; notation (for example: `157.197.200.0/24`).
          { # An entry for an Access Control list.
            &quot;expirationTime&quot;: &quot;A String&quot;, # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
            &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#aclEntry`.
            &quot;name&quot;: &quot;A String&quot;, # Optional. A label to identify this entry.
            &quot;value&quot;: &quot;A String&quot;, # The allowlisted value for the access control list.
          },
        ],
        &quot;customSubjectAlternativeNames&quot;: [ # Optional. Custom Subject Alternative Name(SAN)s for a Cloud SQL instance.
          &quot;A String&quot;,
        ],
        &quot;enablePrivatePathForGoogleCloudServices&quot;: True or False, # Controls connectivity to private IP instances from Google services, such as BigQuery.
        &quot;ipv4Enabled&quot;: True or False, # Whether the instance is assigned a public IP address or not.
        &quot;privateNetwork&quot;: &quot;A String&quot;, # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.
        &quot;pscConfig&quot;: { # PSC settings for a Cloud SQL instance. # PSC settings for this instance.
          &quot;allowedConsumerProjects&quot;: [ # Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).
            &quot;A String&quot;,
          ],
          &quot;networkAttachmentUri&quot;: &quot;A String&quot;, # Optional. The network attachment of the consumer network that the Private Service Connect enabled Cloud SQL instance is authorized to connect via PSC interface. format: projects/PROJECT/regions/REGION/networkAttachments/ID
          &quot;pscAutoConnections&quot;: [ # Optional. The list of settings for requested Private Service Connect consumer endpoints that can be used to connect to this Cloud SQL instance.
            { # Settings for an automatically-setup Private Service Connect consumer endpoint that is used to connect to a Cloud SQL instance.
              &quot;consumerNetwork&quot;: &quot;A String&quot;, # Optional. The consumer network of this consumer endpoint. This must be a resource path that includes both the host project and the network name. For example, `projects/project1/global/networks/network1`. The consumer host project of this network might be different from the consumer service project.
              &quot;consumerNetworkStatus&quot;: &quot;A String&quot;, # The connection policy status of the consumer network.
              &quot;consumerProject&quot;: &quot;A String&quot;, # Optional. This is the project ID of consumer service project of this consumer endpoint. Optional. This is only applicable if consumer_network is a shared vpc network.
              &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the consumer endpoint.
              &quot;status&quot;: &quot;A String&quot;, # The connection status of the consumer endpoint.
            },
          ],
          &quot;pscEnabled&quot;: True or False, # Whether PSC connectivity is enabled for this instance.
        },
        &quot;requireSsl&quot;: True or False, # Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won&#x27;t be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the `require_ssl` flag.
        &quot;serverCaMode&quot;: &quot;A String&quot;, # Specify what type of CA is used for the server certificate.
        &quot;serverCaPool&quot;: &quot;A String&quot;, # Optional. The resource name of the server CA pool for an instance with `CUSTOMER_MANAGED_CAS_CA` as the `server_ca_mode`. Format: projects/{PROJECT}/locations/{REGION}/caPools/{CA_POOL_ID}
        &quot;sslMode&quot;: &quot;A String&quot;, # Specify how SSL/TLS is enforced in database connections. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` has priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means accept only SSL connections, while `require_ssl=false` means accept both non-SSL and SSL connections. In this case, MySQL and PostgreSQL databases respect `ssl_mode` and accepts only SSL connections.
      },
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#settings`.
      &quot;locationPreference&quot;: { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or Compute Engine zone for better performance. App Engine co-location was only applicable to First Generation instances.
        &quot;followGaeApplication&quot;: &quot;A String&quot;, # The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#locationPreference`.
        &quot;secondaryZone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to &#x27;no_secondary_zone&#x27;.
        &quot;zone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.). WARNING: Changing this might restart the instance.
      },
      &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
        &quot;day&quot;: 42, # Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. Returned in output as an integer, 1 to 7, where `1` equals Monday.
        &quot;hour&quot;: 42, # Hour of day - 0 to 23. Specify in the UTC time zone.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#maintenanceWindow`.
        &quot;updateTrack&quot;: &quot;A String&quot;, # Maintenance timing settings: `canary`, `stable`, or `week5`. For more information, see [About maintenance on Cloud SQL instances](https://cloud.google.com/sql/docs/mysql/maintenance).
      },
      &quot;passwordValidationPolicy&quot;: { # Database instance local user password validation policy # The local user password validation policy of the instance.
        &quot;complexity&quot;: &quot;A String&quot;, # The complexity of the password.
        &quot;disallowCompromisedCredentials&quot;: True or False, # This field is deprecated and will be removed in a future version of the API.
        &quot;disallowUsernameSubstring&quot;: True or False, # Disallow username as a part of the password.
        &quot;enablePasswordPolicy&quot;: True or False, # Whether the password policy is enabled or not.
        &quot;minLength&quot;: 42, # Minimum number of characters allowed.
        &quot;passwordChangeInterval&quot;: &quot;A String&quot;, # Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL.
        &quot;reuseInterval&quot;: 42, # Number of previous passwords that cannot be reused.
      },
      &quot;pricingPlan&quot;: &quot;A String&quot;, # The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`. Only `PER_USE` is supported for Second Generation instances.
      &quot;readPoolAutoScaleConfig&quot;: { # The read pool auto-scale configuration. # Optional. The read pool auto-scale configuration for the instance.
        &quot;disableScaleIn&quot;: True or False, # Indicates whether read pool auto scaling supports scale in operations (removing nodes).
        &quot;enabled&quot;: True or False, # Indicates whether read pool auto scaling is enabled.
        &quot;maxNodeCount&quot;: 42, # Maximum number of read pool nodes to be maintained.
        &quot;minNodeCount&quot;: 42, # Minimum number of read pool nodes to be maintained.
        &quot;scaleInCooldownSeconds&quot;: 42, # The cooldown period for scale-in operations.
        &quot;scaleOutCooldownSeconds&quot;: 42, # The cooldown period for scale-out operations.
        &quot;targetMetrics&quot;: [ # Optional. Target metrics for read pool auto scaling.
          { # Target metric for read pool auto scaling.
            &quot;metric&quot;: &quot;A String&quot;, # The metric name to be used for auto scaling.
            &quot;targetValue&quot;: 3.14, # The target value for the metric.
          },
        ],
      },
      &quot;replicationLagMaxSeconds&quot;: 42, # Optional. Configuration value for recreation of replica after certain replication lag
      &quot;replicationType&quot;: &quot;A String&quot;, # The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances.
      &quot;retainBackupsOnDelete&quot;: True or False, # Optional. When this parameter is set to true, Cloud SQL retains backups of the instance even after the instance is deleted. The ON_DEMAND backup will be retained until customer deletes the backup or the project. The AUTOMATED backup will be retained based on the backups retention setting.
      &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
      &quot;sqlServerAuditConfig&quot;: { # SQL Server specific audit configuration. # SQL Server specific audit configuration.
        &quot;bucket&quot;: &quot;A String&quot;, # The name of the destination bucket (e.g., gs://mybucket).
        &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sqlServerAuditConfig
        &quot;retentionInterval&quot;: &quot;A String&quot;, # How long to keep generated audit files.
        &quot;uploadInterval&quot;: &quot;A String&quot;, # How often to upload generated audit files.
      },
      &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
      &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
      &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance.
      &quot;timeZone&quot;: &quot;A String&quot;, # Server timezone, relevant only for Cloud SQL for SQL Server.
      &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
    },
    &quot;sqlNetworkArchitecture&quot;: &quot;A String&quot;,
    &quot;state&quot;: &quot;A String&quot;, # The current serving state of the Cloud SQL instance.
    &quot;suspensionReason&quot;: [ # If the instance state is SUSPENDED, the reason for the suspension.
      &quot;A String&quot;,
    ],
    &quot;switchTransactionLogsToCloudStorageEnabled&quot;: True or False, # Input only. Whether Cloud SQL is enabled to switch storing point-in-time recovery log files from a data disk to Cloud Storage.
    &quot;tags&quot;: { # Optional. Input only. Immutable. Tag keys and tag values that are bound to this instance. You must represent each item in the map as: `&quot;&quot; : &quot;&quot;`. For example, a single resource can have the following tags: ``` &quot;123/environment&quot;: &quot;production&quot;, &quot;123/costCenter&quot;: &quot;marketing&quot;, ``` For more information on tag creation and management, see https://cloud.google.com/resource-manager/docs/tags/tags-overview.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;upgradableDatabaseVersions&quot;: [ # Output only. All database versions that are available for upgrade.
      { # An available database version. It can be a major or a minor version.
        &quot;displayName&quot;: &quot;A String&quot;, # The database version&#x27;s display name.
        &quot;majorVersion&quot;: &quot;A String&quot;, # The version&#x27;s major version name.
        &quot;name&quot;: &quot;A String&quot;, # The database version name. For MySQL 8.0, this string provides the database major and minor version.
      },
    ],
    &quot;writeEndpoint&quot;: &quot;A String&quot;, # Output only. The dns name of the primary instance in a replication group.
  },
  &quot;kind&quot;: &quot;A String&quot;, # Output only. This is always `sql#backup`.
  &quot;kmsKey&quot;: &quot;A String&quot;, # Output only. This output contains the encryption configuration for a backup and the resource name of the KMS key for disk encryption.
  &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. This output contains the encryption status for a backup and the version of the KMS key that&#x27;s used to encrypt the Cloud SQL instance.
  &quot;location&quot;: &quot;A String&quot;, # The storage location of the backups. The location can be multi-regional.
  &quot;maxChargeableBytes&quot;: &quot;A String&quot;, # Output only. The maximum chargeable bytes for the backup.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the backup. Format: projects/{project}/backups/{backup}.
  &quot;satisfiesPzi&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZI. The status is reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. This status indicates whether the backup satisfies PZS. The status is reserved for future use.
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. The URI of this resource.
  &quot;state&quot;: &quot;A String&quot;, # Output only. The status of this backup.
  &quot;timeZone&quot;: &quot;A String&quot;, # Output only. This output contains a backup time zone. If a Cloud SQL for SQL Server instance has a different time zone from the backup&#x27;s time zone, then the restore to the instance doesn&#x27;t happen.
  &quot;ttlDays&quot;: &quot;A String&quot;, # Input only. The time-to-live (TTL) interval for this resource (in days). For example: ttlDays:7, means 7 days from the current time. The expiration time can&#x27;t exceed 365 days from the time that the backup is created.
  &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this backup. The type can be &quot;AUTOMATED&quot;, &quot;ON_DEMAND&quot; or “FINAL”.
}

  updateMask: string, The list of fields that you can update. You can update only the description and retention period of the final backup.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
  &quot;acquireSsrsLeaseContext&quot;: { # Acquire SSRS lease context. # The context for acquire SSRS lease operation, if applicable.
    &quot;duration&quot;: &quot;A String&quot;, # Lease duration needed for SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for SSRS setup.
    &quot;serviceLogin&quot;: &quot;A String&quot;, # The username to be used as the service login to connect to the report database for SSRS setup.
    &quot;setupLogin&quot;: &quot;A String&quot;, # The username to be used as the setup login to connect to the database server for SSRS setup.
  },
  &quot;apiWarning&quot;: { # An Admin API warning message. # An Admin API warning message.
    &quot;code&quot;: &quot;A String&quot;, # Code to uniquely identify the warning type.
    &quot;message&quot;: &quot;A String&quot;, # The warning message.
    &quot;region&quot;: &quot;A String&quot;, # The region name for REGION_UNREACHABLE warning.
  },
  &quot;backupContext&quot;: { # Backup context. # The context for backup operation, if applicable.
    &quot;backupId&quot;: &quot;A String&quot;, # The identifier of the backup.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#backupContext`.
    &quot;name&quot;: &quot;A String&quot;, # The name of the backup. Format: projects/{project}/backups/{backup}
  },
  &quot;endTime&quot;: &quot;A String&quot;, # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;error&quot;: { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
    &quot;errors&quot;: [ # The list of errors encountered while processing this operation.
      { # Database instance operation error.
        &quot;code&quot;: &quot;A String&quot;, # Identifies the specific error that occurred.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationError`.
        &quot;message&quot;: &quot;A String&quot;, # Additional information about the error encountered.
      },
    ],
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operationErrors`.
  },
  &quot;exportContext&quot;: { # Database instance export context. # The context for export operation, if applicable.
    &quot;bakExportOptions&quot;: { # Options for exporting BAK files (SQL Server-only)
      &quot;bakType&quot;: &quot;A String&quot;, # Type of this bak file will be export, FULL or DIFF, SQL Server only
      &quot;copyOnly&quot;: True or False, # Deprecated: copy_only is deprecated. Use differential_base instead
      &quot;differentialBase&quot;: True or False, # Whether or not the backup can be used as a differential base copy_only backup can not be served as differential base
      &quot;exportLogEndTime&quot;: &quot;A String&quot;, # Optional. The end timestamp when transaction log will be included in the export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs until current time will be included. Only applied to Cloud SQL for SQL Server.
      &quot;exportLogStartTime&quot;: &quot;A String&quot;, # Optional. The begin timestamp when transaction log will be included in the export operation. [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`) in UTC. When omitted, all available logs from the beginning of retention period will be included. Only applied to Cloud SQL for SQL Server.
      &quot;stripeCount&quot;: 42, # Option for specifying how many stripes to use for the export. If blank, and the value of the striped field is true, the number of stripes is automatically chosen.
      &quot;striped&quot;: True or False, # Whether or not the export should be striped.
    },
    &quot;csvExportOptions&quot;: { # Options for exporting data as CSV. `MySQL` and `PostgreSQL` instances only.
      &quot;escapeCharacter&quot;: &quot;A String&quot;, # Specifies the character that should appear before a data character that needs to be escaped.
      &quot;fieldsTerminatedBy&quot;: &quot;A String&quot;, # Specifies the character that separates columns within each row (line) of the file.
      &quot;linesTerminatedBy&quot;: &quot;A String&quot;, # This is used to separate lines. If a line does not contain all fields, the rest of the columns are set to their default values.
      &quot;quoteCharacter&quot;: &quot;A String&quot;, # Specifies the quoting character to be used when a data value is quoted.
      &quot;selectQuery&quot;: &quot;A String&quot;, # The select query used to extract the data.
    },
    &quot;databases&quot;: [ # Databases to be exported. `MySQL instances:` If `fileType` is `SQL` and no database is specified, all databases are exported, except for the `mysql` system database. If `fileType` is `CSV`, you can specify one database, either by using this property or by using the `csvExportOptions.selectQuery` property, which takes precedence over this property. `PostgreSQL instances:` If you don&#x27;t specify a database by name, all user databases in the instance are exported. This excludes system databases and Cloud SQL databases used to manage internal operations. Exporting all user databases is only available for directory-formatted parallel export. If `fileType` is `CSV`, this database must match the one specified in the `csvExportOptions.selectQuery` property. `SQL Server instances:` You must specify one database to be exported, and the `fileType` must be `BAK`.
      &quot;A String&quot;,
    ],
    &quot;fileType&quot;: &quot;A String&quot;, # The file type for the specified uri.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#exportContext`.
    &quot;offload&quot;: True or False, # Whether to perform a serverless export.
    &quot;sqlExportOptions&quot;: { # Options for exporting data as SQL statements.
      &quot;mysqlExportOptions&quot;: { # Options for exporting from MySQL.
        &quot;masterData&quot;: 42, # Option to include SQL statement required to set up replication. If set to `1`, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to `2`, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than `1`, --set-gtid-purged is set to OFF.
      },
      &quot;parallel&quot;: True or False, # Optional. Whether or not the export should be parallel.
      &quot;postgresExportOptions&quot;: { # Options for exporting from a Cloud SQL for PostgreSQL instance.
        &quot;clean&quot;: True or False, # Optional. Use this option to include DROP &lt;object&gt; SQL statements. Use these statements to delete database objects before running the import operation.
        &quot;ifExists&quot;: True or False, # Optional. Option to include an IF EXISTS SQL statement with each DROP statement produced by clean.
      },
      &quot;schemaOnly&quot;: True or False, # Export only schemas.
      &quot;tables&quot;: [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
        &quot;A String&quot;,
      ],
      &quot;threads&quot;: 42, # Optional. The number of threads to use for parallel export.
    },
    &quot;tdeExportOptions&quot;: { # Optional. Export parameters specific to SQL Server TDE certificates
      &quot;certificatePath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate public key in the form gs://bucketName/fileName. The instance must have write access to the bucket. Applicable only for SQL Server instances.
      &quot;name&quot;: &quot;A String&quot;, # Required. Certificate name. Applicable only for SQL Server instances.
      &quot;privateKeyPassword&quot;: &quot;A String&quot;, # Required. Password that encrypts the private key.
      &quot;privateKeyPath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate private key in the form gs://bucketName/fileName. The instance must have write access to the location. Applicable only for SQL Server instances.
    },
    &quot;uri&quot;: &quot;A String&quot;, # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form `gs://bucketName/fileName`. If the file already exists, the request succeeds, but the operation fails. If `fileType` is `SQL` and the filename ends with .gz, the contents are compressed.
  },
  &quot;importContext&quot;: { # Database instance import context. # The context for import operation, if applicable.
    &quot;bakImportOptions&quot;: { # Import parameters specific to SQL Server .BAK files
      &quot;bakType&quot;: &quot;A String&quot;, # Type of the bak content, FULL or DIFF
      &quot;encryptionOptions&quot;: {
        &quot;certPath&quot;: &quot;A String&quot;, # Path to the Certificate (.cer) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.
        &quot;keepEncrypted&quot;: True or False, # Optional. Whether the imported file remains encrypted.
        &quot;pvkPassword&quot;: &quot;A String&quot;, # Password that encrypts the private key
        &quot;pvkPath&quot;: &quot;A String&quot;, # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form `gs://bucketName/fileName`. The instance must have write permissions to the bucket and read access to the file.
      },
      &quot;noRecovery&quot;: True or False, # Whether or not the backup importing will restore database with NORECOVERY option Applies only to Cloud SQL for SQL Server.
      &quot;recoveryOnly&quot;: True or False, # Whether or not the backup importing request will just bring database online without downloading Bak content only one of &quot;no_recovery&quot; and &quot;recovery_only&quot; can be true otherwise error will return. Applies only to Cloud SQL for SQL Server.
      &quot;stopAt&quot;: &quot;A String&quot;, # Optional. The timestamp when the import should stop. This timestamp is in the [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies to Cloud SQL for SQL Server only.
      &quot;stopAtMark&quot;: &quot;A String&quot;, # Optional. The marked transaction where the import should stop. This field is equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server only.
      &quot;striped&quot;: True or False, # Whether or not the backup set being restored is striped. Applies only to Cloud SQL for SQL Server.
    },
    &quot;csvImportOptions&quot;: { # Options for importing data as CSV.
      &quot;columns&quot;: [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
        &quot;A String&quot;,
      ],
      &quot;escapeCharacter&quot;: &quot;A String&quot;, # Specifies the character that should appear before a data character that needs to be escaped.
      &quot;fieldsTerminatedBy&quot;: &quot;A String&quot;, # Specifies the character that separates columns within each row (line) of the file.
      &quot;linesTerminatedBy&quot;: &quot;A String&quot;, # This is used to separate lines. If a line does not contain all fields, the rest of the columns are set to their default values.
      &quot;quoteCharacter&quot;: &quot;A String&quot;, # Specifies the quoting character to be used when a data value is quoted.
      &quot;table&quot;: &quot;A String&quot;, # The table to which CSV data is imported.
    },
    &quot;database&quot;: &quot;A String&quot;, # The target database for the import. If `fileType` is `SQL`, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. For entire instance parallel import operations, the database is overridden by the database name stored in subdirectory name. If `fileType` is `CSV`, one database must be specified.
    &quot;fileType&quot;: &quot;A String&quot;, # The file type for the specified uri.\`SQL`: The file contains SQL statements. \`CSV`: The file contains CSV data.
    &quot;importUser&quot;: &quot;A String&quot;, # The PostgreSQL user for this import operation. PostgreSQL instances only.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#importContext`.
    &quot;sqlImportOptions&quot;: { # Optional. Options for importing data from SQL statements.
      &quot;parallel&quot;: True or False, # Optional. Whether or not the import should be parallel.
      &quot;postgresImportOptions&quot;: { # Optional. Options for importing from a Cloud SQL for PostgreSQL instance.
        &quot;clean&quot;: True or False, # Optional. The --clean flag for the pg_restore utility. This flag applies only if you enabled Cloud SQL to import files in parallel.
        &quot;ifExists&quot;: True or False, # Optional. The --if-exists flag for the pg_restore utility. This flag applies only if you enabled Cloud SQL to import files in parallel.
      },
      &quot;threads&quot;: 42, # Optional. The number of threads to use for parallel import.
    },
    &quot;tdeImportOptions&quot;: { # Optional. Import parameters specific to SQL Server TDE certificates
      &quot;certificatePath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate public key in the form gs://bucketName/fileName. The instance must have read access to the file. Applicable only for SQL Server instances.
      &quot;name&quot;: &quot;A String&quot;, # Required. Certificate name. Applicable only for SQL Server instances.
      &quot;privateKeyPassword&quot;: &quot;A String&quot;, # Required. Password that encrypts the private key.
      &quot;privateKeyPath&quot;: &quot;A String&quot;, # Required. Path to the TDE certificate private key in the form gs://bucketName/fileName. The instance must have read access to the file. Applicable only for SQL Server instances.
    },
    &quot;uri&quot;: &quot;A String&quot;, # Path to the import file in Cloud Storage, in the form `gs://bucketName/fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`. The instance must have write permissions to the bucket and read access to the file.
  },
  &quot;insertTime&quot;: &quot;A String&quot;, # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#operation`.
  &quot;name&quot;: &quot;A String&quot;, # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
  &quot;operationType&quot;: &quot;A String&quot;, # The type of the operation. Valid values are: * `CREATE` * `DELETE` * `UPDATE` * `RESTART` * `IMPORT` * `EXPORT` * `BACKUP_VOLUME` * `RESTORE_VOLUME` * `CREATE_USER` * `DELETE_USER` * `CREATE_DATABASE` * `DELETE_DATABASE`
  &quot;preCheckMajorVersionUpgradeContext&quot;: { # Pre-check major version upgrade context. # This field is only populated when the operation_type is PRE_CHECK_MAJOR_VERSION_UPGRADE. The PreCheckMajorVersionUpgradeContext message itself contains the details for that pre-check, such as the target database version for the upgrade and the results of the check (including any warnings or errors found).
    &quot;kind&quot;: &quot;A String&quot;, # Optional. This is always `sql#preCheckMajorVersionUpgradeContext`.
    &quot;preCheckResponse&quot;: [ # Output only. The responses from the precheck operation.
      { # Structured PreCheckResponse containing message, type, and required actions.
        &quot;actionsRequired&quot;: [ # The actions that the user needs to take. Use repeated for multiple actions.
          &quot;A String&quot;,
        ],
        &quot;message&quot;: &quot;A String&quot;, # The message to be displayed to the user.
        &quot;messageType&quot;: &quot;A String&quot;, # The type of message whether it is an info, warning, or error.
      },
    ],
    &quot;targetDatabaseVersion&quot;: &quot;A String&quot;, # Required. The target database version to upgrade to.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
  &quot;startTime&quot;: &quot;A String&quot;, # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`.
  &quot;status&quot;: &quot;A String&quot;, # The status of an operation.
  &quot;subOperationType&quot;: { # The sub operation type based on the operation type. # Optional. The sub operation based on the operation type.
    &quot;maintenanceType&quot;: &quot;A String&quot;, # The type of maintenance to be performed on the instance.
  },
  &quot;targetId&quot;: &quot;A String&quot;, # Name of the resource on which this operation runs.
  &quot;targetLink&quot;: &quot;A String&quot;,
  &quot;targetProject&quot;: &quot;A String&quot;, # The project ID of the target instance related to this operation.
  &quot;user&quot;: &quot;A String&quot;, # The email address of the user who initiated this operation.
}</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

</body></html>