1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.gkebackup.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/gkebackup/v1/common.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.GkeBackup.V1"; 25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/gkebackup/apiv1/gkebackuppb;gkebackuppb"; 26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "VolumeProto"; 28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.gkebackup.v1"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\GkeBackup\\V1"; 30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::GkeBackup::V1"; 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker// Represents the backup of a specific persistent volume as a component of a 33*d5c09012SAndroid Build Coastguard Worker// Backup - both the record of the operation and a pointer to the underlying 34*d5c09012SAndroid Build Coastguard Worker// storage-specific artifacts. 35*d5c09012SAndroid Build Coastguard Workermessage VolumeBackup { 36*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 37*d5c09012SAndroid Build Coastguard Worker type: "gkebackup.googleapis.com/VolumeBackup" 38*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/backupPlans/{backup_plan}/backups/{backup}/volumeBackups/{volume_backup}" 39*d5c09012SAndroid Build Coastguard Worker }; 40*d5c09012SAndroid Build Coastguard Worker 41*d5c09012SAndroid Build Coastguard Worker // Identifies the format used for the volume backup. 42*d5c09012SAndroid Build Coastguard Worker enum VolumeBackupFormat { 43*d5c09012SAndroid Build Coastguard Worker // Default value, not specified. 44*d5c09012SAndroid Build Coastguard Worker VOLUME_BACKUP_FORMAT_UNSPECIFIED = 0; 45*d5c09012SAndroid Build Coastguard Worker 46*d5c09012SAndroid Build Coastguard Worker // Compute Engine Persistent Disk snapshot based volume backup. 47*d5c09012SAndroid Build Coastguard Worker GCE_PERSISTENT_DISK = 1; 48*d5c09012SAndroid Build Coastguard Worker } 49*d5c09012SAndroid Build Coastguard Worker 50*d5c09012SAndroid Build Coastguard Worker // The current state of a VolumeBackup 51*d5c09012SAndroid Build Coastguard Worker enum State { 52*d5c09012SAndroid Build Coastguard Worker // This is an illegal state and should not be encountered. 53*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 54*d5c09012SAndroid Build Coastguard Worker 55*d5c09012SAndroid Build Coastguard Worker // A volume for the backup was identified and backup process is about to 56*d5c09012SAndroid Build Coastguard Worker // start. 57*d5c09012SAndroid Build Coastguard Worker CREATING = 1; 58*d5c09012SAndroid Build Coastguard Worker 59*d5c09012SAndroid Build Coastguard Worker // The volume backup operation has begun and is in the initial "snapshot" 60*d5c09012SAndroid Build Coastguard Worker // phase of the process. Any defined ProtectedApplication "pre" hooks will 61*d5c09012SAndroid Build Coastguard Worker // be executed before entering this state and "post" hooks will be executed 62*d5c09012SAndroid Build Coastguard Worker // upon leaving this state. 63*d5c09012SAndroid Build Coastguard Worker SNAPSHOTTING = 2; 64*d5c09012SAndroid Build Coastguard Worker 65*d5c09012SAndroid Build Coastguard Worker // The snapshot phase of the volume backup operation has completed and 66*d5c09012SAndroid Build Coastguard Worker // the snapshot is now being uploaded to backup storage. 67*d5c09012SAndroid Build Coastguard Worker UPLOADING = 3; 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // The volume backup operation has completed successfully. 70*d5c09012SAndroid Build Coastguard Worker SUCCEEDED = 4; 71*d5c09012SAndroid Build Coastguard Worker 72*d5c09012SAndroid Build Coastguard Worker // The volume backup operation has failed. 73*d5c09012SAndroid Build Coastguard Worker FAILED = 5; 74*d5c09012SAndroid Build Coastguard Worker 75*d5c09012SAndroid Build Coastguard Worker // This VolumeBackup resource (and its associated artifacts) is in the 76*d5c09012SAndroid Build Coastguard Worker // process of being deleted. 77*d5c09012SAndroid Build Coastguard Worker DELETING = 6; 78*d5c09012SAndroid Build Coastguard Worker } 79*d5c09012SAndroid Build Coastguard Worker 80*d5c09012SAndroid Build Coastguard Worker // Output only. The full name of the VolumeBackup resource. 81*d5c09012SAndroid Build Coastguard Worker // Format: `projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*`. 82*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker // Output only. Server generated global unique identifier of 85*d5c09012SAndroid Build Coastguard Worker // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. 86*d5c09012SAndroid Build Coastguard Worker string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker // Output only. The timestamp when this VolumeBackup resource was 89*d5c09012SAndroid Build Coastguard Worker // created. 90*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 3 91*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 92*d5c09012SAndroid Build Coastguard Worker 93*d5c09012SAndroid Build Coastguard Worker // Output only. The timestamp when this VolumeBackup resource was last 94*d5c09012SAndroid Build Coastguard Worker // updated. 95*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 4 96*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // Output only. A reference to the source Kubernetes PVC from which this 99*d5c09012SAndroid Build Coastguard Worker // VolumeBackup was created. 100*d5c09012SAndroid Build Coastguard Worker NamespacedName source_pvc = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Output only. A storage system-specific opaque handle to the underlying 103*d5c09012SAndroid Build Coastguard Worker // volume backup. 104*d5c09012SAndroid Build Coastguard Worker string volume_backup_handle = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 105*d5c09012SAndroid Build Coastguard Worker 106*d5c09012SAndroid Build Coastguard Worker // Output only. The format used for the volume backup. 107*d5c09012SAndroid Build Coastguard Worker VolumeBackupFormat format = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 108*d5c09012SAndroid Build Coastguard Worker 109*d5c09012SAndroid Build Coastguard Worker // Output only. The aggregate size of the underlying artifacts associated with 110*d5c09012SAndroid Build Coastguard Worker // this VolumeBackup in the backup storage. This may change over time when 111*d5c09012SAndroid Build Coastguard Worker // multiple backups of the same volume share the same backup storage 112*d5c09012SAndroid Build Coastguard Worker // location. In particular, this is likely to increase in size when 113*d5c09012SAndroid Build Coastguard Worker // the immediately preceding backup of the same volume is deleted. 114*d5c09012SAndroid Build Coastguard Worker int64 storage_bytes = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 115*d5c09012SAndroid Build Coastguard Worker 116*d5c09012SAndroid Build Coastguard Worker // Output only. The minimum size of the disk to which this VolumeBackup can be 117*d5c09012SAndroid Build Coastguard Worker // restored. 118*d5c09012SAndroid Build Coastguard Worker int64 disk_size_bytes = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 119*d5c09012SAndroid Build Coastguard Worker 120*d5c09012SAndroid Build Coastguard Worker // Output only. The timestamp when the associated underlying volume backup 121*d5c09012SAndroid Build Coastguard Worker // operation completed. 122*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp complete_time = 10 123*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 124*d5c09012SAndroid Build Coastguard Worker 125*d5c09012SAndroid Build Coastguard Worker // Output only. The current state of this VolumeBackup. 126*d5c09012SAndroid Build Coastguard Worker State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // Output only. A human readable message explaining why the VolumeBackup is in 129*d5c09012SAndroid Build Coastguard Worker // its current state. 130*d5c09012SAndroid Build Coastguard Worker string state_message = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 131*d5c09012SAndroid Build Coastguard Worker 132*d5c09012SAndroid Build Coastguard Worker // Output only. `etag` is used for optimistic concurrency control as a way to 133*d5c09012SAndroid Build Coastguard Worker // help prevent simultaneous updates of a volume backup from overwriting each 134*d5c09012SAndroid Build Coastguard Worker // other. It is strongly suggested that systems make use of the `etag` in the 135*d5c09012SAndroid Build Coastguard Worker // read-modify-write cycle to perform volume backup updates in order to avoid 136*d5c09012SAndroid Build Coastguard Worker // race conditions. 137*d5c09012SAndroid Build Coastguard Worker string etag = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 138*d5c09012SAndroid Build Coastguard Worker} 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker// Represents the operation of restoring a volume from a VolumeBackup. 141*d5c09012SAndroid Build Coastguard Workermessage VolumeRestore { 142*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 143*d5c09012SAndroid Build Coastguard Worker type: "gkebackup.googleapis.com/VolumeRestore" 144*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/restorePlans/{restore_plan}/restores/{restore}/volumeRestores/{volume_restore}" 145*d5c09012SAndroid Build Coastguard Worker }; 146*d5c09012SAndroid Build Coastguard Worker 147*d5c09012SAndroid Build Coastguard Worker // Supported volume types. 148*d5c09012SAndroid Build Coastguard Worker enum VolumeType { 149*d5c09012SAndroid Build Coastguard Worker // Default 150*d5c09012SAndroid Build Coastguard Worker VOLUME_TYPE_UNSPECIFIED = 0; 151*d5c09012SAndroid Build Coastguard Worker 152*d5c09012SAndroid Build Coastguard Worker // Compute Engine Persistent Disk volume 153*d5c09012SAndroid Build Coastguard Worker GCE_PERSISTENT_DISK = 1; 154*d5c09012SAndroid Build Coastguard Worker } 155*d5c09012SAndroid Build Coastguard Worker 156*d5c09012SAndroid Build Coastguard Worker // The current state of a VolumeRestore 157*d5c09012SAndroid Build Coastguard Worker enum State { 158*d5c09012SAndroid Build Coastguard Worker // This is an illegal state and should not be encountered. 159*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 160*d5c09012SAndroid Build Coastguard Worker 161*d5c09012SAndroid Build Coastguard Worker // A volume for the restore was identified and restore process is about to 162*d5c09012SAndroid Build Coastguard Worker // start. 163*d5c09012SAndroid Build Coastguard Worker CREATING = 1; 164*d5c09012SAndroid Build Coastguard Worker 165*d5c09012SAndroid Build Coastguard Worker // The volume is currently being restored. 166*d5c09012SAndroid Build Coastguard Worker RESTORING = 2; 167*d5c09012SAndroid Build Coastguard Worker 168*d5c09012SAndroid Build Coastguard Worker // The volume has been successfully restored. 169*d5c09012SAndroid Build Coastguard Worker SUCCEEDED = 3; 170*d5c09012SAndroid Build Coastguard Worker 171*d5c09012SAndroid Build Coastguard Worker // The volume restoration process failed. 172*d5c09012SAndroid Build Coastguard Worker FAILED = 4; 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker // This VolumeRestore resource is in the process of being deleted. 175*d5c09012SAndroid Build Coastguard Worker DELETING = 5; 176*d5c09012SAndroid Build Coastguard Worker } 177*d5c09012SAndroid Build Coastguard Worker 178*d5c09012SAndroid Build Coastguard Worker // Output only. Full name of the VolumeRestore resource. 179*d5c09012SAndroid Build Coastguard Worker // Format: `projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*` 180*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 181*d5c09012SAndroid Build Coastguard Worker 182*d5c09012SAndroid Build Coastguard Worker // Output only. Server generated global unique identifier of 183*d5c09012SAndroid Build Coastguard Worker // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. 184*d5c09012SAndroid Build Coastguard Worker string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 185*d5c09012SAndroid Build Coastguard Worker 186*d5c09012SAndroid Build Coastguard Worker // Output only. The timestamp when this VolumeRestore resource was 187*d5c09012SAndroid Build Coastguard Worker // created. 188*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 3 189*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 190*d5c09012SAndroid Build Coastguard Worker 191*d5c09012SAndroid Build Coastguard Worker // Output only. The timestamp when this VolumeRestore resource was last 192*d5c09012SAndroid Build Coastguard Worker // updated. 193*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 4 194*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 195*d5c09012SAndroid Build Coastguard Worker 196*d5c09012SAndroid Build Coastguard Worker // Output only. The full name of the VolumeBackup from which the volume will 197*d5c09012SAndroid Build Coastguard Worker // be restored. Format: 198*d5c09012SAndroid Build Coastguard Worker // `projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*`. 199*d5c09012SAndroid Build Coastguard Worker string volume_backup = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 200*d5c09012SAndroid Build Coastguard Worker 201*d5c09012SAndroid Build Coastguard Worker // Output only. The reference to the target Kubernetes PVC to be restored. 202*d5c09012SAndroid Build Coastguard Worker NamespacedName target_pvc = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 203*d5c09012SAndroid Build Coastguard Worker 204*d5c09012SAndroid Build Coastguard Worker // Output only. A storage system-specific opaque handler to the underlying 205*d5c09012SAndroid Build Coastguard Worker // volume created for the target PVC from the volume backup. 206*d5c09012SAndroid Build Coastguard Worker string volume_handle = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 207*d5c09012SAndroid Build Coastguard Worker 208*d5c09012SAndroid Build Coastguard Worker // Output only. The type of volume provisioned 209*d5c09012SAndroid Build Coastguard Worker VolumeType volume_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 210*d5c09012SAndroid Build Coastguard Worker 211*d5c09012SAndroid Build Coastguard Worker // Output only. The timestamp when the associated underlying volume 212*d5c09012SAndroid Build Coastguard Worker // restoration completed. 213*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp complete_time = 9 214*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 215*d5c09012SAndroid Build Coastguard Worker 216*d5c09012SAndroid Build Coastguard Worker // Output only. The current state of this VolumeRestore. 217*d5c09012SAndroid Build Coastguard Worker State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 218*d5c09012SAndroid Build Coastguard Worker 219*d5c09012SAndroid Build Coastguard Worker // Output only. A human readable message explaining why the VolumeRestore is 220*d5c09012SAndroid Build Coastguard Worker // in its current state. 221*d5c09012SAndroid Build Coastguard Worker string state_message = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 222*d5c09012SAndroid Build Coastguard Worker 223*d5c09012SAndroid Build Coastguard Worker // Output only. `etag` is used for optimistic concurrency control as a way to 224*d5c09012SAndroid Build Coastguard Worker // help prevent simultaneous updates of a volume restore from overwriting each 225*d5c09012SAndroid Build Coastguard Worker // other. It is strongly suggested that systems make use of the `etag` in the 226*d5c09012SAndroid Build Coastguard Worker // read-modify-write cycle to perform volume restore updates in order to avoid 227*d5c09012SAndroid Build Coastguard Worker // race conditions. 228*d5c09012SAndroid Build Coastguard Worker string etag = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 229*d5c09012SAndroid Build Coastguard Worker} 230