<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_v1beta4.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1beta4.instances.html">instances</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#ListServerCertificates">ListServerCertificates(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all versions of server certificates and certificate authorities (CAs) for the specified instance. There can be up to three sets of certs listed: the certificate that is currently in use, a future that has been added but not yet used to sign a certificate, and a certificate that has been rotated out. For instances not using Certificate Authority Service (CAS) server CA, use ListServerCas instead.</p>
<p class="toc_element">
  <code><a href="#RotateServerCertificate">RotateServerCertificate(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Rotates the server certificate version to one previously added with the addServerCertificate method. For instances not using Certificate Authority Service (CAS) server CA, use RotateServerCa instead.</p>
<p class="toc_element">
  <code><a href="#acquireSsrsLease">acquireSsrsLease(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Acquire a lease for the setup of SQL Server Reporting Services (SSRS).</p>
<p class="toc_element">
  <code><a href="#addServerCa">addServerCa(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Add a new trusted Certificate Authority (CA) version for the specified instance. Required to prepare for a certificate rotation. If a CA version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one CA version waiting to be rotated in. For instances that have enabled Certificate Authority Service (CAS) based server CA, use AddServerCertificate to add a new server certificate.</p>
<p class="toc_element">
  <code><a href="#addServerCertificate">addServerCertificate(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Add a new trusted server certificate version for the specified instance using Certificate Authority Service (CAS) server CA. Required to prepare for a certificate rotation. If a server certificate version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one certificate version waiting to be rotated in. For instances not using CAS server CA, use AddServerCa instead.</p>
<p class="toc_element">
  <code><a href="#clone">clone(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a Cloud SQL instance as a clone of the source instance. Using this operation might cause your instance to restart.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(project, instance, enableFinalBackup=None, finalBackupDescription=None, finalBackupExpiryTime=None, finalBackupTtlDays=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#demote">demote(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Demotes an existing standalone instance to be a Cloud SQL read replica for an external database server.</p>
<p class="toc_element">
  <code><a href="#demoteMaster">demoteMaster(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.</p>
<p class="toc_element">
  <code><a href="#executeSql">executeSql(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Execute SQL statements.</p>
<p class="toc_element">
  <code><a href="#export">export(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL dump or CSV file.</p>
<p class="toc_element">
  <code><a href="#failover">failover(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the [Overview of high availability](https://cloud.google.com/sql/docs/mysql/high-availability) page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.</p>
<p class="toc_element">
  <code><a href="#get">get(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a resource containing information about a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#import_">import_(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Imports data into a Cloud SQL instance from a SQL dump or CSV file in Cloud Storage.</p>
<p class="toc_element">
  <code><a href="#insert">insert(project, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a new Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#list">list(project, filter=None, maxResults=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists instances under a given project.</p>
<p class="toc_element">
  <code><a href="#listServerCas">listServerCas(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all of the trusted Certificate Authorities (CAs) for the specified instance. There can be up to three CAs listed: the CA that was used to sign the certificate that is currently in use, a CA that has been added but not yet used to sign a certificate, and a CA used to sign a certificate that has previously rotated out.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Partially updates settings of a Cloud SQL instance by merging the request with the current configuration. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#pointInTimeRestore">pointInTimeRestore(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Point in time restore for an instance managed by Google Cloud Backup and Disaster Recovery.</p>
<p class="toc_element">
  <code><a href="#preCheckMajorVersionUpgrade">preCheckMajorVersionUpgrade(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Execute MVU Pre-checks</p>
<p class="toc_element">
  <code><a href="#promoteReplica">promoteReplica(project, instance, failover=None, x__xgafv=None)</a></code></p>
<p class="firstline">Promotes the read replica instance to be an independent Cloud SQL primary instance. Using this operation might cause your instance to restart.</p>
<p class="toc_element">
  <code><a href="#reencrypt">reencrypt(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Reencrypt CMEK instance with latest key version.</p>
<p class="toc_element">
  <code><a href="#releaseSsrsLease">releaseSsrsLease(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Release a lease for the setup of SQL Server Reporting Services (SSRS).</p>
<p class="toc_element">
  <code><a href="#resetSslConfig">resetSslConfig(project, instance, mode=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes all client certificates and generates a new server SSL certificate for the instance.</p>
<p class="toc_element">
  <code><a href="#restart">restart(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Restarts a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#restoreBackup">restoreBackup(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Restores a backup of a Cloud SQL instance. Using this operation might cause your instance to restart.</p>
<p class="toc_element">
  <code><a href="#rotateServerCa">rotateServerCa(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Rotates the server certificate to one signed by the Certificate Authority (CA) version previously added with the addServerCA method. For instances that have enabled Certificate Authority Service (CAS) based server CA, use RotateServerCertificate to rotate the server certificate.</p>
<p class="toc_element">
  <code><a href="#startReplica">startReplica(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Starts the replication in the read replica instance.</p>
<p class="toc_element">
  <code><a href="#stopReplica">stopReplica(project, instance, x__xgafv=None)</a></code></p>
<p class="firstline">Stops the replication in the read replica instance.</p>
<p class="toc_element">
  <code><a href="#switchover">switchover(project, instance, dbTimeout=None, x__xgafv=None)</a></code></p>
<p class="firstline">Switches over from the primary instance to the DR replica instance.</p>
<p class="toc_element">
  <code><a href="#truncateLog">truncateLog(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Truncate MySQL general and slow query log tables MySQL only.</p>
<p class="toc_element">
  <code><a href="#update">update(project, instance, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates settings of a Cloud SQL instance. Using this operation might cause your instance to restart.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="ListServerCertificates">ListServerCertificates(project, instance, x__xgafv=None)</code>
  <pre>Lists all versions of server certificates and certificate authorities (CAs) for the specified instance. There can be up to three sets of certs listed: the certificate that is currently in use, a future that has been added but not yet used to sign a certificate, and a certificate that has been rotated out. For instances not using Certificate Authority Service (CAS) server CA, use ListServerCas instead.

Args:
  project: string, Required. Project ID of the project that contains the instance. (required)
  instance: string, Required. Cloud SQL instance ID. This does not include the project ID. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Instances ListServerCertificatess response.
  &quot;activeVersion&quot;: &quot;A String&quot;, # The `sha1_fingerprint` of the active certificate from `server_certs`.
  &quot;caCerts&quot;: [ # List of server CA certificates for the instance.
    { # SslCerts Resource
      &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;kind&quot;: &quot;A String&quot;, # This is always `sql#instancesListServerCertificates`.
  &quot;serverCerts&quot;: [ # List of server certificates for the instance, signed by the corresponding CA from the `ca_certs` list.
    { # SslCerts Resource
      &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.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="RotateServerCertificate">RotateServerCertificate(project, instance, body=None, x__xgafv=None)</code>
  <pre>Rotates the server certificate version to one previously added with the addServerCertificate method. For instances not using Certificate Authority Service (CAS) server CA, use RotateServerCa instead.

Args:
  project: string, Required. Project ID of the project that contains the instance. (required)
  instance: string, Required. Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Rotate Server Certificate request.
  &quot;rotateServerCertificateContext&quot;: { # Instance rotate server certificate context. # Optional. Contains details about the rotate server CA operation.
    &quot;kind&quot;: &quot;A String&quot;, # Optional. This is always `sql#rotateServerCertificateContext`.
    &quot;nextVersion&quot;: &quot;A String&quot;, # Optional. The fingerprint of the next version to be rotated to. If left unspecified, will be rotated to the most recently added server certificate version.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="acquireSsrsLease">acquireSsrsLease(project, instance, body=None, x__xgafv=None)</code>
  <pre>Acquire a lease for the setup of SQL Server Reporting Services (SSRS).

Args:
  project: string, Required. ID of the project that contains the instance (Example: project-id). (required)
  instance: string, Required. Cloud SQL instance ID. This doesn&#x27;t include the project ID. It&#x27;s composed of lowercase letters, numbers, and hyphens, and it must start with a letter. The total length must be 98 characters or less (Example: instance-id). (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to acquire an SSRS lease for an instance.
  &quot;acquireSsrsLeaseContext&quot;: { # Acquire SSRS lease context. # Contains details about the acquire SSRS lease operation.
    &quot;duration&quot;: &quot;A String&quot;, # Lease duration needed for the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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.
  },
}

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

Returns:
  An object of the form:

    { # Acquire SSRS lease response.
  &quot;operationId&quot;: &quot;A String&quot;, # The unique identifier for this operation.
}</pre>
</div>

<div class="method">
    <code class="details" id="addServerCa">addServerCa(project, instance, x__xgafv=None)</code>
  <pre>Add a new trusted Certificate Authority (CA) version for the specified instance. Required to prepare for a certificate rotation. If a CA version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one CA version waiting to be rotated in. For instances that have enabled Certificate Authority Service (CAS) based server CA, use AddServerCertificate to add a new server certificate.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="addServerCertificate">addServerCertificate(project, instance, x__xgafv=None)</code>
  <pre>Add a new trusted server certificate version for the specified instance using Certificate Authority Service (CAS) server CA. Required to prepare for a certificate rotation. If a server certificate version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one certificate version waiting to be rotated in. For instances not using CAS server CA, use AddServerCa instead.

Args:
  project: string, Required. Project ID of the project that contains the instance. (required)
  instance: string, Required. Cloud SQL instance ID. This does not include the project ID. (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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="clone">clone(project, instance, body=None, x__xgafv=None)</code>
  <pre>Creates a Cloud SQL instance as a clone of the source instance. Using this operation might cause your instance to restart.

Args:
  project: string, Project ID of the source as well as the clone Cloud SQL instance. (required)
  instance: string, The ID of the Cloud SQL instance to be cloned (source). This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Database instance clone request.
  &quot;cloneContext&quot;: { # Database instance clone context. # Contains details about the clone operation.
    &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 cloned 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])?. Reserved for future use.
    &quot;binLogCoordinates&quot;: { # Binary log coordinates. # Binary log coordinates, if specified, identify the position up to which the source instance is cloned. If not specified, the source instance is cloned up to the most recent binary log coordinates.
      &quot;binLogFileName&quot;: &quot;A String&quot;, # Name of the binary log file for a Cloud SQL instance.
      &quot;binLogPosition&quot;: &quot;A String&quot;, # Position (offset) within the binary log file.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#binLogCoordinates`.
    },
    &quot;databaseNames&quot;: [ # (SQL Server only) Clone only the specified databases from the source instance. Clone all databases if empty.
      &quot;A String&quot;,
    ],
    &quot;destinationInstanceName&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance to be created as a clone.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#cloneContext`.
    &quot;pitrTimestampMs&quot;: &quot;A String&quot;, # Reserved for future use.
    &quot;pointInTime&quot;: &quot;A String&quot;, # Timestamp, if specified, identifies the time to which the source instance is cloned.
    &quot;preferredSecondaryZone&quot;: &quot;A String&quot;, # Optional. Copy clone and point-in-time recovery clone of a regional instance in the specified zones. If not specified, clone to the same secondary zone as the source instance. This value cannot be the same as the preferred_zone field.
    &quot;preferredZone&quot;: &quot;A String&quot;, # Optional. Copy clone and point-in-time recovery clone of an instance to the specified zone. If no zone is specified, clone to the same primary zone as the source instance.
    &quot;sourceInstanceDeletionTime&quot;: &quot;A String&quot;, # The timestamp used to identify the time when the source instance is deleted. If this instance is deleted, then you must set the timestamp.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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>

<div class="method">
    <code class="details" id="delete">delete(project, instance, enableFinalBackup=None, finalBackupDescription=None, finalBackupExpiryTime=None, finalBackupTtlDays=None, x__xgafv=None)</code>
  <pre>Deletes a Cloud SQL instance.

Args:
  project: string, Project ID of the project that contains the instance to be deleted. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  enableFinalBackup: boolean, Flag to opt-in for final backup. By default, it is turned off.
  finalBackupDescription: string, Optional. The description of the final backup.
  finalBackupExpiryTime: string, Optional. Final Backup expiration time. Timestamp in UTC of when this resource is considered expired.
  finalBackupTtlDays: string, Optional. 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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="demote">demote(project, instance, body=None, x__xgafv=None)</code>
  <pre>Demotes an existing standalone instance to be a Cloud SQL read replica for an external database server.

Args:
  project: string, Required. The project ID of the project that contains the instance. (required)
  instance: string, Required. The name of the Cloud SQL instance. (required)
  body: object, The request body.
    The object takes the form of:

{ # This request is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server.
  &quot;demoteContext&quot;: { # This context is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server. # Required. This context is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#demoteContext`.
    &quot;sourceRepresentativeInstanceName&quot;: &quot;A String&quot;, # Required. The name of the instance which acts as an on-premises primary instance in the replication setup.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="demoteMaster">demoteMaster(project, instance, body=None, x__xgafv=None)</code>
  <pre>Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.

Args:
  project: string, ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance name. (required)
  body: object, The request body.
    The object takes the form of:

{ # Database demote primary instance request.
  &quot;demoteMasterContext&quot;: { # Database instance demote primary instance context. # Contains details about the demoteMaster operation.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#demoteMasterContext`.
    &quot;masterInstanceName&quot;: &quot;A String&quot;, # The name of the instance which will act as on-premises primary instance in the replication setup.
    &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the on-premises primary instance. # Configuration specific to read-replicas replicating from the on-premises primary instance.
      &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#demoteMasterConfiguration`.
      &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. The format of the replica&#x27;s private key can be either PKCS #1 or PKCS #8.
        &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#demoteMasterMysqlReplicaConfiguration`.
        &quot;password&quot;: &quot;A String&quot;, # The password for the replication connection.
        &quot;username&quot;: &quot;A String&quot;, # The username for the replication connection.
      },
    },
    &quot;skipReplicationSetup&quot;: True or False, # Flag to skip replication setup on the instance.
    &quot;verifyGtidConsistency&quot;: True or False, # Verify the GTID consistency for demote operation. Default value: `True`. Setting this flag to `false` enables you to bypass the GTID consistency check between on-premises primary instance and Cloud SQL instance during the demotion operation but also exposes you to the risk of future replication failures. Change the value only if you know the reason for the GTID divergence and are confident that doing so will not cause any replication issues.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="executeSql">executeSql(project, instance, body=None, x__xgafv=None)</code>
  <pre>Execute SQL statements.

Args:
  project: string, Required. Project ID of the project that contains the instance. (required)
  instance: string, Required. Database instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request payload used to execute SQL statements.
  &quot;autoIamAuthn&quot;: True or False, # Optional. When set to true, the API caller identity associated with the request is used for database authentication. The API caller must be an IAM user in the database.
  &quot;database&quot;: &quot;A String&quot;, # Optional. Name of the database on which the statement will be executed.
  &quot;partialResultMode&quot;: &quot;A String&quot;, # Optional. Controls how the API should respond when the SQL execution result is incomplete due to the size limit or another error. The default mode is to throw an error.
  &quot;rowLimit&quot;: &quot;A String&quot;, # Optional. The maximum number of rows returned per SQL statement.
  &quot;sqlStatement&quot;: &quot;A String&quot;, # Required. SQL statements to run on the database. It can be a single statement or a sequence of statements separated by semicolons.
  &quot;user&quot;: &quot;A String&quot;, # Optional. The name of an existing database user to connect to the database. When `auto_iam_authn` is set to true, this field is ignored and the API caller&#x27;s IAM user is used.
}

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

Returns:
  An object of the form:

    { # Execute SQL statements response.
  &quot;messages&quot;: [ # A list of notices and warnings generated during query execution. For PostgreSQL, this includes all notices and warnings. For MySQL, this includes warnings generated by the last executed statement. To retrieve all warnings for a multi-statement query, `SHOW WARNINGS` must be executed after each statement.
    { # Represents a notice or warning message from the database.
      &quot;message&quot;: &quot;A String&quot;, # The full message string. For PostgreSQL, this is a formatted string that may include severity, code, and the notice/warning message. For MySQL, this contains the warning message.
      &quot;severity&quot;: &quot;A String&quot;, # The severity of the message (e.g., &quot;NOTICE&quot; for PostgreSQL, &quot;WARNING&quot; for MySQL).
    },
  ],
  &quot;metadata&quot;: { # The additional metadata information regarding the execution of the SQL statements. # The additional metadata information regarding the execution of the SQL statements.
    &quot;sqlStatementExecutionTime&quot;: &quot;A String&quot;, # The time taken to execute the SQL statements.
  },
  &quot;results&quot;: [ # The list of results after executing all the SQL statements.
    { # QueryResult contains the result of executing a single SQL statement.
      &quot;columns&quot;: [ # List of columns included in the result. This also includes the data type of the column.
        { # Contains the name and datatype of a column.
          &quot;name&quot;: &quot;A String&quot;, # Name of the column.
          &quot;type&quot;: &quot;A String&quot;, # Datatype of the column.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # Message related to the SQL execution result.
      &quot;partialResult&quot;: True or False, # Set to true if the SQL execution&#x27;s result is truncated due to size limits or an error retrieving results.
      &quot;rows&quot;: [ # Rows returned by the SQL statement.
        { # Contains the values for a row.
          &quot;values&quot;: [ # The values for the row.
            { # The cell value of the table.
              &quot;nullValue&quot;: True or False, # If cell value is null, then this flag will be set to true.
              &quot;value&quot;: &quot;A String&quot;, # The cell value represented in string format.
            },
          ],
        },
      ],
      &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # If results were truncated due to an error, details of that error.
        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
          {
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
          },
        ],
        &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
      },
    },
  ],
  &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Contains the error from the database if the SQL execution failed.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="export">export(project, instance, body=None, x__xgafv=None)</code>
  <pre>Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL dump or CSV file.

Args:
  project: string, Project ID of the project that contains the instance to be exported. (required)
  instance: string, The Cloud SQL instance ID. This doesn&#x27;t include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Database instance export request.
  &quot;exportContext&quot;: { # Database instance export context. # Contains details about the export operation.
    &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 location. 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.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="failover">failover(project, instance, body=None, x__xgafv=None)</code>
  <pre>Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the [Overview of high availability](https://cloud.google.com/sql/docs/mysql/high-availability) page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.

Args:
  project: string, ID of the project that contains the read replica. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Instance failover request.
  &quot;failoverContext&quot;: { # Database instance failover context. # Failover Context.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#failoverContext`.
    &quot;settingsVersion&quot;: &quot;A String&quot;, # The current settings version of this instance. Request will be rejected if this version doesn&#x27;t match the current settings version.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="get">get(project, instance, x__xgafv=None)</code>
  <pre>Retrieves a resource containing information about a Cloud SQL instance.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Database instance ID. This does not include the project ID. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Cloud SQL instance resource.
  &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. SslOption 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 has regional failure. Applicable to MySQL and PostgreSQL. # 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 for the database for point-in-time recovery.
    },
    &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 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;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 legacy `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;, # The SQL network architecture for the instance.
  &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.
}</pre>
</div>

<div class="method">
    <code class="details" id="import_">import_(project, instance, body=None, x__xgafv=None)</code>
  <pre>Imports data into a Cloud SQL instance from a SQL dump or CSV file in Cloud Storage.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Database instance import request.
  &quot;importContext&quot;: { # Database instance import context. # Contains details about the import operation.
    &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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="insert">insert(project, body=None, x__xgafv=None)</code>
  <pre>Creates a new Cloud SQL instance.

Args:
  project: string, Project ID of the project to which the newly created Cloud SQL instances should belong. (required)
  body: object, The request body.
    The object takes the form of:

{ # A Cloud SQL instance resource.
  &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. SslOption 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 has regional failure. Applicable to MySQL and PostgreSQL. # 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 for the database for point-in-time recovery.
    },
    &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 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;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 legacy `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;, # The SQL network architecture for the instance.
  &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.
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="list">list(project, filter=None, maxResults=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists instances under a given project.

Args:
  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
  filter: string, A filter expression that filters resources listed in the response. The expression is in the form of field:value. For example, &#x27;instanceType:CLOUD_SQL_INSTANCE&#x27;. Fields can be nested as needed as per their JSON representation, such as &#x27;settings.userLabels.auto_start:true&#x27;. Multiple filter queries are space-separated. For example. &#x27;state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE&#x27;. By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly.
  maxResults: integer, The maximum number of instances to return. The service may return fewer than this value. If unspecified, at most 500 instances are returned. The maximum value is 1000; values above 1000 are coerced to 1000.
  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Database instances list response.
  &quot;items&quot;: [ # List of database instance resources.
    { # A Cloud SQL instance resource.
      &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. SslOption 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 has regional failure. Applicable to MySQL and PostgreSQL. # 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 for the database for point-in-time recovery.
        },
        &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 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;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 legacy `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;, # The SQL network architecture for the instance.
      &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;, # This is always `sql#instancesList`.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
  &quot;warnings&quot;: [ # List of warnings that occurred while handling the request.
    { # 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="listServerCas">listServerCas(project, instance, x__xgafv=None)</code>
  <pre>Lists all of the trusted Certificate Authorities (CAs) for the specified instance. There can be up to three CAs listed: the CA that was used to sign the certificate that is currently in use, a CA that has been added but not yet used to sign a certificate, and a CA used to sign a certificate that has previously rotated out.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Instances ListServerCas response.
  &quot;activeVersion&quot;: &quot;A String&quot;,
  &quot;certs&quot;: [ # List of server CA certificates for the instance.
    { # SslCerts Resource
      &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;kind&quot;: &quot;A String&quot;, # This is always `sql#instancesListServerCas`.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_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="patch">patch(project, instance, body=None, x__xgafv=None)</code>
  <pre>Partially updates settings of a Cloud SQL instance by merging the request with the current configuration. This method supports patch semantics.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # A Cloud SQL instance resource.
  &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. SslOption 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 has regional failure. Applicable to MySQL and PostgreSQL. # 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 for the database for point-in-time recovery.
    },
    &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 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;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 legacy `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;, # The SQL network architecture for the instance.
  &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.
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="pointInTimeRestore">pointInTimeRestore(parent, body=None, x__xgafv=None)</code>
  <pre>Point in time restore for an instance managed by Google Cloud Backup and Disaster Recovery.

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

{ # Context to perform a point-in-time restore of an instance managed by Google Cloud Backup and Disaster Recovery.
  &quot;allocatedIpRange&quot;: &quot;A String&quot;, # Optional. The name of the allocated IP range for the internal IP Cloud SQL instance. For example: &quot;google-managed-services-default&quot;. If you set this, then Cloud SQL creates the IP address for the cloned instance in the allocated range. This range must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035) standards. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future use.
  &quot;datasource&quot;: &quot;A String&quot;, # The Google Cloud Backup and Disaster Recovery Datasource URI. Format: projects/{project}/locations/{region}/backupVaults/{backupvault}/dataSources/{datasource}.
  &quot;pointInTime&quot;: &quot;A String&quot;, # Required. The date and time to which you want to restore the instance.
  &quot;preferredSecondaryZone&quot;: &quot;A String&quot;, # Optional. Point-in-time recovery of a regional instance in the specified zones. If not specified, clone to the same secondary zone as the source instance. This value cannot be the same as the preferred_zone field.
  &quot;preferredZone&quot;: &quot;A String&quot;, # Optional. Point-in-time recovery of an instance to the specified zone. If no zone is specified, then clone to the same primary zone as the source instance.
  &quot;privateNetwork&quot;: &quot;A String&quot;, # Optional. 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`.
  &quot;targetInstance&quot;: &quot;A String&quot;, # Target instance name.
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="preCheckMajorVersionUpgrade">preCheckMajorVersionUpgrade(project, instance, body=None, x__xgafv=None)</code>
  <pre>Execute MVU Pre-checks

Args:
  project: string, Required. Project ID of the project that contains the instance. (required)
  instance: string, Required. Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for Pre-checks for MVU
  &quot;preCheckMajorVersionUpgradeContext&quot;: { # Pre-check major version upgrade context. # Required. Contains details about the pre-check major version upgrade operation.
    &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.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="promoteReplica">promoteReplica(project, instance, failover=None, x__xgafv=None)</code>
  <pre>Promotes the read replica instance to be an independent Cloud SQL primary instance. Using this operation might cause your instance to restart.

Args:
  project: string, ID of the project that contains the read replica. (required)
  instance: string, Cloud SQL read replica instance name. (required)
  failover: boolean, Set to true to invoke a replica failover to the DR replica. As part of replica failover, the promote operation attempts to add the original primary instance as a replica of the promoted DR replica when the original primary instance comes back online. If set to false or not specified, then the original primary instance becomes an independent Cloud SQL primary instance.
  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="reencrypt">reencrypt(project, instance, body=None, x__xgafv=None)</code>
  <pre>Reencrypt CMEK instance with latest key version.

Args:
  project: string, ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Database Instance reencrypt request.
  &quot;backupReencryptionConfig&quot;: { # Backup Reencryption Config # Configuration specific to backup re-encryption
    &quot;backupLimit&quot;: 42, # Backup re-encryption limit
    &quot;backupType&quot;: &quot;A String&quot;, # Type of backups users want to re-encrypt.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="releaseSsrsLease">releaseSsrsLease(project, instance, x__xgafv=None)</code>
  <pre>Release a lease for the setup of SQL Server Reporting Services (SSRS).

Args:
  project: string, Required. The ID of the project that contains the instance (Example: project-id). (required)
  instance: string, Required. The Cloud SQL instance ID. This doesn&#x27;t include the project ID. It&#x27;s composed of lowercase letters, numbers, and hyphens, and it must start with a letter. The total length must be 98 characters or less (Example: instance-id). (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for the release of the SSRS lease.
  &quot;operationId&quot;: &quot;A String&quot;, # The operation ID.
}</pre>
</div>

<div class="method">
    <code class="details" id="resetSslConfig">resetSslConfig(project, instance, mode=None, x__xgafv=None)</code>
  <pre>Deletes all client certificates and generates a new server SSL certificate for the instance.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  mode: string, Optional. Reset SSL mode to use.
    Allowed values
      RESET_SSL_MODE_UNSPECIFIED - Reset SSL mode is not specified.
      ALL - Refresh all TLS configs. This is the default behaviour.
      SYNC_FROM_PRIMARY - Refreshes the replication-related TLS configuration settings provided by the primary instance. Not applicable to on-premises replication instances.
  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="restart">restart(project, instance, x__xgafv=None)</code>
  <pre>Restarts a Cloud SQL instance.

Args:
  project: string, Project ID of the project that contains the instance to be restarted. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="restoreBackup">restoreBackup(project, instance, body=None, x__xgafv=None)</code>
  <pre>Restores a backup of a Cloud SQL instance. Using this operation might cause your instance to restart.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Database instance restore backup request.
  &quot;backup&quot;: &quot;A String&quot;, # The name of the backup that&#x27;s used to restore a Cloud SQL instance: Format: projects/{project-id}/backups/{backup-uid}. Only one of restore_backup_context, backup, backupdr_backup can be passed to the input.
  &quot;backupdrBackup&quot;: &quot;A String&quot;, # The name of the backup that&#x27;s used to restore a Cloud SQL instance: Format: &quot;projects/{project-id}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}/backups/{backup-uid}&quot;. Only one of restore_backup_context, backup, backupdr_backup can be passed to the input.
  &quot;restoreBackupContext&quot;: { # Database instance restore from backup context. Backup context contains source instance id and project id. # Parameters required to perform the restore backup operation.
    &quot;backupRunId&quot;: &quot;A String&quot;, # The ID of the backup run to restore from.
    &quot;instanceId&quot;: &quot;A String&quot;, # The ID of the instance that the backup was taken from.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#restoreBackupContext`.
    &quot;project&quot;: &quot;A String&quot;, # The full project ID of the source instance.
  },
  &quot;restoreInstanceClearOverridesFieldNames&quot;: [ # Optional. This field has the same purpose as restore_instance_settings, changes any instance settings stored in the backup you are restoring from. With the difference that these fields are cleared in the settings.
    &quot;A String&quot;,
  ],
  &quot;restoreInstanceSettings&quot;: { # A Cloud SQL instance resource. # Optional. By using this parameter, Cloud SQL overrides any instance settings stored in the backup you are restoring from. You can&#x27;t change the instance&#x27;s major database version and you can only increase the disk size. You can use this field to restore new instances only. This field is not applicable for restore to existing instances.
    &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. SslOption 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 has regional failure. Applicable to MySQL and PostgreSQL. # 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 for the database for point-in-time recovery.
      },
      &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 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;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 legacy `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;, # The SQL network architecture for the instance.
    &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.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="rotateServerCa">rotateServerCa(project, instance, body=None, x__xgafv=None)</code>
  <pre>Rotates the server certificate to one signed by the Certificate Authority (CA) version previously added with the addServerCA method. For instances that have enabled Certificate Authority Service (CAS) based server CA, use RotateServerCertificate to rotate the server certificate.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Rotate Server CA request.
  &quot;rotateServerCaContext&quot;: { # Instance rotate server CA context. # Contains details about the rotate server CA operation.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#rotateServerCaContext`.
    &quot;nextVersion&quot;: &quot;A String&quot;, # The fingerprint of the next version to be rotated to. If left unspecified, will be rotated to the most recently added server CA version.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="startReplica">startReplica(project, instance, x__xgafv=None)</code>
  <pre>Starts the replication in the read replica instance.

Args:
  project: string, ID of the project that contains the read replica. (required)
  instance: string, Cloud SQL read replica instance name. (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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="stopReplica">stopReplica(project, instance, x__xgafv=None)</code>
  <pre>Stops the replication in the read replica instance.

Args:
  project: string, ID of the project that contains the read replica. (required)
  instance: string, Cloud SQL read replica instance name. (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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="switchover">switchover(project, instance, dbTimeout=None, x__xgafv=None)</code>
  <pre>Switches over from the primary instance to the DR replica instance.

Args:
  project: string, ID of the project that contains the replica. (required)
  instance: string, Cloud SQL read replica instance name. (required)
  dbTimeout: string, Optional. (MySQL and PostgreSQL only) Cloud SQL instance operations timeout, which is a sum of all database operations. Default value is 10 minutes and can be modified to a maximum value of 24 hours.
  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="truncateLog">truncateLog(project, instance, body=None, x__xgafv=None)</code>
  <pre>Truncate MySQL general and slow query log tables MySQL only.

Args:
  project: string, Project ID of the Cloud SQL project. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # Instance truncate log request.
  &quot;truncateLogContext&quot;: { # Database Instance truncate log context. # Contains details about the truncate log operation.
    &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#truncateLogContext`.
    &quot;logType&quot;: &quot;A String&quot;, # The type of log to truncate. Valid values are `MYSQL_GENERAL_TABLE` and `MYSQL_SLOW_TABLE`.
  },
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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="update">update(project, instance, body=None, x__xgafv=None)</code>
  <pre>Updates settings of a Cloud SQL instance. Using this operation might cause your instance to restart.

Args:
  project: string, Project ID of the project that contains the instance. (required)
  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # A Cloud SQL instance resource.
  &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. SslOption 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 has regional failure. Applicable to MySQL and PostgreSQL. # 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 for the database for point-in-time recovery.
    },
    &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 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;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 legacy `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;, # The SQL network architecture for the instance.
  &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.
}

  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 the SSRS setup.
    &quot;reportDatabase&quot;: &quot;A String&quot;, # The report database to be used for the 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 location. 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. * `BAK`: The file contains backup data for a SQL Server instance.
    &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 files 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. # The context for pre-check major version upgrade operation, if applicable. 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>

</body></html>