// Copyright 2024 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/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/sql/v1/cloud_sql_resources.proto"; import "google/protobuf/timestamp.proto"; option go_package = "cloud.google.com/go/sql/apiv1/sqlpb;sqlpb"; option java_multiple_files = true; option java_outer_classname = "CloudSqlBackupRunsProto"; option java_package = "com.google.cloud.sql.v1"; // LINT: LEGACY_NAMES // Service for managing database backups. 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: "/v1/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: "/v1/projects/{project}/instances/{instance}/backupRuns/{id}" }; } // Creates a new backup run on demand. rpc Insert(SqlBackupRunsInsertRequest) returns (Operation) { option (google.api.http) = { post: "/v1/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: "/v1/projects/{project}/instances/{instance}/backupRuns" }; } } // Backup runs delete request. 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/v1/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; } // Backup runs get request. 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; } // Backup runs insert request. 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; } // Backup runs list request. 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; } // A BackupRun resource. message BackupRun { // This is always `sql#backupRun`. string kind = 1; // The status of this run. SqlBackupRunStatus status = 2; // The time the run 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 enqueued_time = 3; // The identifier for this backup run. Unique only for a specific Cloud SQL // instance. int64 id = 4; // The time the backup 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 = 5; // The time the backup operation completed 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 = 6; // Information about why the backup operation failed. This is only present if // the run has the FAILED status. OperationError error = 7; // The type of this run; can be either "AUTOMATED" or "ON_DEMAND" or "FINAL". // This field defaults to "ON_DEMAND" and is ignored, when specified for // insert requests. SqlBackupRunType type = 8; // The description of this run, only applicable to on-demand backups. string description = 9; // The start time of the backup window during which this the backup was // attempted in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for // example `2012-11-15T16:19:00.094Z`. google.protobuf.Timestamp window_start_time = 10; // Name of the database instance. string instance = 11; // The URI of this resource. string self_link = 12; // Location of the backups. string location = 13; // Encryption configuration specific to a backup. DiskEncryptionConfiguration disk_encryption_configuration = 16; // Encryption status specific to a backup. DiskEncryptionStatus disk_encryption_status = 17; // Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT. SqlBackupKind backup_kind = 19; // Backup time zone to prevent restores to an instance with // a different time zone. Now relevant only for SQL Server. string time_zone = 23; // Output only. The maximum chargeable bytes for the backup. optional int64 max_chargeable_bytes = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Backup run list results. message BackupRunsListResponse { // This is always `sql#backupRunsList`. string kind = 1; // A list of backup runs in reverse chronological order of the enqueued time. repeated BackupRun items = 2; // The continuation token, used to page through large result sets. Provide // this value in a subsequent request to return the next page of results. string next_page_token = 3; } // The status of a backup run. enum SqlBackupRunStatus { // The status of the run is unknown. SQL_BACKUP_RUN_STATUS_UNSPECIFIED = 0; // The backup operation was enqueued. ENQUEUED = 1; // The backup is overdue across a given backup window. Indicates a // problem. Example: Long-running operation in progress during // the whole window. OVERDUE = 2; // The backup is in progress. RUNNING = 3; // The backup failed. FAILED = 4; // The backup was successful. SUCCESSFUL = 5; // The backup was skipped (without problems) for a given backup // window. Example: Instance was idle. SKIPPED = 6; // The backup is about to be deleted. DELETION_PENDING = 7; // The backup deletion failed. DELETION_FAILED = 8; // The backup has been deleted. DELETED = 9; } // Defines the supported backup kinds. enum SqlBackupKind { // This is an unknown BackupKind. SQL_BACKUP_KIND_UNSPECIFIED = 0; // The snapshot based backups SNAPSHOT = 1; // Physical backups PHYSICAL = 2; } // Type of backup (i.e. automated, on demand, etc). enum SqlBackupRunType { // This is an unknown BackupRun type. SQL_BACKUP_RUN_TYPE_UNSPECIFIED = 0; // The backup schedule automatically triggers a backup. AUTOMATED = 1; // The user manually triggers a backup. ON_DEMAND = 2; }