<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 Administration API</a> . <a href="sqladmin_v1beta4.instances.html">instances</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#clone">clone(project, instance, body)</a></code></p>
<p class="firstline">Creates a Cloud SQL instance as a clone of the source instance. The API is not ready for Second Generation instances yet.</p>
<p class="toc_element">
  <code><a href="#delete">delete(project, instance)</a></code></p>
<p class="firstline">Deletes a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#export">export(project, instance, body)</a></code></p>
<p class="firstline">Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file.</p>
<p class="toc_element">
  <code><a href="#failover">failover(project, instance, body)</a></code></p>
<p class="firstline">Failover the instance to its failover replica instance.</p>
<p class="toc_element">
  <code><a href="#get">get(project, instance)</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)</a></code></p>
<p class="firstline">Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage.</p>
<p class="toc_element">
  <code><a href="#insert">insert(project, body)</a></code></p>
<p class="firstline">Creates a new Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#list">list(project, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Lists instances under a given project in the alphabetical order of the instance name.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</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)</a></code></p>
<p class="firstline">Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#promoteReplica">promoteReplica(project, instance)</a></code></p>
<p class="firstline">Promotes the read replica instance to be a stand-alone Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#resetSslConfig">resetSslConfig(project, instance)</a></code></p>
<p class="firstline">Deletes all client certificates and generates a new server SSL certificate for the instance. The changes will not take effect until the instance is restarted. Existing instances without a server certificate will need to call this once to set a server certificate.</p>
<p class="toc_element">
  <code><a href="#restart">restart(project, instance)</a></code></p>
<p class="firstline">Restarts a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#restoreBackup">restoreBackup(project, instance, body)</a></code></p>
<p class="firstline">Restores a backup of a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#startReplica">startReplica(project, instance)</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)</a></code></p>
<p class="firstline">Stops the replication in the read replica instance.</p>
<p class="toc_element">
  <code><a href="#update">update(project, instance, body)</a></code></p>
<p class="firstline">Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="clone">clone(project, instance, body)</code>
  <pre>Creates a Cloud SQL instance as a clone of the source instance. The API is not ready for Second Generation instances yet.

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. (required)
    The object takes the form of:

{ # Database instance clone request.
    "cloneContext": { # Database instance clone context. # Contains details about the clone operation.
      "binLogCoordinates": { # Binary log coordinates. # Binary log coordinates, if specified, indentify the the position up to which the source instance should be cloned. If not specified, the source instance is cloned up to the most recent binary log coordintes.
        "binLogPosition": "A String", # Position (offset) within the binary log file.
        "kind": "sql#binLogCoordinates", # This is always sql#binLogCoordinates.
        "binLogFileName": "A String", # Name of the binary log file for a Cloud SQL instance.
      },
      "kind": "sql#cloneContext", # This is always sql#cloneContext.
      "destinationInstanceName": "A String", # Name of the Cloud SQL instance to be created as a clone.
    },
  }


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(project, instance)</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)

Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

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

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

{ # Database instance export request.
    "exportContext": { # Database instance export context. # Contains details about the export operation.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
  }


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="failover">failover(project, instance, body)</code>
  <pre>Failover the instance 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. (required)
    The object takes the form of:

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


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(project, instance)</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)

Returns:
  An object of the form:

    { # A Cloud SQL instance resource.
      "backendType": "A String", # FIRST_GEN: Basic Cloud SQL instance that runs in a Google-managed container.
          # SECOND_GEN: A newer Cloud SQL backend that runs in a Compute Engine VM.
          # EXTERNAL: A MySQL server that is not managed by Google.
      "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Users should use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ for details.
      "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is applicable only to Second Generation instances.
      "ipAddresses": [ # The assigned IP addresses for the instance.
        { # Database instance IP Mapping.
          "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
          "ipAddress": "A String", # The IP address assigned.
        },
      ],
      "databaseVersion": "A String", # The database engine type and version. The databaseVersion can not be changed after instance creation. Can be MYSQL_5_5, MYSQL_5_6 or MYSQL_5_7. Defaults to MYSQL_5_6. MYSQL_5_7 is applicable only to Second Generation instances.
      "instanceType": "A String", # The instance type. This can be one of the following.
          # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
          # ON_PREMISES_INSTANCE: An instance running on the customer's premises.
          # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
      "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
      "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
        "A String",
      ],
      "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
      "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
          # RUNNABLE: The instance is running, or is ready to run when accessed.
          # SUSPENDED: The instance is not available, for example due to problems with billing.
          # PENDING_CREATE: The instance is being created.
          # MAINTENANCE: The instance is down for maintenance.
          # FAILED: The instance creation failed.
          # UNKNOWN_STATE: The state of the instance is unknown.
      "etag": "A String", # HTTP 1.1 Entity tag for the resource.
      "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances.
        "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The master can only failover to the falover replica when the status is true.
        "name": "A String", # The name of the failover replica.
      },
      "replicaNames": [ # The replicas of the instance.
        "A String",
      ],
      "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
        "kind": "sql#onPremisesConfiguration", # This is always sql#onPremisesConfiguration.
        "hostPort": "A String", # The host and port of the on-premises instance in host:port format
      },
      "kind": "sql#instance", # This is always sql#instance.
      "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
      "ipv6Address": "A String", # The IPv6 address assigned to the instance. This property is applicable only to First Generation instances.
      "serverCaCert": { # SslCerts Resource # SSL configuration.
        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
        "kind": "sql#sslCert", # This is always sql#sslCert.
        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
        "instance": "A String", # Name of the database instance.
        "cert": "A String", # PEM representation.
        "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
        "selfLink": "A String", # The URI of this resource.
      },
      "region": "A String", # The geographical region. Can be us-central (FIRST_GEN instances only), us-central1 (SECOND_GEN instances only), asia-east1 or europe-west1. Defaults to us-central or us-central1 depending on the instance type (First Generation or Second Generation). The region can not be changed after instance creation.
      "settings": { # Database instance settings. # The user settings.
        "databaseFlags": [ # The database flags passed to the instance at startup.
          { # MySQL flags for Cloud SQL instances.
            "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. For more information, see Configuring MySQL Flags in the Google Cloud SQL documentation, as well as the official MySQL documentation for server options and system variables.
            "value": "A String", # The value of the flag. Booleans should be set to on for true and off for false. This field must be omitted if the flag doesn't take a value.
          },
        ],
        "kind": "sql#settings", # This is always sql#settings.
        "dataDiskType": "A String", # The type of data disk. Only supported for Second Generation instances. The default type is PD_SSD. Applies only to Second Generation instances.
        "maintenanceWindow": { # Maintenance window. This specifies when a v2 Cloud SQL instance should preferably be restarted for system maintenance puruposes. # The maintenance window for this instance. This specifies when the instance may be restarted for maintenance purposes. Applies only to Second Generation instances.
          "kind": "sql#maintenanceWindow", # This is always sql#maintenanceWindow.
          "updateTrack": "A String",
          "day": 42, # day of week (1-7), starting on Monday.
          "hour": 42, # hour of day - 0 to 23.
        },
        "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
          "A String",
        ],
        "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
            # ALWAYS: The instance should always be active.
            # NEVER: The instance should never be activated.
            # ON_DEMAND: The instance is activated upon receiving requests; only applicable to First Generation instances.
        "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
          "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
          "enabled": True or False, # Whether this configuration is enabled.
          "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
          "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
        },
        "ipConfiguration": { # 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.
          "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
          "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
          "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
            { # An entry for an Access Control list.
              "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
              "kind": "sql#aclEntry", # This is always sql#aclEntry.
              "value": "A String", # The whitelisted value for the access control list.
              "name": "A String", # An optional label to identify this entry.
            },
          ],
        },
        "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
        "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
        "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
        "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
        "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
        "settingsVersion": "A String", # 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.
        "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
        "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. 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 GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
          "kind": "sql#locationPreference", # This is always sql#locationPreference.
          "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
          "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
        },
        "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB. Applies only to Second Generation instances.
      },
      "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
      "replicaConfiguration": { # Read-replica configuration for connecting to the master. # Configuration specific to read-replicas replicating from on-premises masters.
        "kind": "sql#replicaConfiguration", # This is always sql#replicaConfiguration.
        "failoverTarget": 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 master instance fails, the replica instance will be promoted as the new master instance.
            # Only one replica can be specified as failover target, and the replica has to be in different zone with the master instance.
        "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises master. 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.
          "username": "A String", # The username for the replication connection.
          "kind": "sql#mysqlReplicaConfiguration", # This is always sql#mysqlReplicaConfiguration.
          "clientKey": "A String", # PEM representation of the slave's private key. The corresponsing public key is encoded in the client's certificate.
          "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
          "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
          "clientCertificate": "A String", # PEM representation of the slave's x509 certificate.
          "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
          "verifyServerCertificate": True or False, # Whether or not to check the master's Common Name value in the certificate that it sends during the SSL handshake.
          "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the slave instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps should have the binlog co-ordinates from which replication should begin. This can be accomplished by setting --master-data to 1 when using mysqldump.
          "password": "A String", # The password for the replication connection.
          "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
        },
      },
      "selfLink": "A String", # The URI of this resource.
    }</pre>
</div>

<div class="method">
    <code class="details" id="import_">import_(project, instance, body)</code>
  <pre>Imports data into a Cloud SQL instance from a MySQL dump file in Google 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. (required)
    The object takes the form of:

{ # Database instance import request.
    "importContext": { # Database instance import context. # Contains details about the import operation.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
  }


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(project, body)</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. (required)
    The object takes the form of:

{ # A Cloud SQL instance resource.
    "backendType": "A String", # FIRST_GEN: Basic Cloud SQL instance that runs in a Google-managed container.
        # SECOND_GEN: A newer Cloud SQL backend that runs in a Compute Engine VM.
        # EXTERNAL: A MySQL server that is not managed by Google.
    "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Users should use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ for details.
    "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is applicable only to Second Generation instances.
    "ipAddresses": [ # The assigned IP addresses for the instance.
      { # Database instance IP Mapping.
        "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
        "ipAddress": "A String", # The IP address assigned.
      },
    ],
    "databaseVersion": "A String", # The database engine type and version. The databaseVersion can not be changed after instance creation. Can be MYSQL_5_5, MYSQL_5_6 or MYSQL_5_7. Defaults to MYSQL_5_6. MYSQL_5_7 is applicable only to Second Generation instances.
    "instanceType": "A String", # The instance type. This can be one of the following.
        # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
        # ON_PREMISES_INSTANCE: An instance running on the customer's premises.
        # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
    "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
    "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
      "A String",
    ],
    "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
    "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
        # RUNNABLE: The instance is running, or is ready to run when accessed.
        # SUSPENDED: The instance is not available, for example due to problems with billing.
        # PENDING_CREATE: The instance is being created.
        # MAINTENANCE: The instance is down for maintenance.
        # FAILED: The instance creation failed.
        # UNKNOWN_STATE: The state of the instance is unknown.
    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
    "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances.
      "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The master can only failover to the falover replica when the status is true.
      "name": "A String", # The name of the failover replica.
    },
    "replicaNames": [ # The replicas of the instance.
      "A String",
    ],
    "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
      "kind": "sql#onPremisesConfiguration", # This is always sql#onPremisesConfiguration.
      "hostPort": "A String", # The host and port of the on-premises instance in host:port format
    },
    "kind": "sql#instance", # This is always sql#instance.
    "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
    "ipv6Address": "A String", # The IPv6 address assigned to the instance. This property is applicable only to First Generation instances.
    "serverCaCert": { # SslCerts Resource # SSL configuration.
      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
      "kind": "sql#sslCert", # This is always sql#sslCert.
      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
      "instance": "A String", # Name of the database instance.
      "cert": "A String", # PEM representation.
      "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
      "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
      "selfLink": "A String", # The URI of this resource.
    },
    "region": "A String", # The geographical region. Can be us-central (FIRST_GEN instances only), us-central1 (SECOND_GEN instances only), asia-east1 or europe-west1. Defaults to us-central or us-central1 depending on the instance type (First Generation or Second Generation). The region can not be changed after instance creation.
    "settings": { # Database instance settings. # The user settings.
      "databaseFlags": [ # The database flags passed to the instance at startup.
        { # MySQL flags for Cloud SQL instances.
          "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. For more information, see Configuring MySQL Flags in the Google Cloud SQL documentation, as well as the official MySQL documentation for server options and system variables.
          "value": "A String", # The value of the flag. Booleans should be set to on for true and off for false. This field must be omitted if the flag doesn't take a value.
        },
      ],
      "kind": "sql#settings", # This is always sql#settings.
      "dataDiskType": "A String", # The type of data disk. Only supported for Second Generation instances. The default type is PD_SSD. Applies only to Second Generation instances.
      "maintenanceWindow": { # Maintenance window. This specifies when a v2 Cloud SQL instance should preferably be restarted for system maintenance puruposes. # The maintenance window for this instance. This specifies when the instance may be restarted for maintenance purposes. Applies only to Second Generation instances.
        "kind": "sql#maintenanceWindow", # This is always sql#maintenanceWindow.
        "updateTrack": "A String",
        "day": 42, # day of week (1-7), starting on Monday.
        "hour": 42, # hour of day - 0 to 23.
      },
      "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
        "A String",
      ],
      "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
          # ALWAYS: The instance should always be active.
          # NEVER: The instance should never be activated.
          # ON_DEMAND: The instance is activated upon receiving requests; only applicable to First Generation instances.
      "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
        "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
        "enabled": True or False, # Whether this configuration is enabled.
        "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
        "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
      },
      "ipConfiguration": { # 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.
        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
        "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
        "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
          { # An entry for an Access Control list.
            "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
            "kind": "sql#aclEntry", # This is always sql#aclEntry.
            "value": "A String", # The whitelisted value for the access control list.
            "name": "A String", # An optional label to identify this entry.
          },
        ],
      },
      "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
      "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
      "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
      "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
      "settingsVersion": "A String", # 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.
      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
      "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. 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 GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
        "kind": "sql#locationPreference", # This is always sql#locationPreference.
        "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
        "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
      },
      "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB. Applies only to Second Generation instances.
    },
    "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
    "replicaConfiguration": { # Read-replica configuration for connecting to the master. # Configuration specific to read-replicas replicating from on-premises masters.
      "kind": "sql#replicaConfiguration", # This is always sql#replicaConfiguration.
      "failoverTarget": 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 master instance fails, the replica instance will be promoted as the new master instance.
          # Only one replica can be specified as failover target, and the replica has to be in different zone with the master instance.
      "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises master. 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.
        "username": "A String", # The username for the replication connection.
        "kind": "sql#mysqlReplicaConfiguration", # This is always sql#mysqlReplicaConfiguration.
        "clientKey": "A String", # PEM representation of the slave's private key. The corresponsing public key is encoded in the client's certificate.
        "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
        "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
        "clientCertificate": "A String", # PEM representation of the slave's x509 certificate.
        "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
        "verifyServerCertificate": True or False, # Whether or not to check the master's Common Name value in the certificate that it sends during the SSL handshake.
        "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the slave instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps should have the binlog co-ordinates from which replication should begin. This can be accomplished by setting --master-data to 1 when using mysqldump.
        "password": "A String", # The password for the replication connection.
        "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
      },
    },
    "selfLink": "A String", # The URI of this resource.
  }


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
  <pre>Lists instances under a given project in the alphabetical order of the instance name.

Args:
  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
  maxResults: integer, The maximum number of results to return per response.

Returns:
  An object of the form:

    { # Database instances list response.
    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    "items": [ # List of database instance resources.
      { # A Cloud SQL instance resource.
          "backendType": "A String", # FIRST_GEN: Basic Cloud SQL instance that runs in a Google-managed container.
              # SECOND_GEN: A newer Cloud SQL backend that runs in a Compute Engine VM.
              # EXTERNAL: A MySQL server that is not managed by Google.
          "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Users should use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ for details.
          "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is applicable only to Second Generation instances.
          "ipAddresses": [ # The assigned IP addresses for the instance.
            { # Database instance IP Mapping.
              "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
              "ipAddress": "A String", # The IP address assigned.
            },
          ],
          "databaseVersion": "A String", # The database engine type and version. The databaseVersion can not be changed after instance creation. Can be MYSQL_5_5, MYSQL_5_6 or MYSQL_5_7. Defaults to MYSQL_5_6. MYSQL_5_7 is applicable only to Second Generation instances.
          "instanceType": "A String", # The instance type. This can be one of the following.
              # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
              # ON_PREMISES_INSTANCE: An instance running on the customer's premises.
              # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
          "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
          "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
            "A String",
          ],
          "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
          "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
              # RUNNABLE: The instance is running, or is ready to run when accessed.
              # SUSPENDED: The instance is not available, for example due to problems with billing.
              # PENDING_CREATE: The instance is being created.
              # MAINTENANCE: The instance is down for maintenance.
              # FAILED: The instance creation failed.
              # UNKNOWN_STATE: The state of the instance is unknown.
          "etag": "A String", # HTTP 1.1 Entity tag for the resource.
          "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances.
            "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The master can only failover to the falover replica when the status is true.
            "name": "A String", # The name of the failover replica.
          },
          "replicaNames": [ # The replicas of the instance.
            "A String",
          ],
          "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
            "kind": "sql#onPremisesConfiguration", # This is always sql#onPremisesConfiguration.
            "hostPort": "A String", # The host and port of the on-premises instance in host:port format
          },
          "kind": "sql#instance", # This is always sql#instance.
          "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
          "ipv6Address": "A String", # The IPv6 address assigned to the instance. This property is applicable only to First Generation instances.
          "serverCaCert": { # SslCerts Resource # SSL configuration.
            "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
            "kind": "sql#sslCert", # This is always sql#sslCert.
            "sha1Fingerprint": "A String", # Sha1 Fingerprint.
            "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
            "instance": "A String", # Name of the database instance.
            "cert": "A String", # PEM representation.
            "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
            "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
            "selfLink": "A String", # The URI of this resource.
          },
          "region": "A String", # The geographical region. Can be us-central (FIRST_GEN instances only), us-central1 (SECOND_GEN instances only), asia-east1 or europe-west1. Defaults to us-central or us-central1 depending on the instance type (First Generation or Second Generation). The region can not be changed after instance creation.
          "settings": { # Database instance settings. # The user settings.
            "databaseFlags": [ # The database flags passed to the instance at startup.
              { # MySQL flags for Cloud SQL instances.
                "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. For more information, see Configuring MySQL Flags in the Google Cloud SQL documentation, as well as the official MySQL documentation for server options and system variables.
                "value": "A String", # The value of the flag. Booleans should be set to on for true and off for false. This field must be omitted if the flag doesn't take a value.
              },
            ],
            "kind": "sql#settings", # This is always sql#settings.
            "dataDiskType": "A String", # The type of data disk. Only supported for Second Generation instances. The default type is PD_SSD. Applies only to Second Generation instances.
            "maintenanceWindow": { # Maintenance window. This specifies when a v2 Cloud SQL instance should preferably be restarted for system maintenance puruposes. # The maintenance window for this instance. This specifies when the instance may be restarted for maintenance purposes. Applies only to Second Generation instances.
              "kind": "sql#maintenanceWindow", # This is always sql#maintenanceWindow.
              "updateTrack": "A String",
              "day": 42, # day of week (1-7), starting on Monday.
              "hour": 42, # hour of day - 0 to 23.
            },
            "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
              "A String",
            ],
            "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
                # ALWAYS: The instance should always be active.
                # NEVER: The instance should never be activated.
                # ON_DEMAND: The instance is activated upon receiving requests; only applicable to First Generation instances.
            "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
              "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
              "enabled": True or False, # Whether this configuration is enabled.
              "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
              "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
            },
            "ipConfiguration": { # 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.
              "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
              "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
              "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
                { # An entry for an Access Control list.
                  "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
                  "kind": "sql#aclEntry", # This is always sql#aclEntry.
                  "value": "A String", # The whitelisted value for the access control list.
                  "name": "A String", # An optional label to identify this entry.
                },
              ],
            },
            "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
            "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
            "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
            "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
            "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
            "settingsVersion": "A String", # 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.
            "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
            "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. 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 GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
              "kind": "sql#locationPreference", # This is always sql#locationPreference.
              "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
              "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
            },
            "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB. Applies only to Second Generation instances.
          },
          "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
          "replicaConfiguration": { # Read-replica configuration for connecting to the master. # Configuration specific to read-replicas replicating from on-premises masters.
            "kind": "sql#replicaConfiguration", # This is always sql#replicaConfiguration.
            "failoverTarget": 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 master instance fails, the replica instance will be promoted as the new master instance.
                # Only one replica can be specified as failover target, and the replica has to be in different zone with the master instance.
            "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises master. 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.
              "username": "A String", # The username for the replication connection.
              "kind": "sql#mysqlReplicaConfiguration", # This is always sql#mysqlReplicaConfiguration.
              "clientKey": "A String", # PEM representation of the slave's private key. The corresponsing public key is encoded in the client's certificate.
              "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
              "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
              "clientCertificate": "A String", # PEM representation of the slave's x509 certificate.
              "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
              "verifyServerCertificate": True or False, # Whether or not to check the master's Common Name value in the certificate that it sends during the SSL handshake.
              "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the slave instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps should have the binlog co-ordinates from which replication should begin. This can be accomplished by setting --master-data to 1 when using mysqldump.
              "password": "A String", # The password for the replication connection.
              "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
            },
          },
          "selfLink": "A String", # The URI of this resource.
        },
    ],
    "kind": "sql#instancesList", # This is always sql#instancesList.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</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 'execute()' 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)</code>
  <pre>Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.. 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. (required)
    The object takes the form of:

{ # A Cloud SQL instance resource.
    "backendType": "A String", # FIRST_GEN: Basic Cloud SQL instance that runs in a Google-managed container.
        # SECOND_GEN: A newer Cloud SQL backend that runs in a Compute Engine VM.
        # EXTERNAL: A MySQL server that is not managed by Google.
    "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Users should use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ for details.
    "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is applicable only to Second Generation instances.
    "ipAddresses": [ # The assigned IP addresses for the instance.
      { # Database instance IP Mapping.
        "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
        "ipAddress": "A String", # The IP address assigned.
      },
    ],
    "databaseVersion": "A String", # The database engine type and version. The databaseVersion can not be changed after instance creation. Can be MYSQL_5_5, MYSQL_5_6 or MYSQL_5_7. Defaults to MYSQL_5_6. MYSQL_5_7 is applicable only to Second Generation instances.
    "instanceType": "A String", # The instance type. This can be one of the following.
        # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
        # ON_PREMISES_INSTANCE: An instance running on the customer's premises.
        # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
    "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
    "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
      "A String",
    ],
    "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
    "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
        # RUNNABLE: The instance is running, or is ready to run when accessed.
        # SUSPENDED: The instance is not available, for example due to problems with billing.
        # PENDING_CREATE: The instance is being created.
        # MAINTENANCE: The instance is down for maintenance.
        # FAILED: The instance creation failed.
        # UNKNOWN_STATE: The state of the instance is unknown.
    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
    "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances.
      "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The master can only failover to the falover replica when the status is true.
      "name": "A String", # The name of the failover replica.
    },
    "replicaNames": [ # The replicas of the instance.
      "A String",
    ],
    "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
      "kind": "sql#onPremisesConfiguration", # This is always sql#onPremisesConfiguration.
      "hostPort": "A String", # The host and port of the on-premises instance in host:port format
    },
    "kind": "sql#instance", # This is always sql#instance.
    "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
    "ipv6Address": "A String", # The IPv6 address assigned to the instance. This property is applicable only to First Generation instances.
    "serverCaCert": { # SslCerts Resource # SSL configuration.
      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
      "kind": "sql#sslCert", # This is always sql#sslCert.
      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
      "instance": "A String", # Name of the database instance.
      "cert": "A String", # PEM representation.
      "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
      "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
      "selfLink": "A String", # The URI of this resource.
    },
    "region": "A String", # The geographical region. Can be us-central (FIRST_GEN instances only), us-central1 (SECOND_GEN instances only), asia-east1 or europe-west1. Defaults to us-central or us-central1 depending on the instance type (First Generation or Second Generation). The region can not be changed after instance creation.
    "settings": { # Database instance settings. # The user settings.
      "databaseFlags": [ # The database flags passed to the instance at startup.
        { # MySQL flags for Cloud SQL instances.
          "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. For more information, see Configuring MySQL Flags in the Google Cloud SQL documentation, as well as the official MySQL documentation for server options and system variables.
          "value": "A String", # The value of the flag. Booleans should be set to on for true and off for false. This field must be omitted if the flag doesn't take a value.
        },
      ],
      "kind": "sql#settings", # This is always sql#settings.
      "dataDiskType": "A String", # The type of data disk. Only supported for Second Generation instances. The default type is PD_SSD. Applies only to Second Generation instances.
      "maintenanceWindow": { # Maintenance window. This specifies when a v2 Cloud SQL instance should preferably be restarted for system maintenance puruposes. # The maintenance window for this instance. This specifies when the instance may be restarted for maintenance purposes. Applies only to Second Generation instances.
        "kind": "sql#maintenanceWindow", # This is always sql#maintenanceWindow.
        "updateTrack": "A String",
        "day": 42, # day of week (1-7), starting on Monday.
        "hour": 42, # hour of day - 0 to 23.
      },
      "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
        "A String",
      ],
      "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
          # ALWAYS: The instance should always be active.
          # NEVER: The instance should never be activated.
          # ON_DEMAND: The instance is activated upon receiving requests; only applicable to First Generation instances.
      "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
        "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
        "enabled": True or False, # Whether this configuration is enabled.
        "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
        "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
      },
      "ipConfiguration": { # 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.
        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
        "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
        "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
          { # An entry for an Access Control list.
            "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
            "kind": "sql#aclEntry", # This is always sql#aclEntry.
            "value": "A String", # The whitelisted value for the access control list.
            "name": "A String", # An optional label to identify this entry.
          },
        ],
      },
      "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
      "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
      "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
      "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
      "settingsVersion": "A String", # 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.
      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
      "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. 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 GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
        "kind": "sql#locationPreference", # This is always sql#locationPreference.
        "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
        "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
      },
      "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB. Applies only to Second Generation instances.
    },
    "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
    "replicaConfiguration": { # Read-replica configuration for connecting to the master. # Configuration specific to read-replicas replicating from on-premises masters.
      "kind": "sql#replicaConfiguration", # This is always sql#replicaConfiguration.
      "failoverTarget": 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 master instance fails, the replica instance will be promoted as the new master instance.
          # Only one replica can be specified as failover target, and the replica has to be in different zone with the master instance.
      "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises master. 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.
        "username": "A String", # The username for the replication connection.
        "kind": "sql#mysqlReplicaConfiguration", # This is always sql#mysqlReplicaConfiguration.
        "clientKey": "A String", # PEM representation of the slave's private key. The corresponsing public key is encoded in the client's certificate.
        "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
        "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
        "clientCertificate": "A String", # PEM representation of the slave's x509 certificate.
        "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
        "verifyServerCertificate": True or False, # Whether or not to check the master's Common Name value in the certificate that it sends during the SSL handshake.
        "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the slave instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps should have the binlog co-ordinates from which replication should begin. This can be accomplished by setting --master-data to 1 when using mysqldump.
        "password": "A String", # The password for the replication connection.
        "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
      },
    },
    "selfLink": "A String", # The URI of this resource.
  }


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="promoteReplica">promoteReplica(project, instance)</code>
  <pre>Promotes the read replica instance to be a stand-alone Cloud SQL instance.

Args:
  project: string, ID of the project that contains the read replica. (required)
  instance: string, Cloud SQL read replica instance name. (required)

Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="resetSslConfig">resetSslConfig(project, instance)</code>
  <pre>Deletes all client certificates and generates a new server SSL certificate for the instance. The changes will not take effect until the instance is restarted. Existing instances without a server certificate will need to call this once to set a 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)

Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="restart">restart(project, instance)</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)

Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="restoreBackup">restoreBackup(project, instance, body)</code>
  <pre>Restores a backup of a Cloud SQL 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)
  body: object, The request body. (required)
    The object takes the form of:

{ # Database instance restore backup request.
    "restoreBackupContext": { # Database instance restore from backup context. # Parameters required to perform the restore backup operation.
      "instanceId": "A String", # The ID of the instance that the backup was taken from.
      "kind": "sql#restoreBackupContext", # This is always sql#restoreBackupContext.
      "backupRunId": "A String", # The ID of the backup run to restore from.
    },
  }


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="startReplica">startReplica(project, instance)</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)

Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="stopReplica">stopReplica(project, instance)</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)

Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(project, instance, body)</code>
  <pre>Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.

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. (required)
    The object takes the form of:

{ # A Cloud SQL instance resource.
    "backendType": "A String", # FIRST_GEN: Basic Cloud SQL instance that runs in a Google-managed container.
        # SECOND_GEN: A newer Cloud SQL backend that runs in a Compute Engine VM.
        # EXTERNAL: A MySQL server that is not managed by Google.
    "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Users should use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ for details.
    "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is applicable only to Second Generation instances.
    "ipAddresses": [ # The assigned IP addresses for the instance.
      { # Database instance IP Mapping.
        "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
        "ipAddress": "A String", # The IP address assigned.
      },
    ],
    "databaseVersion": "A String", # The database engine type and version. The databaseVersion can not be changed after instance creation. Can be MYSQL_5_5, MYSQL_5_6 or MYSQL_5_7. Defaults to MYSQL_5_6. MYSQL_5_7 is applicable only to Second Generation instances.
    "instanceType": "A String", # The instance type. This can be one of the following.
        # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
        # ON_PREMISES_INSTANCE: An instance running on the customer's premises.
        # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
    "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
    "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
      "A String",
    ],
    "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
    "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
        # RUNNABLE: The instance is running, or is ready to run when accessed.
        # SUSPENDED: The instance is not available, for example due to problems with billing.
        # PENDING_CREATE: The instance is being created.
        # MAINTENANCE: The instance is down for maintenance.
        # FAILED: The instance creation failed.
        # UNKNOWN_STATE: The state of the instance is unknown.
    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
    "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances.
      "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The master can only failover to the falover replica when the status is true.
      "name": "A String", # The name of the failover replica.
    },
    "replicaNames": [ # The replicas of the instance.
      "A String",
    ],
    "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
      "kind": "sql#onPremisesConfiguration", # This is always sql#onPremisesConfiguration.
      "hostPort": "A String", # The host and port of the on-premises instance in host:port format
    },
    "kind": "sql#instance", # This is always sql#instance.
    "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
    "ipv6Address": "A String", # The IPv6 address assigned to the instance. This property is applicable only to First Generation instances.
    "serverCaCert": { # SslCerts Resource # SSL configuration.
      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
      "kind": "sql#sslCert", # This is always sql#sslCert.
      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
      "instance": "A String", # Name of the database instance.
      "cert": "A String", # PEM representation.
      "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
      "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
      "selfLink": "A String", # The URI of this resource.
    },
    "region": "A String", # The geographical region. Can be us-central (FIRST_GEN instances only), us-central1 (SECOND_GEN instances only), asia-east1 or europe-west1. Defaults to us-central or us-central1 depending on the instance type (First Generation or Second Generation). The region can not be changed after instance creation.
    "settings": { # Database instance settings. # The user settings.
      "databaseFlags": [ # The database flags passed to the instance at startup.
        { # MySQL flags for Cloud SQL instances.
          "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. For more information, see Configuring MySQL Flags in the Google Cloud SQL documentation, as well as the official MySQL documentation for server options and system variables.
          "value": "A String", # The value of the flag. Booleans should be set to on for true and off for false. This field must be omitted if the flag doesn't take a value.
        },
      ],
      "kind": "sql#settings", # This is always sql#settings.
      "dataDiskType": "A String", # The type of data disk. Only supported for Second Generation instances. The default type is PD_SSD. Applies only to Second Generation instances.
      "maintenanceWindow": { # Maintenance window. This specifies when a v2 Cloud SQL instance should preferably be restarted for system maintenance puruposes. # The maintenance window for this instance. This specifies when the instance may be restarted for maintenance purposes. Applies only to Second Generation instances.
        "kind": "sql#maintenanceWindow", # This is always sql#maintenanceWindow.
        "updateTrack": "A String",
        "day": 42, # day of week (1-7), starting on Monday.
        "hour": 42, # hour of day - 0 to 23.
      },
      "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
        "A String",
      ],
      "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
          # ALWAYS: The instance should always be active.
          # NEVER: The instance should never be activated.
          # ON_DEMAND: The instance is activated upon receiving requests; only applicable to First Generation instances.
      "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
        "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
        "enabled": True or False, # Whether this configuration is enabled.
        "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
        "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
      },
      "ipConfiguration": { # 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.
        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
        "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
        "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
          { # An entry for an Access Control list.
            "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
            "kind": "sql#aclEntry", # This is always sql#aclEntry.
            "value": "A String", # The whitelisted value for the access control list.
            "name": "A String", # An optional label to identify this entry.
          },
        ],
      },
      "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
      "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
      "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
      "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
      "settingsVersion": "A String", # 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.
      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
      "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. 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 GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
        "kind": "sql#locationPreference", # This is always sql#locationPreference.
        "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
        "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
      },
      "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB. Applies only to Second Generation instances.
    },
    "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
    "replicaConfiguration": { # Read-replica configuration for connecting to the master. # Configuration specific to read-replicas replicating from on-premises masters.
      "kind": "sql#replicaConfiguration", # This is always sql#replicaConfiguration.
      "failoverTarget": 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 master instance fails, the replica instance will be promoted as the new master instance.
          # Only one replica can be specified as failover target, and the replica has to be in different zone with the master instance.
      "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises master. 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.
        "username": "A String", # The username for the replication connection.
        "kind": "sql#mysqlReplicaConfiguration", # This is always sql#mysqlReplicaConfiguration.
        "clientKey": "A String", # PEM representation of the slave's private key. The corresponsing public key is encoded in the client's certificate.
        "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
        "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
        "clientCertificate": "A String", # PEM representation of the slave's x509 certificate.
        "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
        "verifyServerCertificate": True or False, # Whether or not to check the master's Common Name value in the certificate that it sends during the SSL handshake.
        "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the slave instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps should have the binlog co-ordinates from which replication should begin. This can be accomplished by setting --master-data to 1 when using mysqldump.
        "password": "A String", # The password for the replication connection.
        "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
      },
    },
    "selfLink": "A String", # The URI of this resource.
  }


Returns:
  An object of the form:

    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
    "importContext": { # Database instance import context. # The context for import operation, if applicable.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
      "kind": "sql#importContext", # This is always sql#importContext.
      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
      "csvImportOptions": { # Options for importing data as CSV.
        "table": "A String", # The table to which CSV data is imported.
        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
          "A String",
        ],
      },
    },
    "kind": "sql#operation", # This is always sql#operation.
    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
      "kind": "sql#exportContext", # This is always sql#exportContext.
      "fileType": "A String", # The file type for the specified uri.
          # SQL: The file contains SQL statements.
          # CSV: The file contains CSV data.
      "uri": "A String", # 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 operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
      "csvExportOptions": { # Options for exporting data as CSV.
        "selectQuery": "A String", # The select query used to extract the data.
      },
      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
        "A String",
      ],
      "sqlExportOptions": { # Options for exporting data as SQL statements.
        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
          "A String",
        ],
        "schemaOnly": True or False, # Export only schemas.
      },
    },
    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "targetProject": "A String", # The project ID of the target instance related to this operation.
    "targetId": "A String", # Name of the database instance related to this operation.
    "operationType": "A String", # 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 .
    "targetLink": "A String", # The URI of the instance related to the operation.
    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
      "kind": "sql#operationErrors", # This is always sql#operationErrors.
      "errors": [ # The list of errors encountered while processing this operation.
        { # Database instance operation error.
          "kind": "sql#operationError", # This is always sql#operationError.
          "code": "A String", # Identifies the specific error that occurred.
          "message": "A String", # Additional information about the error encountered.
        },
      ],
    },
    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
    "selfLink": "A String", # The URI of this resource.
    "user": "A String", # The email address of the user who initiated this operation.
  }</pre>
</div>

</body></html>