// Copyright 2021 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.v1;
import "google/api/field_behavior.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "cloud.google.com/go/sql/apiv1/sqlpb;sqlpb";
option java_multiple_files = true;
option java_outer_classname = "CloudSqlResourcesProto";
option java_package = "com.google.cloud.sql.v1";
// LINT: LEGACY_NAMES
// An entry for an Access Control list.
message AclEntry {
// The allowlisted value for the access control list.
string value = 1;
// The time when this access control entry expires in
// [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example
// **2012-11-15T16:19:00.094Z**.
google.protobuf.Timestamp expiration_time = 2;
// Optional. A label to identify this entry.
string name = 3 [(google.api.field_behavior) = OPTIONAL];
// This is always **sql#aclEntry**.
string kind = 4;
}
// An Admin API warning message.
message ApiWarning {
enum SqlApiWarningCode {
// An unknown or unset warning type from Cloud SQL API.
SQL_API_WARNING_CODE_UNSPECIFIED = 0;
// Warning when one or more regions are not reachable. The returned result
// set may be incomplete.
REGION_UNREACHABLE = 1;
}
// Code to uniquely identify the warning type.
SqlApiWarningCode code = 1;
// The warning message.
string message = 2;
// The region name for REGION_UNREACHABLE warning.
string region = 3;
}
// We currently only support backup retention by specifying the number
// of backups we will retain.
message BackupRetentionSettings {
// The units that retained_backups specifies, we only support COUNT.
enum RetentionUnit {
// Backup retention unit is unspecified, will be treated as COUNT.
RETENTION_UNIT_UNSPECIFIED = 0;
// Retention will be by count, eg. "retain the most recent 7 backups".
COUNT = 1;
}
// The unit that 'retained_backups' represents.
RetentionUnit retention_unit = 1;
// Depending on the value of retention_unit, this is used to determine
// if a backup needs to be deleted. If retention_unit is 'COUNT', we will
// retain this many backups.
google.protobuf.Int32Value retained_backups = 2;
}
// Database instance backup configuration.
message BackupConfiguration {
// Start time for the daily backup configuration in UTC timezone in the 24
// hour format - **HH:MM**.
string start_time = 1;
// Whether this configuration is enabled.
google.protobuf.BoolValue enabled = 2;
// This is always **sql#backupConfiguration**.
string kind = 3;
// (MySQL only) Whether binary log is enabled. If backup configuration is
// disabled, binarylog must be disabled as well.
google.protobuf.BoolValue binary_log_enabled = 4;
// Reserved for future use.
google.protobuf.BoolValue replication_log_archiving_enabled = 5;
// Location of the backup
string location = 6;
// (Postgres only) Whether point in time recovery is enabled.
google.protobuf.BoolValue point_in_time_recovery_enabled = 7;
// Backup retention settings.
BackupRetentionSettings backup_retention_settings = 8;
// The number of days of transaction logs we retain for point in time
// restore, from 1-7.
google.protobuf.Int32Value transaction_log_retention_days = 9;
}
// Backup context.
message BackupContext {
// The identifier of the backup.
int64 backup_id = 1;
// This is always **sql#backupContext**.
string kind = 2;
}
// Represents a SQL database on the Cloud SQL instance.
message Database {
// This is always **sql#database**.
string kind = 1;
// The Cloud SQL charset value.
string charset = 2;
// The Cloud SQL collation value.
string collation = 3;
// This field is deprecated and will be removed from a future version of the
// API.
string etag = 4;
// The name of the database in the Cloud SQL instance. This does not include
// the project ID or instance name.
string name = 5;
// The name of the Cloud SQL instance. This does not include the project ID.
string instance = 6;
// The URI of this resource.
string self_link = 7;
// The project ID of the project containing the Cloud SQL database. The Google
// apps domain is prefixed if applicable.
string project = 8;
oneof database_details {
SqlServerDatabaseDetails sqlserver_database_details = 9;
}
}
// Represents a Sql Server database on the Cloud SQL instance.
message SqlServerDatabaseDetails {
// The version of SQL Server with which the database is to be made compatible
int32 compatibility_level = 1;
// The recovery model of a SQL Server database
string recovery_model = 2;
}
// Database flags for Cloud SQL instances.
message DatabaseFlags {
// The name of the flag. These flags are passed at instance startup, so
// include both server options and system variables. Flags are
// specified with underscores, not hyphens. For more information, see
// [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags)
// in the Cloud SQL documentation.
string name = 1;
// The value of the flag. Booleans are set to **on** for true
// and **off** for false. This field must be omitted if the flag
// doesn't take a value.
string value = 2;
}
// MySQL-specific external server sync settings.
message MySqlSyncConfig {
// Flags to use for the initial dump.
repeated SyncFlags initial_sync_flags = 1;
}
// Initial sync flags for certain Cloud SQL APIs.
// Currently used for the MySQL external server initial dump.
message SyncFlags {
// The name of the flag.
string name = 1;
// The value of the flag. This field must be omitted if the flag
// doesn't take a value.
string value = 2;
}
// Reference to another Cloud SQL instance.
message InstanceReference {
// The name of the Cloud SQL instance being referenced.
// This does not include the project ID.
string name = 1;
// The region of the Cloud SQL instance being referenced.
string region = 2;
// The project ID of the Cloud SQL instance being referenced.
// The default is the same project ID as the instance references it.
string project = 3;
}
// Read-replica configuration for connecting to the on-premises primary
// instance.
message DemoteMasterConfiguration {
// This is always **sql#demoteMasterConfiguration**.
string kind = 1;
// MySQL specific configuration when replicating from a MySQL on-premises
// primary instance. Replication configuration information such as the
// username, password, certificates, and keys are not stored in the instance
// metadata. The configuration information is used only to set up the
// replication connection and is stored by MySQL in a file named
// **master.info** in the data directory.
DemoteMasterMySqlReplicaConfiguration mysql_replica_configuration = 2;
}
// Read-replica configuration specific to MySQL databases.
message DemoteMasterMySqlReplicaConfiguration {
// This is always **sql#demoteMasterMysqlReplicaConfiguration**.
string kind = 1;
// The username for the replication connection.
string username = 2;
// The password for the replication connection.
string password = 3;
// PEM representation of the replica's private key. The corresponsing public
// key is encoded in the client's certificate. The format of the replica's
// private key can be either PKCS #1 or PKCS #8.
string client_key = 4;
// PEM representation of the replica's x509 certificate.
string client_certificate = 5;
// PEM representation of the trusted CA's x509 certificate.
string ca_certificate = 6;
}
// Database instance export context.
message ExportContext {
message SqlCsvExportOptions {
// The select query used to extract the data.
string select_query = 1;
// Specifies the character that should appear before a data character that
// needs to be escaped.
string escape_character = 2;
// Specifies the quoting character to be used when a data value is quoted.
string quote_character = 3;
// Specifies the character that separates columns within each row (line) of
// the file.
string fields_terminated_by = 4;
// This is used to separate lines. If a line does not contain all fields,
// the rest of the columns are set to their default values.
string lines_terminated_by = 6;
}
message SqlExportOptions {
// Options for exporting from MySQL.
message MysqlExportOptions {
// Option to include SQL statement required to set up replication.
// * If set to **1**, the dump file includes
// a CHANGE MASTER TO statement with the binary log coordinates,
// and --set-gtid-purged is set to ON.
// * If set to **2**, the CHANGE MASTER TO statement is written as
// a SQL comment and has no effect.
// * If set to any value other than **1**, --set-gtid-purged is set
// to OFF.
google.protobuf.Int32Value master_data = 1;
}
// 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.
repeated string tables = 1;
// Export only schemas.
google.protobuf.BoolValue schema_only = 2;
MysqlExportOptions mysql_export_options = 3;
}
// The path to the file in Google Cloud Storage where the export will be
// stored. The URI is in the form **gs://bucketName/fileName**. If the file
// already exists, the request succeeds, but the operation fails. If
// **fileType** is **SQL** and the filename ends with .gz,
// the contents are compressed.
string uri = 1;
// 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:** You must specify one database to be exported.
// If **fileType** is **CSV**, this database must match the one specified in
// the **csvExportOptions.selectQuery** property.
// * **SQL Server instances:** You must specify one database to be exported,
// and the **fileType** must be **BAK**.
repeated string databases = 2;
// This is always **sql#exportContext**.
string kind = 3;
// Options for exporting data as SQL statements.
SqlExportOptions sql_export_options = 4;
// Options for exporting data as CSV. **MySQL** and **PostgreSQL**
// instances only.
SqlCsvExportOptions csv_export_options = 5;
// The file type for the specified uri.
// * **SQL**: The file contains SQL statements.
// * **CSV**: The file contains CSV data.
// * **BAK**: The file contains backup data for a SQL Server instance.
SqlFileType file_type = 6;
// Option for export offload.
google.protobuf.BoolValue offload = 8;
}
// Database instance import context.
message ImportContext {
message SqlCsvImportOptions {
// The table to which CSV data is imported.
string table = 1;
// The columns to which CSV data is imported. If not specified, all columns
// of the database table are loaded with CSV data.
repeated string columns = 2;
// Specifies the character that should appear before a data character that
// needs to be escaped.
string escape_character = 4;
// Specifies the quoting character to be used when a data value is quoted.
string quote_character = 5;
// Specifies the character that separates columns within each row (line) of
// the file.
string fields_terminated_by = 6;
// This is used to separate lines. If a line does not contain all fields,
// the rest of the columns are set to their default values.
string lines_terminated_by = 8;
}
message SqlBakImportOptions {
message EncryptionOptions {
// Path to the Certificate (.cer) in Cloud Storage, in the form
// **gs://bucketName/fileName**. The instance must have
// write permissions to the bucket and read access to the file.
string cert_path = 1;
// Path to the Certificate Private Key (.pvk) in Cloud Storage, in the
// form **gs://bucketName/fileName**. The instance must have
// write permissions to the bucket and read access to the file.
string pvk_path = 2;
// Password that encrypts the private key
string pvk_password = 3;
}
EncryptionOptions encryption_options = 1;
}
// 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.
string uri = 1;
// 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.
string database = 2;
// This is always **sql#importContext**.
string kind = 3;
// The file type for the specified uri.
**SQL**: The file
// contains SQL statements.
**CSV**: The file contains CSV data.
SqlFileType file_type = 4;
// Options for importing data as CSV.
SqlCsvImportOptions csv_import_options = 5;
// The PostgreSQL user for this import operation. PostgreSQL instances only.
string import_user = 6;
// Import parameters specific to SQL Server .BAK files
SqlBakImportOptions bak_import_options = 7;
}
enum SqlFileType {
// Unknown file type.
SQL_FILE_TYPE_UNSPECIFIED = 0;
// File containing SQL statements.
SQL = 1;
// File in CSV format.
CSV = 2;
BAK = 4;
}
// IP Management configuration.
message IpConfiguration {
// Whether the instance is assigned a public IP address or not.
google.protobuf.BoolValue ipv4_enabled = 1;
// The resource link for the VPC network from which the Cloud SQL instance is
// accessible for private IP. For example,
// **/projects/myProject/global/networks/default**. This setting can
// be updated, but it cannot be removed after it is set.
string private_network = 2;
// Whether SSL connections over IP are enforced or not.
google.protobuf.BoolValue require_ssl = 3;
// The list of external networks that are allowed to connect to the instance
// using the IP. In 'CIDR' notation, also known as 'slash' notation (for
// example: **192.168.100.0/24**).
repeated AclEntry authorized_networks = 4;
// The name of the allocated ip range for the private ip CloudSQL instance.
// For example: "google-managed-services-default". If set, the instance ip
// will be created in the allocated range. The range name must comply with
// [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name
// must be 1-63 characters long and match the regular expression
// `[a-z]([-a-z0-9]*[a-z0-9])?.`
// Reserved for future use.
string allocated_ip_range = 6;
}
// Preferred location. This specifies where a Cloud SQL instance is located.
// Note that if the preferred location is not available, the instance will be
// located as close as possible within the region. Only one location may be
// specified.
message LocationPreference {
// The App Engine application to follow, it must be in the same region as the
// Cloud SQL instance.
string follow_gae_application = 1 [deprecated = true];
// The preferred Compute Engine zone (for example: us-central1-a,
// us-central1-b, etc.).
string zone = 2;
// The preferred Compute Engine zone for the secondary/failover
// (for example: us-central1-a, us-central1-b, etc.).
// Reserved for future use.
string secondary_zone = 4;
// This is always **sql#locationPreference**.
string kind = 3;
}
// Maintenance window. This specifies when a Cloud SQL instance is
// restarted for system maintenance purposes.
message MaintenanceWindow {
// hour of day - 0 to 23.
google.protobuf.Int32Value hour = 1;
// day of week (1-7), starting on Monday.
google.protobuf.Int32Value day = 2;
// Maintenance timing setting: **canary** (Earlier) or **stable** (Later).
// [Learn
// more](https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen).
SqlUpdateTrack update_track = 3;
// This is always **sql#maintenanceWindow**.
string kind = 4;
}
// Deny maintenance Periods. This specifies a date range during when all CSA
// rollout will be denied.
message DenyMaintenancePeriod {
// "deny maintenance period" start date. If the year of the start date is
// empty, the year of the end date also must be empty. In this case, it means
// the deny maintenance period recurs every year. The date is in format
// yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
string start_date = 1;
// "deny maintenance period" end date. If the year of the end date is empty,
// the year of the start date also must be empty. In this case, it means the
// no maintenance interval recurs every year. The date is in format yyyy-mm-dd
// i.e., 2020-11-01, or mm-dd, i.e., 11-01
string end_date = 2;
// Time in UTC when the "deny maintenance period" starts on start_date and
// ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
string time = 3;
}
// Insights configuration. This specifies when Cloud SQL Insights feature is
// enabled and optional configuration.
message InsightsConfig {
// Whether Query Insights feature is enabled.
bool query_insights_enabled = 1;
// Whether Query Insights will record client address when enabled.
bool record_client_address = 2;
// Whether Query Insights will record application tags from query when
// enabled.
bool record_application_tags = 3;
// Maximum query length stored in bytes. Default value: 1024 bytes.
// Range: 256-4500 bytes. Query length more than this field value will be
// truncated to this value. When unset, query length will be the default
// value. Changing query length will restart the database.
google.protobuf.Int32Value query_string_length = 4;
// Number of query execution plans captured by Insights per minute
// for all queries combined. Default is 5.
google.protobuf.Int32Value query_plans_per_minute = 5;
}
// Read-replica configuration specific to MySQL databases.
message MySqlReplicaConfiguration {
// Path to a SQL dump file in Google Cloud Storage from which the replica
// instance is to be created. The URI is in the form gs://bucketName/fileName.
// Compressed gzip files (.gz) are also supported.
// Dumps have the binlog co-ordinates from which replication
// begins. This can be accomplished by setting --master-data to 1 when using
// mysqldump.
string dump_file_path = 1;
// The username for the replication connection.
string username = 2;
// The password for the replication connection.
string password = 3;
// Seconds to wait between connect retries. MySQL's default is 60 seconds.
google.protobuf.Int32Value connect_retry_interval = 4;
// Interval in milliseconds between replication heartbeats.
google.protobuf.Int64Value master_heartbeat_period = 5;
// PEM representation of the trusted CA's x509 certificate.
string ca_certificate = 6;
// PEM representation of the replica's x509 certificate.
string client_certificate = 7;
// PEM representation of the replica's private key. The corresponsing public
// key is encoded in the client's certificate.
string client_key = 8;
// A list of permissible ciphers to use for SSL encryption.
string ssl_cipher = 9;
// Whether or not to check the primary instance's Common Name value in the
// certificate that it sends during the SSL handshake.
google.protobuf.BoolValue verify_server_certificate = 10;
// This is always **sql#mysqlReplicaConfiguration**.
string kind = 11;
}
// Disk encryption configuration for an instance.
message DiskEncryptionConfiguration {
// Resource name of KMS key for disk encryption
string kms_key_name = 1;
// This is always **sql#diskEncryptionConfiguration**.
string kind = 2;
}
// Disk encryption status for an instance.
message DiskEncryptionStatus {
// KMS key version used to encrypt the Cloud SQL instance resource
string kms_key_version_name = 1;
// This is always **sql#diskEncryptionStatus**.
string kind = 2;
}
// Database instance IP Mapping.
message IpMapping {
// The type of this IP address. A **PRIMARY** address is a public address that
// can accept incoming connections. A **PRIVATE** address is a private address
// that can accept incoming connections. An **OUTGOING** address is the source
// address of connections originating from the instance, if supported.
SqlIpAddressType type = 1;
// The IP address assigned.
string ip_address = 2;
// The due time for this IP to be retired in
// [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example
// **2012-11-15T16:19:00.094Z**. This field is only available when
// the IP is scheduled to be retired.
google.protobuf.Timestamp time_to_retire = 3;
}
// An Operation resource. For successful operations that return an
// Operation resource, only the fields relevant to the operation are populated
// in the resource.
message Operation {
// The type of Cloud SQL operation.
enum SqlOperationType {
// Unknown operation type.
SQL_OPERATION_TYPE_UNSPECIFIED = 0;
// Imports data into a Cloud SQL instance.
IMPORT = 1;
// Exports data from a Cloud SQL instance to a Cloud Storage
// bucket.
EXPORT = 2;
// Creates a new Cloud SQL instance.
CREATE = 3;
// Updates the settings of a Cloud SQL instance.
UPDATE = 4;
// Deletes a Cloud SQL instance.
DELETE = 5;
// Restarts the Cloud SQL instance.
RESTART = 6;
BACKUP = 7 [deprecated = true];
SNAPSHOT = 8 [deprecated = true];
// Performs instance backup.
BACKUP_VOLUME = 9;
// Deletes an instance backup.
DELETE_VOLUME = 10;
// Restores an instance backup.
RESTORE_VOLUME = 11;
// Injects a privileged user in mysql for MOB instances.
INJECT_USER = 12;
// Clones a Cloud SQL instance.
CLONE = 14;
// Stops replication on a Cloud SQL read replica instance.
STOP_REPLICA = 15;
// Starts replication on a Cloud SQL read replica instance.
START_REPLICA = 16;
// Promotes a Cloud SQL replica instance.
PROMOTE_REPLICA = 17;
// Creates a Cloud SQL replica instance.
CREATE_REPLICA = 18;
// Creates a new user in a Cloud SQL instance.
CREATE_USER = 19;
// Deletes a user from a Cloud SQL instance.
DELETE_USER = 20;
// Updates an existing user in a Cloud SQL instance.
UPDATE_USER = 21;
// Creates a database in the Cloud SQL instance.
CREATE_DATABASE = 22;
// Deletes a database in the Cloud SQL instance.
DELETE_DATABASE = 23;
// Updates a database in the Cloud SQL instance.
UPDATE_DATABASE = 24;
// Performs failover of an HA-enabled Cloud SQL
// failover replica.
FAILOVER = 25;
// Deletes the backup taken by a backup run.
DELETE_BACKUP = 26;
RECREATE_REPLICA = 27;
// Truncates a general or slow log table in MySQL.
TRUNCATE_LOG = 28;
// Demotes the stand-alone instance to be a Cloud SQL
// read replica for an external database server.
DEMOTE_MASTER = 29;
// Indicates that the instance is currently in maintenance. Maintenance
// typically causes the instance to be unavailable for 1-3 minutes.
MAINTENANCE = 30;
// This field is deprecated, and will be removed in future version of API.
ENABLE_PRIVATE_IP = 31 [deprecated = true];
DEFER_MAINTENANCE = 32 [deprecated = true];
// Creates clone instance.
CREATE_CLONE = 33 [deprecated = true];
// Reschedule maintenance to another time.
RESCHEDULE_MAINTENANCE = 34;
// Starts external sync of a Cloud SQL EM replica to an external primary
// instance.
START_EXTERNAL_SYNC = 35;
}
// The status of an operation.
enum SqlOperationStatus {
// The state of the operation is unknown.
SQL_OPERATION_STATUS_UNSPECIFIED = 0;
// The operation has been queued, but has not started yet.
PENDING = 1;
// The operation is running.
RUNNING = 2;
// The operation completed.
DONE = 3;
}
// This is always **sql#operation**.
string kind = 1;
string target_link = 2;
// The status of an operation. Valid values are:
// * **PENDING**
// * **RUNNING**
// * **DONE**
// * **SQL_OPERATION_STATUS_UNSPECIFIED**
SqlOperationStatus status = 3;
// The email address of the user who initiated this operation.
string user = 4;
// The time this operation was enqueued in UTC timezone in [RFC
// 3339](https://tools.ietf.org/html/rfc3339) format, for example
// **2012-11-15T16:19:00.094Z**.
google.protobuf.Timestamp insert_time = 5;
// The time this operation actually started in UTC timezone in [RFC
// 3339](https://tools.ietf.org/html/rfc3339) format, for example
// **2012-11-15T16:19:00.094Z**.
google.protobuf.Timestamp start_time = 6;
// The time this operation finished in UTC timezone in [RFC
// 3339](https://tools.ietf.org/html/rfc3339) format, for example
// **2012-11-15T16:19:00.094Z**.
google.protobuf.Timestamp end_time = 7;
// If errors occurred during processing of this operation, this field will be
// populated.
OperationErrors error = 8;
// 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**
SqlOperationType operation_type = 9;
// The context for import operation, if applicable.
ImportContext import_context = 10;
// The context for export operation, if applicable.
ExportContext export_context = 11;
// The context for backup operation, if applicable.
BackupContext backup_context = 17;
// An identifier that uniquely identifies the operation. You can use this
// identifier to retrieve the Operations resource that has information about
// the operation.
string name = 12;
// Name of the database instance related to this operation.
string target_id = 13;
// The URI of this resource.
string self_link = 14;
// The project ID of the target instance related to this operation.
string target_project = 15;
}
// Database instance operation error.
message OperationError {
// This is always **sql#operationError**.
string kind = 1;
// Identifies the specific error that occurred.
string code = 2;
// Additional information about the error encountered.
string message = 3;
}
// Database instance operation errors list wrapper.
message OperationErrors {
// This is always **sql#operationErrors**.
string kind = 1;
// The list of errors encountered while processing this operation.
repeated OperationError errors = 2;
}
// Database instance settings.
message Settings {
// Specifies when the instance is activated.
enum SqlActivationPolicy {
// Unknown activation plan.
SQL_ACTIVATION_POLICY_UNSPECIFIED = 0;
// The instance is always up and running.
ALWAYS = 1;
// The instance never starts.
NEVER = 2;
// The instance starts upon receiving requests.
ON_DEMAND = 3 [deprecated = true];
}
// 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.
google.protobuf.Int64Value settings_version = 1;
// The App Engine app IDs that can access this instance.
// (Deprecated) Applied to First Generation instances only.
repeated string authorized_gae_applications = 2 [deprecated = true];
// The tier (or machine type) for this instance, for example
// **db-custom-1-3840**.
string tier = 3;
// This is always **sql#settings**.
string kind = 4;
// User-provided labels, represented as a dictionary where each label is a
// single key value pair.
map user_labels = 5;
// Availability type. Potential values:
// * **ZONAL**: The instance serves data from only one zone. Outages in that
// zone affect data accessibility.
// * **REGIONAL**: The instance can serve data from more than one zone in a
// region (it is highly available)./
//
// For more information, see [Overview of the High Availability
// Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
SqlAvailabilityType availability_type = 6;
// The pricing plan for this instance. This can be either **PER_USE** or
// **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
SqlPricingPlan pricing_plan = 7;
// The type of replication this instance uses. This can be either
// **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only
// applicable to First Generation instances.
SqlReplicationType replication_type = 8 [deprecated = true];
// The maximum size to which storage capacity can be automatically increased.
// The default value is 0, which specifies that there is no limit.
google.protobuf.Int64Value storage_auto_resize_limit = 9;
// The activation policy specifies when the instance is activated; it is
// applicable only when the instance state is RUNNABLE. Valid values:
// * **ALWAYS**: The instance is on, and remains so even in the absence of
// connection requests.
// * **NEVER**: The instance is off; it is not activated, even if a
// connection request arrives.
SqlActivationPolicy activation_policy = 10;
// 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.
IpConfiguration ip_configuration = 11;
// Configuration to increase storage size automatically. The default value is
// true.
google.protobuf.BoolValue storage_auto_resize = 12;
// The location preference settings. This allows the instance to be located as
// near as possible to either an App Engine app or Compute Engine zone for
// better performance. App Engine co-location was only applicable to First
// Generation instances.
LocationPreference location_preference = 13;
// The database flags passed to the instance at startup.
repeated DatabaseFlags database_flags = 14;
// The type of data disk: **PD_SSD** (default) or **PD_HDD**. Not used for
// First Generation instances.
SqlDataDiskType data_disk_type = 15;
// The maintenance window for this instance. This specifies when the instance
// can be restarted for maintenance purposes.
MaintenanceWindow maintenance_window = 16;
// The daily backup configuration for the instance.
BackupConfiguration backup_configuration = 17;
// Configuration specific to read replica instances. Indicates whether
// replication is enabled or not.
google.protobuf.BoolValue database_replication_enabled = 18;
// Configuration specific to read replica instances. Indicates whether
// database flags for crash-safe replication are enabled. This property was
// only applicable to First Generation instances.
google.protobuf.BoolValue crash_safe_replication_enabled = 19 [deprecated = true];
// The size of data disk, in GB. The data disk size minimum is 10GB.
google.protobuf.Int64Value data_disk_size_gb = 20;
// Active Directory configuration, relevant only for Cloud SQL for SQL Server.
SqlActiveDirectoryConfig active_directory_config = 22;
// The name of server Instance collation.
string collation = 23;
// Deny maintenance periods
repeated DenyMaintenancePeriod deny_maintenance_periods = 24;
// Insights configuration, for now relevant only for Postgres.
InsightsConfig insights_config = 25;
// SQL Server specific audit configuration.
SqlServerAuditConfig sql_server_audit_config = 29;
}
// SslCerts Resource
message SslCert {
// This is always **sql#sslCert**.
string kind = 1;
// Serial number, as extracted from the certificate.
string cert_serial_number = 2;
// PEM representation.
string cert = 3;
// The time when the certificate was created in [RFC
// 3339](https://tools.ietf.org/html/rfc3339) format, for example
// **2012-11-15T16:19:00.094Z**
google.protobuf.Timestamp create_time = 4;
// User supplied name. Constrained to [a-zA-Z.-_ ]+.
string common_name = 5;
// The time when the certificate expires in [RFC
// 3339](https://tools.ietf.org/html/rfc3339) format, for example
// **2012-11-15T16:19:00.094Z**.
google.protobuf.Timestamp expiration_time = 6;
// Sha1 Fingerprint.
string sha1_fingerprint = 7;
// Name of the database instance.
string instance = 8;
// The URI of this resource.
string self_link = 9;
}
// SslCertDetail.
message SslCertDetail {
// The public information about the cert.
SslCert cert_info = 1;
// The private key for the client cert, in pem format. Keep private in order
// to protect your security.
string cert_private_key = 2;
}
// Active Directory configuration, relevant only for Cloud SQL for SQL Server.
message SqlActiveDirectoryConfig {
// This is always sql#activeDirectoryConfig.
string kind = 1;
// The name of the domain (e.g., mydomain.com).
string domain = 2;
}
// SQL Server specific audit configuration.
message SqlServerAuditConfig {
// This is always sql#sqlServerAuditConfig
string kind = 1;
// The name of the destination bucket (e.g., gs://mybucket).
string bucket = 2;
}
enum SqlBackendType {
// This is an unknown backend type for instance.
SQL_BACKEND_TYPE_UNSPECIFIED = 0;
// V1 speckle instance.
FIRST_GEN = 1 [deprecated = true];
// V2 speckle instance.
SECOND_GEN = 2;
// On premises instance.
EXTERNAL = 3;
}
enum SqlIpAddressType {
// This is an unknown IP address type.
SQL_IP_ADDRESS_TYPE_UNSPECIFIED = 0;
// IP address the customer is supposed to connect to. Usually this is the
// load balancer's IP address
PRIMARY = 1;
// Source IP address of the connection a read replica establishes to its
// external primary instance. This IP address can be allowlisted by the
// customer in case it has a firewall that filters incoming connection to its
// on premises primary instance.
OUTGOING = 2;
// Private IP used when using private IPs and network peering.
PRIVATE = 3;
// V1 IP of a migrated instance. We want the user to
// decommission this IP as soon as the migration is complete.
// Note: V1 instances with V1 ip addresses will be counted as PRIMARY.
MIGRATED_1ST_GEN = 4;
}
// The database engine type and version.
enum SqlDatabaseVersion {
// This is an unknown database version.
SQL_DATABASE_VERSION_UNSPECIFIED = 0;
// The database version is MySQL 5.1.
MYSQL_5_1 = 2 [deprecated = true];
// The database version is MySQL 5.5.
MYSQL_5_5 = 3 [deprecated = true];
// The database version is MySQL 5.6.
MYSQL_5_6 = 5;
// The database version is MySQL 5.7.
MYSQL_5_7 = 6;
// The database version is PostgreSQL 9.6.
POSTGRES_9_6 = 9;
// The database version is PostgreSQL 11.
POSTGRES_11 = 10;
// The database version is SQL Server 2017 Standard.
SQLSERVER_2017_STANDARD = 11;
// The database version is SQL Server 2017 Enterprise.
SQLSERVER_2017_ENTERPRISE = 14;
// The database version is SQL Server 2017 Express.
SQLSERVER_2017_EXPRESS = 15;
// The database version is SQL Server 2017 Web.
SQLSERVER_2017_WEB = 16;
// The database version is PostgreSQL 10.
POSTGRES_10 = 18;
// The database version is PostgreSQL 12.
POSTGRES_12 = 19;
// The database version is PostgreSQL 13.
POSTGRES_13 = 23;
// The database version is SQL Server 2019 Standard.
SQLSERVER_2019_STANDARD = 26;
// The database version is SQL Server 2019 Enterprise.
SQLSERVER_2019_ENTERPRISE = 27;
// The database version is SQL Server 2019 Express.
SQLSERVER_2019_EXPRESS = 28;
// The database version is SQL Server 2019 Web.
SQLSERVER_2019_WEB = 29;
}
// The pricing plan for this instance.
enum SqlPricingPlan {
// This is an unknown pricing plan for this instance.
SQL_PRICING_PLAN_UNSPECIFIED = 0;
// The instance is billed at a monthly flat rate.
PACKAGE = 1;
// The instance is billed per usage.
PER_USE = 2;
}
enum SqlReplicationType {
// This is an unknown replication type for a Cloud SQL instance.
SQL_REPLICATION_TYPE_UNSPECIFIED = 0;
// The synchronous replication mode for First Generation instances. It is the
// default value.
SYNCHRONOUS = 1;
// The asynchronous replication mode for First Generation instances. It
// provides a slight performance gain, but if an outage occurs while this
// option is set to asynchronous, you can lose up to a few seconds of updates
// to your data.
ASYNCHRONOUS = 2;
}
// The type of disk that is used for a v2 instance to use.
enum SqlDataDiskType {
// This is an unknown data disk type.
SQL_DATA_DISK_TYPE_UNSPECIFIED = 0;
// An SSD data disk.
PD_SSD = 1;
// An HDD data disk.
PD_HDD = 2;
// This field is deprecated and will be removed from a future version of the
// API.
OBSOLETE_LOCAL_SSD = 3 [deprecated = true];
}
// The availability type of the given Cloud SQL instance.
enum SqlAvailabilityType {
// This is an unknown Availability type.
SQL_AVAILABILITY_TYPE_UNSPECIFIED = 0;
// Zonal available instance.
ZONAL = 1;
// Regional available instance.
REGIONAL = 2;
}
enum SqlUpdateTrack {
// This is an unknown maintenance timing preference.
SQL_UPDATE_TRACK_UNSPECIFIED = 0;
// For instance update that requires a restart, this update track indicates
// your instance prefer to restart for new version early in maintenance
// window.
canary = 1;
// For instance update that requires a restart, this update track indicates
// your instance prefer to let Cloud SQL choose the timing of restart (within
// its Maintenance window, if applicable).
stable = 2;
}