googleapis/google/cloud/sql/v1beta4/cloud_sql.proto
Google APIs 97d28ba114 feat: add client library publishing configuration for SQL Admin
docs: A comment for field `replication_log_archiving_enabled` in message `.google.cloud.sql.v1beta4.BackupConfiguration` is changed

PiperOrigin-RevId: 952133611
2026-07-22 08:23:40 -07:00

1773 lines
60 KiB
Protocol Buffer
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.sql.v1beta4;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/sql/v1beta4/cloud_sql_resources.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
option go_package = "cloud.google.com/go/sql/apiv1beta4/sqlpb;sqlpb";
option java_multiple_files = true;
option java_outer_classname = "CloudSqlServiceProto";
option java_package = "com.google.cloud.sql.v1beta4";
service SqlBackupRunsService {
option (google.api.default_host) = "sqladmin.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/sqlservice.admin";
// Deletes the backup taken by a backup run.
rpc Delete(SqlBackupRunsDeleteRequest) returns (Operation) {
option (google.api.http) = {
delete: "/sql/v1beta4/projects/{project}/instances/{instance}/backupRuns/{id}"
};
}
// Retrieves a resource containing information about a backup run.
rpc Get(SqlBackupRunsGetRequest) returns (BackupRun) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/backupRuns/{id}"
};
}
// Creates a new backup run on demand.
rpc Insert(SqlBackupRunsInsertRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/backupRuns"
body: "body"
};
}
// Lists all backup runs associated with the project or a given instance and
// configuration in the reverse chronological order of the backup initiation
// time.
rpc List(SqlBackupRunsListRequest) returns (BackupRunsListResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/backupRuns"
};
}
}
service SqlDatabasesService {
option (google.api.default_host) = "sqladmin.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/sqlservice.admin";
// Deletes a database from a Cloud SQL instance.
rpc Delete(SqlDatabasesDeleteRequest) returns (Operation) {
option (google.api.http) = {
delete: "/sql/v1beta4/projects/{project}/instances/{instance}/databases/{database}"
};
}
// Retrieves a resource containing information about a database inside a Cloud
// SQL instance.
rpc Get(SqlDatabasesGetRequest) returns (Database) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/databases/{database}"
};
}
// Inserts a resource containing information about a database inside a Cloud
// SQL instance.
//
// **Note:** You can't modify the default character set and collation.
rpc Insert(SqlDatabasesInsertRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/databases"
body: "body"
};
}
// Lists databases in the specified Cloud SQL instance.
rpc List(SqlDatabasesListRequest) returns (DatabasesListResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/databases"
};
}
// Partially updates a resource containing information about a database inside
// a Cloud SQL instance. This method supports patch semantics.
rpc Patch(SqlDatabasesUpdateRequest) returns (Operation) {
option (google.api.http) = {
patch: "/sql/v1beta4/projects/{project}/instances/{instance}/databases/{database}"
body: "body"
};
}
// Updates a resource containing information about a database inside a Cloud
// SQL instance.
rpc Update(SqlDatabasesUpdateRequest) returns (Operation) {
option (google.api.http) = {
put: "/sql/v1beta4/projects/{project}/instances/{instance}/databases/{database}"
body: "body"
};
}
}
service SqlFlagsService {
option (google.api.default_host) = "sqladmin.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/sqlservice.admin";
// Lists all available database flags for Cloud SQL instances.
rpc List(SqlFlagsListRequest) returns (FlagsListResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/flags"
};
}
}
service SqlInstancesService {
option (google.api.default_host) = "sqladmin.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/sqlservice.admin";
// Add a new trusted Certificate Authority (CA) version for the specified
// instance. Required to prepare for a certificate rotation. If a CA version
// was previously added but never used in a certificate rotation, this
// operation replaces that version. There cannot be more than one CA version
// waiting to be rotated in. For instances that have enabled Certificate
// Authority Service (CAS) based server CA, use AddServerCertificate to add a
// new server certificate.
rpc AddServerCa(SqlInstancesAddServerCaRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/addServerCa"
};
}
// Add a new trusted server certificate version for the specified instance
// using Certificate Authority Service (CAS) server CA. Required to prepare
// for a certificate rotation. If a server certificate version was previously
// added but never used in a certificate rotation, this operation replaces
// that version. There cannot be more than one certificate version waiting to
// be rotated in. For instances not using CAS server CA, use AddServerCa
// instead.
rpc AddServerCertificate(SqlInstancesAddServerCertificateRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/addServerCertificate"
};
}
// Adds a new Entra ID certificate for the specified instance. If an Entra ID
// certificate was previously added but never used in a certificate rotation,
// this operation replaces that version.
rpc AddEntraIdCertificate(SqlInstancesAddEntraIdCertificateRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/addEntraIdCertificate"
};
}
// Creates a Cloud SQL instance as a clone of the source instance. Using this
// operation might cause your instance to restart.
rpc Clone(SqlInstancesCloneRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/clone"
body: "body"
};
}
// Deletes a Cloud SQL instance.
rpc Delete(SqlInstancesDeleteRequest) returns (Operation) {
option (google.api.http) = {
delete: "/sql/v1beta4/projects/{project}/instances/{instance}"
};
}
// Demotes the stand-alone instance to be a Cloud SQL read replica for an
// external database server.
rpc DemoteMaster(SqlInstancesDemoteMasterRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/demoteMaster"
body: "body"
};
}
// Demotes an existing standalone instance to be a Cloud SQL read replica
// for an external database server.
rpc Demote(SqlInstancesDemoteRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/demote"
body: "body"
};
}
// Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL
// dump or CSV file.
rpc Export(SqlInstancesExportRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/export"
body: "body"
};
}
// Initiates a manual failover of a high availability (HA) primary instance
// to a standby instance, which becomes the primary instance. Users are
// then rerouted to the new primary. For more information, see the
// [Overview of high
// availability](https://cloud.google.com/sql/docs/mysql/high-availability)
// page in the Cloud SQL documentation.
// If using Legacy HA (MySQL only), this causes the instance to failover to
// its failover replica instance.
rpc Failover(SqlInstancesFailoverRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/failover"
body: "body"
};
}
// Reencrypt CMEK instance with latest key version.
rpc Reencrypt(SqlInstancesReencryptRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/reencrypt"
body: "body"
};
}
// Retrieves a resource containing information about a Cloud SQL instance.
rpc Get(SqlInstancesGetRequest) returns (DatabaseInstance) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}"
};
}
// Imports data into a Cloud SQL instance from a SQL dump or CSV file in
// Cloud Storage.
rpc Import(SqlInstancesImportRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/import"
body: "body"
};
}
// Creates a new Cloud SQL instance.
rpc Insert(SqlInstancesInsertRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances"
body: "body"
};
}
// Lists instances under a given project.
rpc List(SqlInstancesListRequest) returns (InstancesListResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances"
};
}
// Lists all of the trusted Certificate Authorities (CAs) for the specified
// instance. There can be up to three CAs listed: the CA that was used to sign
// the certificate that is currently in use, a CA that has been added but not
// yet used to sign a certificate, and a CA used to sign a certificate that
// has previously rotated out.
rpc ListServerCas(SqlInstancesListServerCasRequest)
returns (InstancesListServerCasResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/listServerCas"
};
}
// Lists all versions of server certificates and certificate authorities (CAs)
// for the specified instance. There can be up to three sets of certs listed:
// the certificate that is currently in use, a future that has been added but
// not yet used to sign a certificate, and a certificate that has been rotated
// out. For instances not using Certificate Authority Service (CAS) server CA,
// use ListServerCas instead.
rpc ListServerCertificates(SqlInstancesListServerCertificatesRequest)
returns (InstancesListServerCertificatesResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/listServerCertificates"
};
}
// Lists all versions of EntraID certificates for the specified instance.
// There can be up to three sets of certificates listed: the certificate that
// is currently in use, a future that has been added but not yet used to sign
// a certificate, and a certificate that has been rotated out.
rpc ListEntraIdCertificates(SqlInstancesListEntraIdCertificatesRequest)
returns (InstancesListEntraIdCertificatesResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/listEntraIdCertificates"
};
}
// Partially updates settings of a Cloud SQL instance by merging the request
// with the current configuration. This method supports patch semantics.
rpc Patch(SqlInstancesPatchRequest) returns (Operation) {
option (google.api.http) = {
patch: "/sql/v1beta4/projects/{project}/instances/{instance}"
body: "body"
};
}
// Promotes the read replica instance to be an independent Cloud SQL
// primary instance.
// Using this operation might cause your instance to restart.
rpc PromoteReplica(SqlInstancesPromoteReplicaRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/promoteReplica"
};
}
// Switches over from the primary instance to the DR replica
// instance.
rpc Switchover(SqlInstancesSwitchoverRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/switchover"
};
}
// Deletes all client certificates and generates a new server SSL certificate
// for the instance.
rpc ResetSslConfig(SqlInstancesResetSslConfigRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/resetSslConfig"
};
}
// Restarts a Cloud SQL instance.
rpc Restart(SqlInstancesRestartRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/restart"
};
}
// Restores a backup of a Cloud SQL instance. Using this operation might cause
// your instance to restart.
rpc RestoreBackup(SqlInstancesRestoreBackupRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/restoreBackup"
body: "body"
};
}
// Rotates the server certificate to one signed by the Certificate Authority
// (CA) version previously added with the addServerCA method. For instances
// that have enabled Certificate Authority Service (CAS) based server CA,
// use RotateServerCertificate to rotate the server certificate.
rpc RotateServerCa(SqlInstancesRotateServerCaRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/rotateServerCa"
body: "body"
};
}
// Rotates the server certificate version to one previously added with the
// addServerCertificate method. For instances not using Certificate Authority
// Service (CAS) server CA, use RotateServerCa instead.
rpc RotateServerCertificate(SqlInstancesRotateServerCertificateRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/rotateServerCertificate"
body: "body"
};
}
// Rotates the Entra Id certificate version to one previously added with the
// addEntraIdCertificate method.
rpc RotateEntraIdCertificate(SqlInstancesRotateEntraIdCertificateRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/rotateEntraIdCertificate"
body: "body"
};
}
// Starts the replication in the read replica instance.
rpc StartReplica(SqlInstancesStartReplicaRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/startReplica"
};
}
// Stops the replication in the read replica instance.
rpc StopReplica(SqlInstancesStopReplicaRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/stopReplica"
};
}
// Truncate MySQL general and slow query log tables
// MySQL only.
rpc TruncateLog(SqlInstancesTruncateLogRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/truncateLog"
body: "body"
};
}
// Updates settings of a Cloud SQL instance. Using this operation might cause
// your instance to restart.
rpc Update(SqlInstancesUpdateRequest) returns (Operation) {
option (google.api.http) = {
put: "/sql/v1beta4/projects/{project}/instances/{instance}"
body: "body"
};
}
// Generates a short-lived X509 certificate containing the provided public key
// and signed by a private key specific to the target instance. Users may use
// the certificate to authenticate as themselves when connecting to the
// database.
rpc CreateEphemeral(SqlInstancesCreateEphemeralCertRequest)
returns (SslCert) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/createEphemeral"
body: "body"
};
}
// Reschedules the maintenance on the given instance.
rpc RescheduleMaintenance(SqlInstancesRescheduleMaintenanceRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/rescheduleMaintenance"
body: "body"
};
}
// Verify External primary instance external sync settings.
rpc VerifyExternalSyncSettings(SqlInstancesVerifyExternalSyncSettingsRequest)
returns (SqlInstancesVerifyExternalSyncSettingsResponse) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/verifyExternalSyncSettings"
body: "*"
};
}
// Start External primary instance migration.
rpc StartExternalSync(SqlInstancesStartExternalSyncRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/startExternalSync"
body: "*"
};
}
// Perform Disk Shrink on primary instance.
rpc PerformDiskShrink(SqlInstancesPerformDiskShrinkRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/performDiskShrink"
body: "body"
};
}
// Get Disk Shrink Config for a given instance.
rpc GetDiskShrinkConfig(SqlInstancesGetDiskShrinkConfigRequest)
returns (SqlInstancesGetDiskShrinkConfigResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/getDiskShrinkConfig"
};
}
// Reset Replica Size to primary instance disk size.
rpc ResetReplicaSize(SqlInstancesResetReplicaSizeRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/resetReplicaSize"
body: "*"
};
}
// Get Latest Recovery Time for a given instance.
rpc GetLatestRecoveryTime(SqlInstancesGetLatestRecoveryTimeRequest)
returns (SqlInstancesGetLatestRecoveryTimeResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/getLatestRecoveryTime"
};
}
// Execute SQL statements.
rpc ExecuteSql(SqlInstancesExecuteSqlRequest)
returns (SqlInstancesExecuteSqlResponse) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/executeSql"
body: "body"
};
}
// Acquire a lease for the setup of SQL Server Reporting Services (SSRS).
rpc AcquireSsrsLease(SqlInstancesAcquireSsrsLeaseRequest)
returns (SqlInstancesAcquireSsrsLeaseResponse) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/acquireSsrsLease"
body: "body"
};
}
// Release a lease for the setup of SQL Server Reporting Services (SSRS).
rpc ReleaseSsrsLease(SqlInstancesReleaseSsrsLeaseRequest)
returns (SqlInstancesReleaseSsrsLeaseResponse) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/releaseSsrsLease"
};
}
// Execute MVU Pre-checks
rpc PreCheckMajorVersionUpgrade(
SqlInstancesPreCheckMajorVersionUpgradeRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/preCheckMajorVersionUpgrade"
body: "body"
};
}
// Point in time restore for an instance managed by Google Cloud Backup and
// Disaster Recovery.
rpc PointInTimeRestore(SqlInstancesPointInTimeRestoreRequest)
returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/{parent=projects/*}:pointInTimeRestore"
body: "context"
};
}
}
service SqlOperationsService {
option (google.api.default_host) = "sqladmin.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/sqlservice.admin";
// Retrieves an instance operation that has been performed on an instance.
rpc Get(SqlOperationsGetRequest) returns (Operation) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/operations/{operation}"
};
}
// Lists all instance operations that have been performed on the given Cloud
// SQL instance in the reverse chronological order of the start time.
rpc List(SqlOperationsListRequest) returns (OperationsListResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/operations"
};
}
// Cancels an instance operation that has been performed on an instance.
// Ordinarily, this method name should be `CancelSqlOperation`.
rpc Cancel(SqlOperationsCancelRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/operations/{operation}/cancel"
};
}
}
service SqlSslCertsService {
option (google.api.default_host) = "sqladmin.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/sqlservice.admin";
// Deletes the SSL certificate. For First Generation instances, the
// certificate remains valid until the instance is restarted.
rpc Delete(SqlSslCertsDeleteRequest) returns (Operation) {
option (google.api.http) = {
delete: "/sql/v1beta4/projects/{project}/instances/{instance}/sslCerts/{sha1_fingerprint}"
};
}
// Retrieves a particular SSL certificate. Does not include the private key
// (required for usage). The private key must be saved from the response to
// initial creation.
rpc Get(SqlSslCertsGetRequest) returns (SslCert) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/sslCerts/{sha1_fingerprint}"
};
}
// Creates an SSL certificate and returns it along with the private key and
// server certificate authority. The new certificate will not be usable until
// the instance is restarted.
rpc Insert(SqlSslCertsInsertRequest) returns (SslCertsInsertResponse) {
option (google.api.http) = {
post: "/sql/v1beta4/projects/{project}/instances/{instance}/sslCerts"
body: "body"
};
}
// Lists all of the current SSL certificates for the instance.
rpc List(SqlSslCertsListRequest) returns (SslCertsListResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/projects/{project}/instances/{instance}/sslCerts"
};
}
}
service SqlBackupsService {
option (google.api.default_host) = "sqladmin.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/sqlservice.admin";
// Creates a backup for a Cloud SQL instance. This API can be used only to
// create on-demand backups.
rpc CreateBackup(CreateBackupRequest) returns (Operation) {
option (google.api.http) = {
post: "/sql/v1beta4/{parent=projects/*}/backups"
body: "backup"
};
option (google.api.method_signature) = "parent, backup";
}
// Retrieves a resource containing information about a backup.
rpc GetBackup(GetBackupRequest) returns (Backup) {
option (google.api.http) = {
get: "/sql/v1beta4/{name=projects/*/backups/*}"
};
option (google.api.method_signature) = "name";
}
// Lists all backups associated with the project.
rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) {
option (google.api.http) = {
get: "/sql/v1beta4/{parent=projects/*}/backups"
};
option (google.api.method_signature) = "parent";
}
// Updates the retention period and the description of the backup. You can use
// this API to update final backups only.
rpc UpdateBackup(UpdateBackupRequest) returns (Operation) {
option (google.api.http) = {
patch: "/sql/v1beta4/{backup.name=projects/*/backups/*}"
body: "backup"
};
option (google.api.method_signature) = "backup, update_mask";
}
// Deletes the backup.
rpc DeleteBackup(DeleteBackupRequest) returns (Operation) {
option (google.api.http) = {
delete: "/sql/v1beta4/{name=projects/*/backups/*}"
};
option (google.api.method_signature) = "name";
}
}
// The request payload to create the backup
message CreateBackupRequest {
// Required. The parent resource where this backup is created.
// Format: projects/{project}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "sqladmin.googleapis.com/Backup"
}
];
// Required. The Backup to create.
Backup backup = 2 [(google.api.field_behavior) = REQUIRED];
}
// The request payload to get the backup.
message GetBackupRequest {
// Required. The name of the backup to retrieve.
// Format: projects/{project}/backups/{backup}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = { type: "sqladmin.googleapis.com/Backup" }
];
}
// The request payload to list the backups.
message ListBackupsRequest {
// Required. The parent that owns this collection of backups.
// Format: projects/{project}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "sqladmin.googleapis.com/Backup"
}
];
// The maximum number of backups to return per response. The service might
// return fewer backups than this value. If a value for this parameter isn't
// specified, then, at most, 500 backups are returned. The maximum value is
// 2,000. Any values that you set, which are greater than 2,000, are changed
// to 2,000.
int32 page_size = 2;
// A page token, received from a previous `ListBackups` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListBackups` must match
// the call that provided the page token.
string page_token = 3;
// Multiple filter queries are separated by spaces. For example,
// 'instance:abc AND type:FINAL, 'location:us',
// 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by
// type, instance, backupInterval.startTime (creation time), or location.
string filter = 4;
}
// The response payload containing a list of the backups.
message ListBackupsResponse {
// A list of backups.
repeated Backup backups = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, then there aren't subsequent pages.
string next_page_token = 2;
// If a region isn't unavailable or if an unknown error occurs, then a warning
// message is returned.
repeated ApiWarning warnings = 3;
}
// The request payload to update the backup.
message UpdateBackupRequest {
// Required. The backup to update.
// The backups `name` field is used to identify the backup to update.
// Format: projects/{project}/backups/{backup}
Backup backup = 1 [(google.api.field_behavior) = REQUIRED];
// The list of fields that you can update. You can update only the description
// and retention period of the final backup.
google.protobuf.FieldMask update_mask = 2;
}
// The request payload to delete the backup.
message DeleteBackupRequest {
// Required. The name of the backup to delete.
// Format: projects/{project}/backups/{backup}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = { type: "sqladmin.googleapis.com/Backup" }
];
}
message SqlBackupRunsDeleteRequest {
// The ID of the backup run to delete. To find a backup run ID, use the
// [list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/backupRuns/list)
// method.
int64 id = 1;
// Cloud SQL instance ID. This does not include the project ID.
string instance = 2;
// Project ID of the project that contains the instance.
string project = 3;
}
message SqlBackupRunsGetRequest {
// The ID of this backup run.
int64 id = 1;
// Cloud SQL instance ID. This does not include the project ID.
string instance = 2;
// Project ID of the project that contains the instance.
string project = 3;
}
message SqlBackupRunsInsertRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
BackupRun body = 100;
}
message SqlBackupRunsListRequest {
// Cloud SQL instance ID, or "-" for all instances. This does not include
// the project ID.
string instance = 1;
// Maximum number of backup runs per response.
int32 max_results = 2;
// A previously-returned page token representing part of the larger set of
// results to view.
string page_token = 3;
// Project ID of the project that contains the instance.
string project = 4;
}
message SqlDatabasesDeleteRequest {
// Name of the database to be deleted in the instance.
string database = 1;
// Database instance ID. This does not include the project ID.
string instance = 2;
// Project ID of the project that contains the instance.
string project = 3;
}
message SqlDatabasesGetRequest {
// Name of the database in the instance.
string database = 1;
// Database instance ID. This does not include the project ID.
string instance = 2;
// Project ID of the project that contains the instance.
string project = 3;
}
message SqlDatabasesInsertRequest {
// Database instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
Database body = 100;
}
message SqlDatabasesListRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
}
message SqlDatabasesUpdateRequest {
// Name of the database to be updated in the instance.
string database = 1;
// Database instance ID. This does not include the project ID.
string instance = 2;
// Project ID of the project that contains the instance.
string project = 3;
Database body = 100;
}
message SqlFlagsListRequest {
// Database type and version you want to retrieve flags for. By default, this
// method returns flags for all database types and versions.
string database_version = 1;
// Optional. Specify the scope of flags to be returned by SqlFlagsListService.
// Return list of database flags if unspecified.
optional SqlFlagScope flag_scope = 3 [(google.api.field_behavior) = OPTIONAL];
}
message SqlInstancesAddServerCaRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
}
// Request for AddServerCertificate RPC.
message SqlInstancesAddServerCertificateRequest {
// Required. Cloud SQL instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request for AddEntraIdCertificate RPC.
message SqlInstancesAddEntraIdCertificateRequest {
// Required. Cloud SQL instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
}
message SqlInstancesCloneRequest {
// The ID of the Cloud SQL instance to be cloned (source). This does not
// include the project ID.
string instance = 1;
// Project ID of the source Cloud SQL instance.
string project = 2;
InstancesCloneRequest body = 100;
}
message SqlInstancesDeleteRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance to be deleted.
string project = 2;
// Flag to opt-in for final backup. By default, it is turned off.
optional bool enable_final_backup = 7;
oneof expiration {
// Optional. Retention period of the final backup.
int64 final_backup_ttl_days = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Final Backup expiration time.
// Timestamp in UTC of when this resource is considered expired.
google.protobuf.Timestamp final_backup_expiry_time = 6
[(google.api.field_behavior) = OPTIONAL];
}
// Optional. The description of the final backup.
string final_backup_description = 5 [(google.api.field_behavior) = OPTIONAL];
}
message SqlInstancesDemoteMasterRequest {
// Cloud SQL instance name.
string instance = 1;
// ID of the project that contains the instance.
string project = 2;
InstancesDemoteMasterRequest body = 100;
}
// Instance demote request.
message SqlInstancesDemoteRequest {
// Required. The name of the Cloud SQL instance.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
// The request body.
InstancesDemoteRequest body = 100;
}
message SqlInstancesExportRequest {
// The Cloud SQL instance ID. This doesn't include the project ID.
string instance = 1;
// Project ID of the project that contains the instance to be exported.
string project = 2;
InstancesExportRequest body = 100;
}
message SqlInstancesFailoverRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// ID of the project that contains the read replica.
string project = 2;
InstancesFailoverRequest body = 100;
}
message SqlInstancesGetRequest {
// Database instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
}
message SqlInstancesImportRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
InstancesImportRequest body = 100;
}
message SqlInstancesInsertRequest {
// Project ID of the project to which the newly created Cloud SQL instances
// should belong.
string project = 1;
DatabaseInstance body = 100;
}
message SqlInstancesListRequest {
// A filter expression that filters resources listed in the response.
// The expression is in the form of field:value. For example,
// 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per
// their JSON representation, such as 'settings.userLabels.auto_start:true'.
//
// Multiple filter queries are space-separated. For example.
// 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each
// expression is an AND expression. However, you can include AND and OR
// expressions explicitly.
string filter = 1;
// The maximum number of instances to return. The service may return fewer
// than this value.
// If unspecified, at most 500 instances are returned.
// The maximum value is 1000; values above 1000 are coerced to 1000.
uint32 max_results = 2;
// A previously-returned page token representing part of the larger set of
// results to view.
string page_token = 3;
// Project ID of the project for which to list Cloud SQL instances.
string project = 4;
}
message SqlInstancesListServerCasRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
}
message SqlInstancesListServerCertificatesRequest {
// Required. Cloud SQL instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for SqlInstancesService.ListEntraIdCertificates.
message SqlInstancesListEntraIdCertificatesRequest {
// Required. Cloud SQL instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
}
message SqlInstancesPatchRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Optional. Set PSC config to the same value as the existing config to
// reconcile the PSC networking.
optional bool reconcile_psc_networking = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. Set PSC config to the same value as the existing config and force
// reconcile the PSC networking.
optional bool reconcile_psc_networking_force = 5
[(google.api.field_behavior) = OPTIONAL];
DatabaseInstance body = 100;
}
message SqlInstancesPromoteReplicaRequest {
// Cloud SQL read replica instance name.
string instance = 1;
// ID of the project that contains the read replica.
string project = 2;
// Set to true to invoke a replica failover to the DR replica.
// As part of replica failover, the promote operation attempts
// to add the original primary instance as a replica of the promoted
// DR replica when the original primary instance comes back online.
// If set to false or not specified, then the original primary
// instance becomes an independent Cloud SQL primary instance.
bool failover = 3;
}
// Instance switchover request.
message SqlInstancesSwitchoverRequest {
// Cloud SQL read replica instance name.
string instance = 1;
// ID of the project that contains the replica.
string project = 2;
// Optional. (MySQL and PostgreSQL only) Cloud SQL instance operations
// timeout, which is a sum of all database operations. Default value is 10
// minutes and can be modified to a maximum value of 24 hours.
google.protobuf.Duration db_timeout = 3
[(google.api.field_behavior) = OPTIONAL];
}
message SqlInstancesResetSslConfigRequest {
// Reset SSL mode to selectively refresh the SSL materials.
enum ResetSslMode {
// Reset SSL mode is not specified.
RESET_SSL_MODE_UNSPECIFIED = 0;
// Refresh all TLS configs. This is the default behaviour.
ALL = 1;
// Refreshes the replication-related TLS configuration settings provided by
// the primary instance.
// Not applicable to on-premises replication instances.
SYNC_FROM_PRIMARY = 2;
}
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Optional. Reset SSL mode to use.
ResetSslMode mode = 3 [(google.api.field_behavior) = OPTIONAL];
}
message SqlInstancesRestartRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance to be restarted.
string project = 2;
}
message SqlInstancesRestoreBackupRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
InstancesRestoreBackupRequest body = 100;
}
message SqlInstancesRotateServerCaRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
InstancesRotateServerCaRequest body = 100;
}
message SqlInstancesRotateServerCertificateRequest {
// Required. Cloud SQL instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Rotate server certificate request body.
InstancesRotateServerCertificateRequest body = 100
[(google.api.field_behavior) = REQUIRED];
}
// Request message for SqlInstancesService.RotateEntraIdCertificate.
message SqlInstancesRotateEntraIdCertificateRequest {
// Required. Cloud SQL instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Rotate Entra ID certificate request body.
InstancesRotateEntraIdCertificateRequest body = 100
[(google.api.field_behavior) = REQUIRED];
}
message SqlInstancesStartReplicaRequest {
// Cloud SQL read replica instance name.
string instance = 1;
// ID of the project that contains the read replica.
string project = 2;
}
message SqlInstancesStopReplicaRequest {
// Cloud SQL read replica instance name.
string instance = 1;
// ID of the project that contains the read replica.
string project = 2;
}
message SqlInstancesTruncateLogRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the Cloud SQL project.
string project = 2;
InstancesTruncateLogRequest body = 100;
}
message SqlInstancesUpdateRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
DatabaseInstance body = 100;
}
// Instance reencrypt request.
message SqlInstancesReencryptRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// ID of the project that contains the instance.
string project = 2;
// Reencrypt body that users request
InstancesReencryptRequest body = 3;
}
// Database Instance reencrypt request.
message InstancesReencryptRequest {
// Configuration specific to backup re-encryption
optional BackupReencryptionConfig backup_reencryption_config = 1;
}
// Backup Reencryption Config
message BackupReencryptionConfig {
// Backup type for re-encryption
enum BackupType {
// Unknown backup type, will be defaulted to AUTOMATIC backup type
BACKUP_TYPE_UNSPECIFIED = 0;
// Reencrypt automatic backups
AUTOMATED = 1;
// Reencrypt on-demand backups
ON_DEMAND = 2;
}
// Backup re-encryption limit
optional int32 backup_limit = 1;
// Type of backups users want to re-encrypt.
optional BackupType backup_type = 2;
}
message SqlInstancesRescheduleMaintenanceRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// ID of the project that contains the instance.
string project = 2;
SqlInstancesRescheduleMaintenanceRequestBody body = 100;
}
// Instance perform disk shrink request.
message SqlInstancesPerformDiskShrinkRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Perform disk shrink context.
PerformDiskShrinkContext body = 100;
}
// External Sync parallel level.
enum ExternalSyncParallelLevel {
// Unknown sync parallel level. Will be defaulted to OPTIMAL.
EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED = 0;
// Minimal parallel level.
MIN = 1;
// Optimal parallel level.
OPTIMAL = 2;
// Maximum parallel level.
MAX = 3;
}
// The selected object that Cloud SQL migrates.
message ExternalSyncSelectedObject {
// The name of the database that Cloud SQL migrates.
string database = 1;
}
message SqlInstancesVerifyExternalSyncSettingsRequest {
enum ExternalSyncMode {
// Unknown external sync mode, will be defaulted to ONLINE mode
EXTERNAL_SYNC_MODE_UNSPECIFIED = 0;
// Online external sync will set up replication after initial data external
// sync
ONLINE = 1;
// Offline external sync only dumps and loads a one-time snapshot of
// the primary instance's data
OFFLINE = 2;
}
// MigrationType determines whether the migration is a physical file-based
// migration or a logical dump file-based migration.
enum MigrationType {
// Default value is a logical dump file-based migration
MIGRATION_TYPE_UNSPECIFIED = 0;
// Logical dump file-based migration
LOGICAL = 1;
// Physical file-based migration
PHYSICAL = 2;
}
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Flag to enable verifying connection only
bool verify_connection_only = 3;
// External sync mode
ExternalSyncMode sync_mode = 4;
// Optional. Flag to verify settings required by replication setup only
bool verify_replication_only = 5 [(google.api.field_behavior) = OPTIONAL];
oneof sync_config {
// Optional. MySQL-specific settings for start external sync.
MySqlSyncConfig mysql_sync_config = 6
[(google.api.field_behavior) = OPTIONAL];
}
// Optional. MigrationType configures the migration to use physical files or
// logical dump files. If not set, then the logical dump file configuration is
// used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
MigrationType migration_type = 7 [(google.api.field_behavior) = OPTIONAL];
// Optional. Parallel level for initial data sync. Only applicable for
// PostgreSQL.
ExternalSyncParallelLevel sync_parallel_level = 8
[(google.api.field_behavior) = OPTIONAL];
// Optional. Migrate only the specified objects from the source instance. If
// this field is empty, then migrate all objects.
repeated ExternalSyncSelectedObject selected_objects = 9
[(google.api.field_behavior) = OPTIONAL];
}
message SqlInstancesStartExternalSyncRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// ID of the project that contains the instance.
string project = 2;
// External sync mode.
SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode sync_mode = 3;
// Whether to skip the verification step (VESS).
bool skip_verification = 4;
oneof sync_config {
// MySQL-specific settings for start external sync.
MySqlSyncConfig mysql_sync_config = 6;
}
// Optional. Parallel level for initial data sync. Currently only applicable
// for MySQL.
ExternalSyncParallelLevel sync_parallel_level = 7
[(google.api.field_behavior) = OPTIONAL];
// Optional. MigrationType configures the migration to use physical files or
// logical dump files. If not set, then the logical dump file configuration is
// used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL.
SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType migration_type = 8
[(google.api.field_behavior) = OPTIONAL];
// Optional. MySQL only. True if end-user has confirmed that this SES call
// will wipe replica databases overlapping with the proposed selected_objects.
// If this field is not set and there are both overlapping and additional
// databases proposed, an error will be returned.
bool replica_overwrite_enabled = 9 [(google.api.field_behavior) = OPTIONAL];
}
// Instance reset replica size request.
message SqlInstancesResetReplicaSizeRequest {
// Cloud SQL read replica instance name.
string instance = 1;
// ID of the project that contains the read replica.
string project = 2;
}
message SqlOperationsGetRequest {
// Instance operation ID.
string operation = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Optional. Region of the Cloud SQL instance.
string location = 4 [(google.api.field_behavior) = OPTIONAL];
}
message SqlOperationsListRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Maximum number of operations per response.
uint32 max_results = 2;
// A previously-returned page token representing part of the larger set of
// results to view.
string page_token = 3;
// Project ID of the project that contains the instance.
string project = 4;
// Optional. Region of the Cloud SQL instance.
string location = 6 [(google.api.field_behavior) = OPTIONAL];
}
// The request payload to cancel an operation.
message SqlOperationsCancelRequest {
// Instance operation ID.
string operation = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Optional. Region of the Cloud SQL instance.
string location = 3 [(google.api.field_behavior) = OPTIONAL];
}
message SqlInstancesCreateEphemeralCertRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the Cloud SQL project.
string project = 2;
SslCertsCreateEphemeralRequest body = 100;
}
message SqlSslCertsDeleteRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Sha1 FingerPrint.
string sha1_fingerprint = 3;
}
message SqlSslCertsGetRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
// Sha1 FingerPrint.
string sha1_fingerprint = 3;
}
message SqlSslCertsInsertRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
SslCertsInsertRequest body = 100;
}
message SqlSslCertsListRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
}
// Instance get disk shrink config request.
message SqlInstancesGetDiskShrinkConfigRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
}
// Instance get latest recovery time request.
message SqlInstancesGetLatestRecoveryTimeRequest {
// Cloud SQL instance ID. This does not include the project ID.
string instance = 1;
// Project ID of the project that contains the instance.
string project = 2;
// The timestamp used to identify the time when the source instance is
// deleted. If this instance is deleted, then you must set the timestamp.
optional google.protobuf.Timestamp source_instance_deletion_time = 3;
}
// Instance get latest recovery time response.
message SqlInstancesGetLatestRecoveryTimeResponse {
// This is always `sql#getLatestRecoveryTime`.
string kind = 1;
// Timestamp, identifies the latest recovery time of the source instance.
google.protobuf.Timestamp latest_recovery_time = 2;
// Timestamp, identifies the earliest recovery time of the source instance.
google.protobuf.Timestamp earliest_recovery_time = 3;
}
// Execute SQL statements request.
message SqlInstancesExecuteSqlRequest {
// Required. Database instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
// The request body.
ExecuteSqlPayload body = 100;
}
// Request to release a lease for SSRS.
message SqlInstancesReleaseSsrsLeaseRequest {
// Required. The Cloud SQL instance ID. This doesn't include the project ID.
// It's composed of lowercase letters, numbers, and hyphens, and it must start
// with a letter. The total length must be 98 characters or less (Example:
// instance-id).
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The ID of the project that contains the instance (Example:
// project-id).
string project = 2 [(google.api.field_behavior) = REQUIRED];
}
// The response for the release of the SSRS lease.
message SqlInstancesReleaseSsrsLeaseResponse {
// The operation ID.
string operation_id = 1;
}
// The request payload used to execute SQL statements.
message ExecuteSqlPayload {
// Controls how the API should respond when the SQL execution result exceeds
// 10 MB.
enum PartialResultMode {
// Unspecified mode, effectively the same as `FAIL_PARTIAL_RESULT`.
PARTIAL_RESULT_MODE_UNSPECIFIED = 0;
// Throw an error if the result exceeds 10 MB or if only a partial result
// can be retrieved. Don't return the result.
FAIL_PARTIAL_RESULT = 1;
// Return a truncated result and set `partial_result` to true if the result
// exceeds 10 MB or if only a partial result can be retrieved due to error.
// Don't throw an error.
ALLOW_PARTIAL_RESULT = 2;
}
// Optional. The name of an existing database user to connect to the database.
// When `auto_iam_authn` is set to true, this field is ignored and the API
// caller's IAM user is used.
string user = 1 [(google.api.field_behavior) = OPTIONAL];
// Required. SQL statements to run on the database. It can be a single
// statement or a sequence of statements separated by semicolons.
string sql_statement = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. Name of the database on which the statement will be executed.
string database = 3 [(google.api.field_behavior) = OPTIONAL];
// Credentials for the database connection.
oneof user_password {
// Optional. The resource name of the Secret Manager secret holding the
// password for the user to log into the database. The secret should be
// created using the regional endpoint (for API) or from the Regional
// Secrets page (for UI), and stored in the same region as the Cloud SQL
// instance. The expected resource name format is
// `projects/{project}/locations/{location}/secrets/{secret}/versions/{secret_version}`.
// This field is used together with the `user` field.
// The secret resource name will not be stored.
string password_secret_version = 5 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "secretmanager.googleapis.com/SecretVersion"
}
];
// Optional. When set to true, the API caller identity associated with the
// request is used for database authentication. The API caller must be an
// IAM user in the database.
bool auto_iam_authn = 11 [(google.api.field_behavior) = OPTIONAL];
}
// Optional. The maximum number of rows returned per SQL statement.
int64 row_limit = 10 [(google.api.field_behavior) = OPTIONAL];
// Optional. Controls how the API should respond when the SQL execution result
// is incomplete due to the size limit or another error. The default mode is
// to throw an error.
PartialResultMode partial_result_mode = 13
[(google.api.field_behavior) = OPTIONAL];
// Optional. Specifies the name of the application that is making the request.
// This field is used for telemetry. Only alphanumeric characters, dashes, and
// underscores are allowed. The maximum length is 32 characters.
string application = 16 [(google.api.field_behavior) = OPTIONAL];
}
// Execute SQL statements response.
message SqlInstancesExecuteSqlResponse {
// Represents a notice or warning message from the database.
message Message {
// The full message string.
// For PostgreSQL, this is a formatted string that may include severity,
// code, and the notice/warning message.
// For MySQL, this contains the warning message.
optional string message = 1;
// The severity of the message (e.g., "NOTICE" for PostgreSQL, "WARNING" for
// MySQL).
optional string severity = 2;
}
// A list of notices and warnings generated during query execution.
// For PostgreSQL, this includes all notices and warnings.
// For MySQL, this includes warnings generated by the last executed statement.
// To retrieve all warnings for a multi-statement query, `SHOW WARNINGS` must
// be executed after each statement.
repeated Message messages = 9;
// The additional metadata information regarding the execution of the SQL
// statements.
Metadata metadata = 6;
// The list of results after executing all the SQL statements.
repeated QueryResult results = 7;
// Contains the error from the database if the SQL execution failed.
google.rpc.Status status = 8;
}
// QueryResult contains the result of executing a single SQL statement.
message QueryResult {
// List of columns included in the result. This also includes the data type
// of the column.
repeated Column columns = 1;
// Rows returned by the SQL statement.
repeated Row rows = 2;
// Message related to the SQL execution result.
string message = 3;
// Set to true if the SQL execution's result is truncated due to size limits
// or an error retrieving results.
bool partial_result = 4;
// If results were truncated due to an error, details of that error.
google.rpc.Status status = 8;
}
// Contains the name and datatype of a column.
message Column {
// Name of the column.
string name = 1;
// Datatype of the column.
string type = 2;
}
// Contains the values for a row.
message Row {
// The values for the row.
repeated Value values = 1;
}
// The cell value of the table.
message Value {
// The cell value represented in string format.
string value = 1;
// If cell value is null, then this flag will be set to true.
bool null_value = 2;
}
// The additional metadata information regarding the execution of the SQL
// statements.
message Metadata {
// The time taken to execute the SQL statements.
google.protobuf.Duration sql_statement_execution_time = 1;
}
// Request to acquire a lease for SSRS.
message SqlInstancesAcquireSsrsLeaseRequest {
// Required. Cloud SQL instance ID. This doesn't include the project ID. It's
// composed of lowercase letters, numbers, and hyphens, and it must start with
// a letter. The total length must be 98 characters or less (Example:
// instance-id).
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. ID of the project that contains the instance (Example:
// project-id).
string project = 2 [(google.api.field_behavior) = REQUIRED];
// The body for request to acquire an SSRS lease.
InstancesAcquireSsrsLeaseRequest body = 100;
}
// Request for Pre-checks for MVU
message SqlInstancesPreCheckMajorVersionUpgradeRequest {
// Required. Cloud SQL instance ID. This does not include the project ID.
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Project ID of the project that contains the instance.
string project = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The context for request to perform the pre-check major version
// upgrade operation.
InstancesPreCheckMajorVersionUpgradeRequest body = 3
[(google.api.field_behavior) = REQUIRED];
}
// Acquire SSRS lease response.
message SqlInstancesAcquireSsrsLeaseResponse {
// The unique identifier for this operation.
optional string operation_id = 1;
}
// Request to perform a point in time restore on a Google Cloud Backup and
// Disaster Recovery managed instance.
message SqlInstancesPointInTimeRestoreRequest {
// Required. The parent resource where you created this instance.
// Format: projects/{project}
string parent = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The context for request to perform a PITR on a Google Cloud
// Backup and Disaster Recovery managed instance.
PointInTimeRestoreContext context = 100
[(google.api.field_behavior) = REQUIRED];
}