// 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.backupdr.v1; import "google/api/field_behavior.proto"; import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/cloud/backupdr/v1/backupvault_ba.proto"; import "google/cloud/backupdr/v1/backupvault_gce.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.BackupDR.V1"; option go_package = "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb"; option java_multiple_files = true; option java_outer_classname = "BackupVaultProto"; option java_package = "com.google.cloud.backupdr.v1"; option php_namespace = "Google\\Cloud\\BackupDR\\V1"; option ruby_package = "Google::Cloud::BackupDR::V1"; // Message describing a BackupVault object. message BackupVault { option (google.api.resource) = { type: "backupdr.googleapis.com/BackupVault" pattern: "projects/{project}/locations/{location}/backupVaults/{backupvault}" plural: "backupVaults" singular: "backupVault" }; // Holds the state of the backup vault resource. enum State { // State not set. STATE_UNSPECIFIED = 0; // The backup vault is being created. CREATING = 1; // The backup vault has been created and is fully usable. ACTIVE = 2; // The backup vault is being deleted. DELETING = 3; // The backup vault is experiencing an issue and might be unusable. ERROR = 4; } // Holds the access restriction for the backup vault. enum AccessRestriction { // Access restriction not set. ACCESS_RESTRICTION_UNSPECIFIED = 0; // Access to or from resources outside your current project will be denied. WITHIN_PROJECT = 1; // Access to or from resources outside your current organization will be // denied. WITHIN_ORGANIZATION = 2; // No access restriction. UNRESTRICTED = 3; } // Output only. Identifier. Name of the backup vault to create. It must have // the // format`"projects/{project}/locations/{location}/backupVaults/{backupvault}"`. // `{backupvault}` cannot be changed after creation. It must be between 3-63 // characters long and must be unique within the project and location. string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.field_behavior) = IDENTIFIER ]; // Optional. The description of the BackupVault instance (2048 characters or // less). optional string description = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Resource labels to represent user provided metadata. // No labels currently defined: map labels = 3 [(google.api.field_behavior) = OPTIONAL]; // Output only. The time when the instance was created. optional google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the instance was updated. optional google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The default and minimum enforced retention for each backup within // the backup vault. The enforced retention for each backup can be extended. optional google.protobuf.Duration backup_minimum_enforced_retention_duration = 20 [(google.api.field_behavior) = REQUIRED]; // Output only. Set to true when there are no backups nested under this // resource. optional bool deletable = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Server specified ETag for the backup vault resource to // prevent simultaneous updates from overwiting each other. optional string etag = 9 [(google.api.field_behavior) = OPTIONAL]; // Output only. The BackupVault resource instance state. State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Time after which the BackupVault resource is locked. optional google.protobuf.Timestamp effective_time = 12 [(google.api.field_behavior) = OPTIONAL]; // Output only. The number of backups in this backup vault. int64 backup_count = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Service account used by the BackupVault Service for this // BackupVault. The user should grant this account permissions in their // workload project to enable the service to run backups and restores there. string service_account = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Total size of the storage used by all backup resources. int64 total_stored_bytes = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Output only // Immutable after resource creation until resource deletion. string uid = 21 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OUTPUT_ONLY ]; // Optional. User annotations. See https://google.aip.dev/128#annotations // Stores small amounts of arbitrary data. map annotations = 22 [(google.api.field_behavior) = OPTIONAL]; // Optional. Note: This field is added for future use case and will not be // supported in the current release. // // Optional. // // Access restriction for the backup vault. // Default value is WITHIN_ORGANIZATION if not provided during creation. AccessRestriction access_restriction = 24 [(google.api.field_behavior) = OPTIONAL]; } // Message describing a DataSource object. // Datasource object used to represent Datasource details for both admin and // basic view. message DataSource { option (google.api.resource) = { type: "backupdr.googleapis.com/DataSource" pattern: "projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}" plural: "dataSources" singular: "dataSource" }; // Holds the state of the data source resource. enum State { // State not set. STATE_UNSPECIFIED = 0; // The data source is being created. CREATING = 1; // The data source has been created and is fully usable. ACTIVE = 2; // The data source is being deleted. DELETING = 3; // The data source is experiencing an issue and might be unusable. ERROR = 4; } // Output only. Identifier. Name of the datasource to create. // It must have the // format`"projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}"`. // `{datasource}` cannot be changed after creation. It must be between 3-63 // characters long and must be unique within the backup vault. string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.field_behavior) = IDENTIFIER ]; // Output only. The DataSource resource instance state. State state = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Resource labels to represent user provided metadata. // No labels currently defined: map labels = 4 [(google.api.field_behavior) = OPTIONAL]; // Output only. The time when the instance was created. optional google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the instance was updated. optional google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Number of backups in the data source. optional int64 backup_count = 7; // Server specified ETag for the ManagementServer resource to prevent // simultaneous updates from overwiting each other. optional string etag = 14; // The number of bytes (metadata and data) stored in this datasource. optional int64 total_stored_bytes = 23; // Output only. The backup configuration state. BackupConfigState config_state = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Details of how the resource is configured for backup. BackupConfigInfo backup_config_info = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; // The source resource that is represented by this DataSource. It can be a // Google Cloud resource, or one backed up by a Backup Appliance. oneof source_resource { // The backed up resource is a Google Cloud resource. // The word 'DataSource' was included in the names to indicate that this is // the representation of the Google Cloud resource used within the // DataSource object. DataSourceGcpResource data_source_gcp_resource = 26; // The backed up resource is a backup appliance application. DataSourceBackupApplianceApplication data_source_backup_appliance_application = 27; } } // BackupConfigInfo has information about how the resource is configured // for Backup and about the most recent backup to this vault. message BackupConfigInfo { // LastBackupstate tracks whether the last backup was not yet started, // successful, failed, or could not be run because of the lack of permissions. enum LastBackupState { // Status not set. LAST_BACKUP_STATE_UNSPECIFIED = 0; // The first backup has not yet completed FIRST_BACKUP_PENDING = 1; // The most recent backup was successful SUCCEEDED = 2; // The most recent backup failed FAILED = 3; // The most recent backup could not be run/failed because of the lack of // permissions PERMISSION_DENIED = 4; } // Output only. The status of the last backup to this BackupVault LastBackupState last_backup_state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. If the last backup were successful, this field has the // consistency date. google.protobuf.Timestamp last_successful_backup_consistency_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. If the last backup failed, this field has the error message. google.rpc.Status last_backup_error = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Configuration Info has the resource format-specific configuration. oneof backup_config { // Configuration for a Google Cloud resource. GcpBackupConfig gcp_backup_config = 4; // Configuration for an application backed up by a Backup Appliance. BackupApplianceBackupConfig backup_appliance_backup_config = 5; } } // GcpBackupConfig captures the Backup configuration details for Google Cloud // resources. All Google Cloud resources regardless of type are protected with // backup plan associations. message GcpBackupConfig { // The name of the backup plan. string backup_plan = 1 [(google.api.resource_reference) = { type: "backupdr.googleapis.com/BackupPlan" }]; // The description of the backup plan. string backup_plan_description = 2; // The name of the backup plan association. string backup_plan_association = 3 [(google.api.resource_reference) = { type: "backupdr.googleapis.com/BackupPlanAssociation" }]; // The names of the backup plan rules which point to this backupvault repeated string backup_plan_rules = 4; } // BackupApplianceBackupConfig captures the backup configuration for // applications that are protected by Backup Appliances. message BackupApplianceBackupConfig { // The name of the backup appliance. string backup_appliance_name = 1; // The ID of the backup appliance. int64 backup_appliance_id = 2; // The ID of the SLA of this application. int64 sla_id = 3; // The name of the application. string application_name = 4; // The name of the host where the application is running. string host_name = 5; // The name of the SLT associated with the application. string slt_name = 6; // The name of the SLP associated with the application. string slp_name = 7; } // DataSourceGcpResource is used for protected resources that are Google Cloud // Resources. This name is easeier to understand than GcpResourceDataSource or // GcpDataSourceResource message DataSourceGcpResource { // Output only. Full resource pathname URL of the source Google Cloud // resource. string gcp_resourcename = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Location of the resource: //"global"/"unspecified". string location = 2; // The type of the Google Cloud resource. Use the Unified Resource Type, // eg. compute.googleapis.com/Instance. string type = 3; // gcp_Properties has properties of the Google Cloud Resource. oneof gcp_resource_properties { // ComputeInstanceDataSourceProperties has a subset of Compute Instance // properties that are useful at the Datasource level. ComputeInstanceDataSourceProperties compute_instance_datasource_properties = 4; } } // BackupApplianceApplication describes a Source Resource when it is an // application backed up by a BackupAppliance. message DataSourceBackupApplianceApplication { // The name of the Application as known to the Backup Appliance. string application_name = 1; // Appliance name. string backup_appliance = 2; // Appliance Id of the Backup Appliance. int64 appliance_id = 3; // The type of the application. e.g. VMBackup string type = 4; // The appid field of the application within the Backup Appliance. int64 application_id = 8; // Hostname of the host where the application is running. string hostname = 6; // Hostid of the application host. int64 host_id = 7; } // ServiceLockInfo represents the details of a lock taken by the service on a // Backup resource. message ServiceLockInfo { // Output only. The name of the operation that created this lock. // The lock will automatically be released when the operation completes. string operation = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } // BackupApplianceLockInfo contains metadata about the backupappliance that // created the lock. message BackupApplianceLockInfo { // Required. The ID of the backup/recovery appliance that created this lock. int64 backup_appliance_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The name of the backup/recovery appliance that created this lock. string backup_appliance_name = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The // value of this string is only meaningful to the client and it is not // interpreted by the BackupVault service. string lock_reason = 5 [(google.api.field_behavior) = REQUIRED]; // The information about this lock. oneof lock_source { // The job name on the backup/recovery appliance that created this lock. string job_name = 6; // The image name that depends on this Backup. string backup_image = 7; // The SLA on the backup/recovery appliance that owns the lock. int64 sla_id = 8; } } // BackupLock represents a single lock on a Backup resource. An unexpired // lock on a Backup prevents the Backup from being deleted. message BackupLock { // Required. The time after which this lock is not considered valid and will // no longer protect the Backup from deletion. google.protobuf.Timestamp lock_until_time = 1 [(google.api.field_behavior) = REQUIRED]; // Metadata about the owner and reason for the lock. oneof ClientLockInfo { // If the client is a backup and recovery appliance, this // contains metadata about why the lock exists. BackupApplianceLockInfo backup_appliance_lock_info = 3; // Output only. Contains metadata about the lock exist for Google Cloud // native backups. ServiceLockInfo service_lock_info = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } } // Message describing a Backup object. message Backup { option (google.api.resource) = { type: "backupdr.googleapis.com/Backup" pattern: "projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}/backups/{backup}" plural: "backups" singular: "backup" }; // Holds the state of the backup resource. enum State { // State not set. STATE_UNSPECIFIED = 0; // The backup is being created. CREATING = 1; // The backup has been created and is fully usable. ACTIVE = 2; // The backup is being deleted. DELETING = 3; // The backup is experiencing an issue and might be unusable. ERROR = 4; } // Type of the backup, scheduled or ondemand. enum BackupType { // Backup type is unspecified. BACKUP_TYPE_UNSPECIFIED = 0; // Scheduled backup. SCHEDULED = 1; // On demand backup. ON_DEMAND = 2; } // GCPBackupPlanInfo captures the plan configuration details of Google Cloud // resources at the time of backup. message GCPBackupPlanInfo { // Resource name of backup plan by which workload is protected at the time // of the backup. // Format: // projects/{project}/locations/{location}/backupPlans/{backupPlanId} string backup_plan = 1 [(google.api.resource_reference) = { type: "backupdr.googleapis.com/BackupPlan" }]; // The rule id of the backup plan which triggered this backup in case of // scheduled backup or used for string backup_plan_rule_id = 2; } // Output only. Identifier. Name of the backup to create. It must have the // format`"projects//locations//backupVaults//dataSources/{datasource}/backups/{backup}"`. // `{backup}` cannot be changed after creation. It must be between 3-63 // characters long and must be unique within the datasource. string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.field_behavior) = IDENTIFIER ]; // Output only. The description of the Backup instance (2048 characters or // less). optional string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the instance was created. optional google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the instance was updated. optional google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Resource labels to represent user provided metadata. // No labels currently defined. map labels = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. The backup can not be deleted before this time. optional google.protobuf.Timestamp enforced_retention_end_time = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. When this backup is automatically expired. optional google.protobuf.Timestamp expire_time = 7 [(google.api.field_behavior) = OPTIONAL]; // Output only. The point in time when this backup was captured from the // source. optional google.protobuf.Timestamp consistency_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Server specified ETag to prevent updates from overwriting each // other. optional string etag = 11 [(google.api.field_behavior) = OPTIONAL]; // Output only. The Backup resource instance state. State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The list of BackupLocks taken by the service to prevent the // deletion of the backup. repeated BackupLock service_locks = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. The list of BackupLocks taken by the accessor Backup Appliance. repeated BackupLock backup_appliance_locks = 18 [(google.api.field_behavior) = OPTIONAL]; // Workload specific backup properties. oneof backup_properties { // Output only. Compute Engine specific backup properties. ComputeInstanceBackupProperties compute_instance_backup_properties = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Backup Appliance specific backup properties. BackupApplianceBackupProperties backup_appliance_backup_properties = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Output only. Type of the backup, unspecified, scheduled or ondemand. BackupType backup_type = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; // Configuration Info has the resource format-specific configuration. oneof plan_info { // Output only. Configuration for a Google Cloud resource. GCPBackupPlanInfo gcp_backup_plan_info = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Output only. source resource size in bytes at the time of the backup. int64 resource_size_bytes = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Message for creating a BackupVault. message CreateBackupVaultRequest { // Required. Value for parent. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "backupdr.googleapis.com/BackupVault" } ]; // Required. ID of the requesting object // If auto-generating ID server-side, remove this field and // backup_vault_id from the method_signature of Create RPC string backup_vault_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The resource being created BackupVault backup_vault = 3 [(google.api.field_behavior) = REQUIRED]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 4 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; // Optional. Only validate the request, but do not perform mutations. // The default is 'false'. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; } // Request message for listing backupvault stores. message ListBackupVaultsRequest { // Required. The project and location for which to retrieve backupvault stores // information, in the format 'projects/{project_id}/locations/{location}'. In // Cloud Backup and DR, locations map to Google Cloud regions, for example // **us-central1**. // To retrieve backupvault stores for all locations, use "-" for the // '{location}' value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "backupdr.googleapis.com/BackupVault" } ]; // Optional. Requested page size. Server may return fewer items than // requested. If unspecified, server will pick an appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results the server should return. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Filtering results. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Hint for how to order the results. string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Reserved for future use to provide a BASIC & FULL view of Backup // Vault. BackupVaultView view = 6 [(google.api.field_behavior) = OPTIONAL]; } // Response message for listing BackupVaults. message ListBackupVaultsResponse { // The list of BackupVault instances in the project for the specified // location. // // If the '{location}' value in the request is "-", the response contains a // list of instances from all locations. In case any location is unreachable, // the response will only return backup vaults in reachable locations and // the 'unreachable' field will be populated with a list of unreachable // locations. repeated BackupVault backup_vaults = 1; // A token identifying a page of results the server should return. string next_page_token = 2; // Locations that could not be reached. repeated string unreachable = 3; } // Request message for fetching usable BackupVaults. message FetchUsableBackupVaultsRequest { // Required. The project and location for which to retrieve backupvault stores // information, in the format 'projects/{project_id}/locations/{location}'. In // Cloud Backup and DR, locations map to Google Cloud regions, for example // **us-central1**. // To retrieve backupvault stores for all locations, use "-" for the // '{location}' value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "backupdr.googleapis.com/BackupVault" } ]; // Optional. Requested page size. Server may return fewer items than // requested. If unspecified, server will pick an appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results the server should return. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Filtering results. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Hint for how to order the results. string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for fetching usable BackupVaults. message FetchUsableBackupVaultsResponse { // The list of BackupVault instances in the project for the specified // location. // // If the '{location}' value in the request is "-", the response contains a // list of instances from all locations. In case any location is unreachable, // the response will only return backup vaults in reachable locations and // the 'unreachable' field will be populated with a list of unreachable // locations. repeated BackupVault backup_vaults = 1; // A token identifying a page of results the server should return. string next_page_token = 2; // Locations that could not be reached. repeated string unreachable = 3; } // Request message for getting a BackupVault. message GetBackupVaultRequest { // Required. Name of the backupvault store resource name, in the format // 'projects/{project_id}/locations/{location}/backupVaults/{resource_name}' string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/BackupVault" } ]; // Optional. Reserved for future use to provide a BASIC & FULL view of Backup // Vault BackupVaultView view = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request message for updating a BackupVault. message UpdateBackupVaultRequest { // Required. Field mask is used to specify the fields to be overwritten in the // BackupVault resource by the update. // The fields specified in the update_mask are relative to the resource, not // the full request. A field will be overwritten if it is in the mask. If the // user does not provide a mask then the request will fail. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The resource being updated BackupVault backup_vault = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 3 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; // Optional. Only validate the request, but do not perform mutations. // The default is 'false'. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. If set to true, will not check plan duration against backup vault // enforcement duration. bool force = 5 [(google.api.field_behavior) = OPTIONAL]; } // Message for deleting a BackupVault. message DeleteBackupVaultRequest { // Required. Name of the resource. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/BackupVault" } ]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes after the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; // Optional. If set to true, any data source from this backup vault will also // be deleted. bool force = 3 [(google.api.field_behavior) = OPTIONAL]; // The current etag of the backup vault. // If an etag is provided and does not match the current etag of the // connection, deletion will be blocked. string etag = 4; // Optional. Only validate the request, but do not perform mutations. // The default is 'false'. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. If true and the BackupVault is not found, the request will // succeed but no action will be taken. bool allow_missing = 6 [(google.api.field_behavior) = OPTIONAL]; } // Request message for listing DataSources. message ListDataSourcesRequest { // Required. The project and location for which to retrieve data // sources information, in the format // 'projects/{project_id}/locations/{location}'. In Cloud Backup and DR, // locations map to Google Cloud regions, for example **us-central1**. // To retrieve data sources for all locations, use "-" for the // '{location}' value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "backupdr.googleapis.com/DataSource" } ]; // Optional. Requested page size. Server may return fewer items than // requested. If unspecified, server will pick an appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results the server should return. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Filtering results. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Hint for how to order the results. string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for listing DataSources. message ListDataSourcesResponse { // The list of DataSource instances in the project for the specified // location. // // If the '{location}' value in the request is "-", the response contains a // list of instances from all locations. In case any location is unreachable, // the response will only return data sources in reachable locations // and the 'unreachable' field will be populated with a list of unreachable // locations. repeated DataSource data_sources = 1; // A token identifying a page of results the server should return. string next_page_token = 2; // Locations that could not be reached. repeated string unreachable = 3; } // Request message for getting a DataSource instance. message GetDataSourceRequest { // Required. Name of the data source resource name, in the format // 'projects/{project_id}/locations/{location}/backupVaults/{resource_name}/dataSource/{resource_name}' string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/DataSource" } ]; } // Request message for updating a data source instance. message UpdateDataSourceRequest { // Required. Field mask is used to specify the fields to be overwritten in the // DataSource resource by the update. // The fields specified in the update_mask are relative to the resource, not // the full request. A field will be overwritten if it is in the mask. If the // user does not provide a mask then the request will fail. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The resource being updated DataSource data_source = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 3 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; // Optional. Enable upsert. bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; } // Message for deleting a DataSource. message RemoveDataSourceRequest { // Required. Name of the resource. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/DataSource" } ]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes after the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; } // Request message for SetStatusInternal method. message SetInternalStatusRequest { // Required. The resource name of the instance, in the format // 'projects/*/locations/*/backupVaults/*/dataSources/'. string data_source = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/DataSource" } ]; // Required. The value required for this method to work. This field must be // the 32-byte SHA256 hash of the DataSourceID. The DataSourceID used here is // only the final piece of the fully qualified resource path for this // DataSource (i.e. the part after '.../dataSources/'). This field exists to // make this method difficult to call since it is intended for use only by // Backup Appliances. bytes value = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Output only. The new BackupConfigState to set for the DataSource. BackupConfigState backup_config_state = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = OUTPUT_ONLY ]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes after the first request. The request // ID must be a valid UUID with the exception that zero UUID is not supported // (00000000-0000-0000-0000-000000000000). string request_id = 4 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; } // Response message from SetStatusInternal method. message SetInternalStatusResponse {} // request message for InitiateBackup. message InitiateBackupRequest { // Required. The resource name of the instance, in the format // 'projects/*/locations/*/backupVaults/*/dataSources/'. string data_source = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/DataSource" } ]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; // Required. Resource ID of the Backup resource. string backup_id = 5 [(google.api.field_behavior) = REQUIRED]; } // Response message for InitiateBackup. message InitiateBackupResponse { // The name of the backup that was created. string backup = 1; // The generation id of the new backup. int32 new_backup_generation_id = 2; // The generation id of the base backup. It is needed for the incremental // backups. int32 base_backup_generation_id = 3; } // request message for AbandonBackup. message AbandonBackupRequest { // Required. The resource name of the instance, in the format // 'projects/*/locations/*/backupVaults/*/dataSources/'. string data_source = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/DataSource" } ]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; } // Message for finalizing a Backup. message FinalizeBackupRequest { // Required. The resource name of the instance, in the format // 'projects/*/locations/*/backupVaults/*/dataSources/'. string data_source = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/DataSource" } ]; // This will be assigned to the description field of the newly created Backup. optional string description = 2; // The point in time when this backup was captured from the source. This will // be assigned to the consistency_time field of the newly created Backup. optional google.protobuf.Timestamp consistency_time = 3; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes after the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 4 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; // Required. Resource ID of the Backup resource to be finalized. This must be // the same backup_id that was used in the InitiateBackupRequest. string backup_id = 5 [(google.api.field_behavior) = REQUIRED]; // The earliest timestamp of data available in this Backup. This will set on // the newly created Backup. optional google.protobuf.Timestamp recovery_range_start_time = 6; // The latest timestamp of data available in this Backup. This will be set on // the newly created Backup. optional google.protobuf.Timestamp recovery_range_end_time = 7; // The ExpireTime on the backup will be set to FinalizeTime plus this // duration. If the resulting ExpireTime is less than // EnforcedRetentionEndTime, then ExpireTime is set to // EnforcedRetentionEndTime. optional google.protobuf.Duration retention_duration = 9; } // Request message for FetchAccessToken. message FetchAccessTokenRequest { // Required. The resource name for the location for which static IPs should be // returned. // Must be in the format // 'projects/*/locations/*/backupVaults/*/dataSources'. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/DataSource" } ]; // Required. The generation of the backup to update. int32 generation_id = 2 [(google.api.field_behavior) = REQUIRED]; } // Response message for FetchAccessToken. message FetchAccessTokenResponse { // The location in bucket that can be used for reading. string read_location = 1; // The location in bucket that can be used for writing. string write_location = 2; // The downscoped token that was created. string token = 3; // The token is valid until this time. google.protobuf.Timestamp expire_time = 4; } // Request message for listing Backups. message ListBackupsRequest { // Required. The project and location for which to retrieve backup // information, in the format // 'projects/{project_id}/locations/{location}'. In Cloud Backup and DR, // locations map to Google Cloud regions, for example **us-central1**. // To retrieve data sources for all locations, use "-" for the // '{location}' value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "backupdr.googleapis.com/Backup" } ]; // Optional. Requested page size. Server may return fewer items than // requested. If unspecified, server will pick an appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results the server should return. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Filtering results. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Hint for how to order the results. string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Reserved for future use to provide a BASIC & FULL view of Backup // resource. BackupView view = 6 [(google.api.field_behavior) = OPTIONAL]; } // Response message for listing Backups. message ListBackupsResponse { // The list of Backup instances in the project for the specified // location. // // If the '{location}' value in the request is "-", the response contains a // list of instances from all locations. In case any location is unreachable, // the response will only return data sources in reachable locations // and the 'unreachable' field will be populated with a list of unreachable // locations. repeated Backup backups = 1; // A token identifying a page of results the server should return. string next_page_token = 2; // Locations that could not be reached. repeated string unreachable = 3; } // Request message for getting a Backup. message GetBackupRequest { // Required. Name of the data source resource name, in the format // 'projects/{project_id}/locations/{location}/backupVaults/{backupVault}/dataSources/{datasource}/backups/{backup}' string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/Backup" } ]; // Optional. Reserved for future use to provide a BASIC & FULL view of Backup // resource. BackupView view = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request message for updating a Backup. message UpdateBackupRequest { // Required. Field mask is used to specify the fields to be overwritten in the // Backup resource by the update. // The fields specified in the update_mask are relative to the resource, not // the full request. A field will be overwritten if it is in the mask. If the // user does not provide a mask then the request will fail. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The resource being updated Backup backup = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 3 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; } // Message for deleting a Backup. message DeleteBackupRequest { // Required. Name of the resource. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/Backup" } ]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes after the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; } // Request message for restoring from a Backup. message RestoreBackupRequest { // Required. The resource name of the Backup instance, in the format // 'projects/*/locations/*/backupVaults/*/dataSources/*/backups/'. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "backupdr.googleapis.com/Backup" } ]; // Optional. An optional request ID to identify requests. Specify a unique // request ID so that if you must retry your request, the server will know to // ignore the request if it has already been completed. The server will // guarantee that for at least 60 minutes after the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request // ID, the server can check if original operation with the same request ID // was received, and if so, will ignore the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; // The target environment for the restore operation. oneof target_environment { // Compute Engine target environment to be used during restore. ComputeInstanceTargetEnvironment compute_instance_target_environment = 3; } // The property overrides for the instance being restored. oneof instance_properties { // Compute Engine instance properties to be overridden during restore. ComputeInstanceRestoreProperties compute_instance_restore_properties = 4; } } // Response message for restoring from a Backup. message RestoreBackupResponse { // Details of the target resource created/modified as part of restore. TargetResource target_resource = 1; } // Details of the target resource created/modified as part of restore. message TargetResource { // Minimum details to identify the restored resource. oneof target_resource_info { // Details of the native Google Cloud resource created as part of restore. GcpResource gcp_resource = 1; } } // Minimum details to identify a Google Cloud resource message GcpResource { // Name of the Google Cloud resource. string gcp_resourcename = 1; // Location of the resource: //"global"/"unspecified". string location = 2; // Type of the resource. Use the Unified Resource Type, // eg. compute.googleapis.com/Instance. string type = 3; } // Backup configuration state. Is the resource configured for backup? enum BackupConfigState { // The possible states of backupĀ configuration. // Status not set. BACKUP_CONFIG_STATE_UNSPECIFIED = 0; // The data source is actively protected (i.e. there is a // BackupPlanAssociation or Appliance SLA pointing to it) ACTIVE = 1; // The data source is no longer protected (but may have backups under it) PASSIVE = 2; } // BackupView contains enum options for Partial and Full view. enum BackupView { // If the value is not set, the default 'FULL' view is used. BACKUP_VIEW_UNSPECIFIED = 0; // Includes basic data about the Backup, but not the full contents. BACKUP_VIEW_BASIC = 1; // Includes all data about the Backup. // This is the default value (for both ListBackups and GetBackup). BACKUP_VIEW_FULL = 2; } // BackupVaultView contains enum options for Partial and Full view. enum BackupVaultView { // If the value is not set, the default 'FULL' view is used. BACKUP_VAULT_VIEW_UNSPECIFIED = 0; // Includes basic data about the Backup Vault, but not the full contents. BACKUP_VAULT_VIEW_BASIC = 1; // Includes all data about the Backup Vault. // This is the default value (for both ListBackupVaults and GetBackupVault). BACKUP_VAULT_VIEW_FULL = 2; }