<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="sqladmin_v1beta4.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1beta4.databases.html">databases</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(project, instance, database)</a></code></p>
<p class="firstline">Deletes a database from a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#get">get(project, instance, database)</a></code></p>
<p class="firstline">Retrieves a resource containing information about a database inside a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#insert">insert(project, instance, body)</a></code></p>
<p class="firstline">Inserts a resource containing information about a database inside a Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#list">list(project, instance)</a></code></p>
<p class="firstline">Lists databases in the specified Cloud SQL instance.</p>
<p class="toc_element">
  <code><a href="#patch">patch(project, instance, database, body)</a></code></p>
<p class="firstline">Updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(project, instance, database, body)</a></code></p>
<p class="firstline">Updates a resource containing information about a database inside a Cloud SQL instance.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(project, instance, database)</code>
  <pre>Deletes a database from 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)
  database: string, Name of the database to be deleted in the instance. (required)

Returns:
  An object of the form:

    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
    "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.
      "kind": "sql#importContext", # This is always sql#importContext.
      "database": "A String", # The target database for the import. If fileType is SQL, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If fileType is CSV, one database must be specified.
      "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", # Path to the import file in Cloud Storage, in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL. The instance must have write permissions to the bucket and read access to the file.
      "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
      "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 requests succeeds, but 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 to be exported.
          # MySQL instances: If fileType is SQL and no database is specified, all databases are exported, except for the mysql system database. If fileType is CSV, you can specify one database, either by using this property or by using the csvExportOptions.selectQuery property, which takes precedence over this property.
          # PostgreSQL instances: Specify exactly one database to be exported. If fileType is CSV, this database must match the database used in the csvExportOptions.selectQuery property.
        "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. For PostgreSQL instances, you can specify only one table.
          "A String",
        ],
        "mysqlExportOptions": { # Options for exporting from MySQL.
          "masterData": 42, # Option to include SQL statement required to set up replication. If set to 1, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates. If set to 2, the CHANGE MASTER TO statement is written as a SQL comment, and has no effect. All other values are ignored.
        },
        "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",
    "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, database)</code>
  <pre>Retrieves a resource containing information about a database inside 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)
  database: string, Name of the database in the instance. (required)

Returns:
  An object of the form:

    { # Represents a SQL database on the Cloud SQL instance.
      "kind": "sql#database", # This is always sql#database.
      "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
      "charset": "A String", # The MySQL charset value.
      "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
      "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
      "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
      "collation": "A String", # The MySQL collation value.
      "selfLink": "A String", # The URI of this resource.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(project, instance, body)</code>
  <pre>Inserts a resource containing information about a database inside 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)
  body: object, The request body. (required)
    The object takes the form of:

{ # Represents a SQL database on the Cloud SQL instance.
    "kind": "sql#database", # This is always sql#database.
    "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
    "charset": "A String", # The MySQL charset value.
    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
    "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
    "collation": "A String", # The MySQL collation value.
    "selfLink": "A String", # The URI of this resource.
  }


Returns:
  An object of the form:

    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
    "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.
      "kind": "sql#importContext", # This is always sql#importContext.
      "database": "A String", # The target database for the import. If fileType is SQL, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If fileType is CSV, one database must be specified.
      "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", # Path to the import file in Cloud Storage, in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL. The instance must have write permissions to the bucket and read access to the file.
      "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
      "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 requests succeeds, but 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 to be exported.
          # MySQL instances: If fileType is SQL and no database is specified, all databases are exported, except for the mysql system database. If fileType is CSV, you can specify one database, either by using this property or by using the csvExportOptions.selectQuery property, which takes precedence over this property.
          # PostgreSQL instances: Specify exactly one database to be exported. If fileType is CSV, this database must match the database used in the csvExportOptions.selectQuery property.
        "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. For PostgreSQL instances, you can specify only one table.
          "A String",
        ],
        "mysqlExportOptions": { # Options for exporting from MySQL.
          "masterData": 42, # Option to include SQL statement required to set up replication. If set to 1, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates. If set to 2, the CHANGE MASTER TO statement is written as a SQL comment, and has no effect. All other values are ignored.
        },
        "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",
    "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, instance)</code>
  <pre>Lists databases in the specified 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)

Returns:
  An object of the form:

    { # Database list response.
    "items": [ # List of database resources in the instance.
      { # Represents a SQL database on the Cloud SQL instance.
          "kind": "sql#database", # This is always sql#database.
          "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
          "charset": "A String", # The MySQL charset value.
          "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
          "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
          "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
          "collation": "A String", # The MySQL collation value.
          "selfLink": "A String", # The URI of this resource.
        },
    ],
    "kind": "sql#databasesList", # This is always sql#databasesList.
  }</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(project, instance, database, body)</code>
  <pre>Updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.

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)
  database: string, Name of the database to be updated in the instance. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Represents a SQL database on the Cloud SQL instance.
    "kind": "sql#database", # This is always sql#database.
    "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
    "charset": "A String", # The MySQL charset value.
    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
    "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
    "collation": "A String", # The MySQL collation value.
    "selfLink": "A String", # The URI of this resource.
  }


Returns:
  An object of the form:

    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
    "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.
      "kind": "sql#importContext", # This is always sql#importContext.
      "database": "A String", # The target database for the import. If fileType is SQL, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If fileType is CSV, one database must be specified.
      "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", # Path to the import file in Cloud Storage, in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL. The instance must have write permissions to the bucket and read access to the file.
      "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
      "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 requests succeeds, but 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 to be exported.
          # MySQL instances: If fileType is SQL and no database is specified, all databases are exported, except for the mysql system database. If fileType is CSV, you can specify one database, either by using this property or by using the csvExportOptions.selectQuery property, which takes precedence over this property.
          # PostgreSQL instances: Specify exactly one database to be exported. If fileType is CSV, this database must match the database used in the csvExportOptions.selectQuery property.
        "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. For PostgreSQL instances, you can specify only one table.
          "A String",
        ],
        "mysqlExportOptions": { # Options for exporting from MySQL.
          "masterData": 42, # Option to include SQL statement required to set up replication. If set to 1, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates. If set to 2, the CHANGE MASTER TO statement is written as a SQL comment, and has no effect. All other values are ignored.
        },
        "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",
    "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, database, body)</code>
  <pre>Updates a resource containing information about a database inside 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)
  database: string, Name of the database to be updated in the instance. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Represents a SQL database on the Cloud SQL instance.
    "kind": "sql#database", # This is always sql#database.
    "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
    "charset": "A String", # The MySQL charset value.
    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
    "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
    "collation": "A String", # The MySQL collation value.
    "selfLink": "A String", # The URI of this resource.
  }


Returns:
  An object of the form:

    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
    "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.
      "kind": "sql#importContext", # This is always sql#importContext.
      "database": "A String", # The target database for the import. If fileType is SQL, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If fileType is CSV, one database must be specified.
      "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", # Path to the import file in Cloud Storage, in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL. The instance must have write permissions to the bucket and read access to the file.
      "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
      "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 requests succeeds, but 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 to be exported.
          # MySQL instances: If fileType is SQL and no database is specified, all databases are exported, except for the mysql system database. If fileType is CSV, you can specify one database, either by using this property or by using the csvExportOptions.selectQuery property, which takes precedence over this property.
          # PostgreSQL instances: Specify exactly one database to be exported. If fileType is CSV, this database must match the database used in the csvExportOptions.selectQuery property.
        "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. For PostgreSQL instances, you can specify only one table.
          "A String",
        ],
        "mysqlExportOptions": { # Options for exporting from MySQL.
          "masterData": 42, # Option to include SQL statement required to set up replication. If set to 1, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates. If set to 2, the CHANGE MASTER TO statement is written as a SQL comment, and has no effect. All other values are ignored.
        },
        "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",
    "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>