xref: /aosp_15_r20/external/googleapis/google/cloud/gkebackup/v1/volume.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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