xref: /aosp_15_r20/external/googleapis/google/cloud/gkebackup/v1/backup.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 = "BackupProto";
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 a request to perform a single point-in-time capture of
33*d5c09012SAndroid Build Coastguard Worker// some portion of the state of a GKE cluster, the record of the backup
34*d5c09012SAndroid Build Coastguard Worker// operation itself, and an anchor for the underlying artifacts that
35*d5c09012SAndroid Build Coastguard Worker// comprise the Backup (the config backup and VolumeBackups).
36*d5c09012SAndroid Build Coastguard Workermessage Backup {
37*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
38*d5c09012SAndroid Build Coastguard Worker    type: "gkebackup.googleapis.com/Backup"
39*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/backupPlans/{backup_plan}/backups/{backup}"
40*d5c09012SAndroid Build Coastguard Worker  };
41*d5c09012SAndroid Build Coastguard Worker
42*d5c09012SAndroid Build Coastguard Worker  // Information about the GKE cluster from which this Backup was created.
43*d5c09012SAndroid Build Coastguard Worker  message ClusterMetadata {
44*d5c09012SAndroid Build Coastguard Worker    // Output only. The source cluster from which this Backup was created.
45*d5c09012SAndroid Build Coastguard Worker    // Valid formats:
46*d5c09012SAndroid Build Coastguard Worker    //
47*d5c09012SAndroid Build Coastguard Worker    //   - `projects/*/locations/*/clusters/*`
48*d5c09012SAndroid Build Coastguard Worker    //   - `projects/*/zones/*/clusters/*`
49*d5c09012SAndroid Build Coastguard Worker    //
50*d5c09012SAndroid Build Coastguard Worker    // This is inherited from the parent BackupPlan's
51*d5c09012SAndroid Build Coastguard Worker    // [cluster][google.cloud.gkebackup.v1.BackupPlan.cluster] field.
52*d5c09012SAndroid Build Coastguard Worker    string cluster = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
53*d5c09012SAndroid Build Coastguard Worker
54*d5c09012SAndroid Build Coastguard Worker    // Output only. The Kubernetes server version of the source cluster.
55*d5c09012SAndroid Build Coastguard Worker    string k8s_version = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker    // Output only. A list of the Backup for GKE CRD versions found in the
58*d5c09012SAndroid Build Coastguard Worker    // cluster.
59*d5c09012SAndroid Build Coastguard Worker    map<string, string> backup_crd_versions = 3
60*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
61*d5c09012SAndroid Build Coastguard Worker
62*d5c09012SAndroid Build Coastguard Worker    // Platform-specific version
63*d5c09012SAndroid Build Coastguard Worker    oneof platform_version {
64*d5c09012SAndroid Build Coastguard Worker      // Output only. GKE version
65*d5c09012SAndroid Build Coastguard Worker      string gke_version = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
66*d5c09012SAndroid Build Coastguard Worker
67*d5c09012SAndroid Build Coastguard Worker      // Output only. Anthos version
68*d5c09012SAndroid Build Coastguard Worker      string anthos_version = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
69*d5c09012SAndroid Build Coastguard Worker    }
70*d5c09012SAndroid Build Coastguard Worker  }
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker  // State
73*d5c09012SAndroid Build Coastguard Worker  enum State {
74*d5c09012SAndroid Build Coastguard Worker    // The Backup resource is in the process of being created.
75*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
76*d5c09012SAndroid Build Coastguard Worker
77*d5c09012SAndroid Build Coastguard Worker    // The Backup resource has been created and the associated BackupJob
78*d5c09012SAndroid Build Coastguard Worker    // Kubernetes resource has been injected into the source cluster.
79*d5c09012SAndroid Build Coastguard Worker    CREATING = 1;
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker    // The gkebackup agent in the cluster has begun executing the backup
82*d5c09012SAndroid Build Coastguard Worker    // operation.
83*d5c09012SAndroid Build Coastguard Worker    IN_PROGRESS = 2;
84*d5c09012SAndroid Build Coastguard Worker
85*d5c09012SAndroid Build Coastguard Worker    // The backup operation has completed successfully.
86*d5c09012SAndroid Build Coastguard Worker    SUCCEEDED = 3;
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker    // The backup operation has failed.
89*d5c09012SAndroid Build Coastguard Worker    FAILED = 4;
90*d5c09012SAndroid Build Coastguard Worker
91*d5c09012SAndroid Build Coastguard Worker    // This Backup resource (and its associated artifacts) is in the process
92*d5c09012SAndroid Build Coastguard Worker    // of being deleted.
93*d5c09012SAndroid Build Coastguard Worker    DELETING = 5;
94*d5c09012SAndroid Build Coastguard Worker  }
95*d5c09012SAndroid Build Coastguard Worker
96*d5c09012SAndroid Build Coastguard Worker  // Output only. The fully qualified name of the Backup.
97*d5c09012SAndroid Build Coastguard Worker  // `projects/*/locations/*/backupPlans/*/backups/*`
98*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // Output only. Server generated global unique identifier of
101*d5c09012SAndroid Build Coastguard Worker  // [UUID4](https://en.wikipedia.org/wiki/Universally_unique_identifier)
102*d5c09012SAndroid Build Coastguard Worker  string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
103*d5c09012SAndroid Build Coastguard Worker
104*d5c09012SAndroid Build Coastguard Worker  // Output only. The timestamp when this Backup resource was created.
105*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
106*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
107*d5c09012SAndroid Build Coastguard Worker
108*d5c09012SAndroid Build Coastguard Worker  // Output only. The timestamp when this Backup resource was last updated.
109*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 4
110*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker  // Output only. This flag indicates whether this Backup resource was created
113*d5c09012SAndroid Build Coastguard Worker  // manually by a user or via a schedule in the BackupPlan. A value of True
114*d5c09012SAndroid Build Coastguard Worker  // means that the Backup was created manually.
115*d5c09012SAndroid Build Coastguard Worker  bool manual = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
116*d5c09012SAndroid Build Coastguard Worker
117*d5c09012SAndroid Build Coastguard Worker  // Optional. A set of custom labels supplied by user.
118*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Optional. Minimum age for this Backup (in days). If this field is set to a
121*d5c09012SAndroid Build Coastguard Worker  // non-zero value, the Backup will be "locked" against deletion (either manual
122*d5c09012SAndroid Build Coastguard Worker  // or automatic deletion) for the number of days provided (measured from the
123*d5c09012SAndroid Build Coastguard Worker  // creation time of the Backup).  MUST be an integer value between 0-90
124*d5c09012SAndroid Build Coastguard Worker  // (inclusive).
125*d5c09012SAndroid Build Coastguard Worker  //
126*d5c09012SAndroid Build Coastguard Worker  // Defaults to parent BackupPlan's
127*d5c09012SAndroid Build Coastguard Worker  // [backup_delete_lock_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_delete_lock_days]
128*d5c09012SAndroid Build Coastguard Worker  // setting and may only be increased
129*d5c09012SAndroid Build Coastguard Worker  // (either at creation time or in a subsequent update).
130*d5c09012SAndroid Build Coastguard Worker  int32 delete_lock_days = 7 [(google.api.field_behavior) = OPTIONAL];
131*d5c09012SAndroid Build Coastguard Worker
132*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which an existing delete lock will expire for this
133*d5c09012SAndroid Build Coastguard Worker  // backup (calculated from create_time +
134*d5c09012SAndroid Build Coastguard Worker  // [delete_lock_days][google.cloud.gkebackup.v1.Backup.delete_lock_days]).
135*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp delete_lock_expire_time = 8
136*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker  // Optional. The age (in days) after which this Backup will be automatically
139*d5c09012SAndroid Build Coastguard Worker  // deleted. Must be an integer value >= 0:
140*d5c09012SAndroid Build Coastguard Worker  //
141*d5c09012SAndroid Build Coastguard Worker  // - If 0, no automatic deletion will occur for this Backup.
142*d5c09012SAndroid Build Coastguard Worker  // - If not 0, this must be >=
143*d5c09012SAndroid Build Coastguard Worker  // [delete_lock_days][google.cloud.gkebackup.v1.Backup.delete_lock_days] and
144*d5c09012SAndroid Build Coastguard Worker  // <= 365.
145*d5c09012SAndroid Build Coastguard Worker  //
146*d5c09012SAndroid Build Coastguard Worker  // Once a Backup is created, this value may only be increased.
147*d5c09012SAndroid Build Coastguard Worker  //
148*d5c09012SAndroid Build Coastguard Worker  // Defaults to the parent BackupPlan's
149*d5c09012SAndroid Build Coastguard Worker  // [backup_retain_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_retain_days]
150*d5c09012SAndroid Build Coastguard Worker  // value.
151*d5c09012SAndroid Build Coastguard Worker  int32 retain_days = 9 [(google.api.field_behavior) = OPTIONAL];
152*d5c09012SAndroid Build Coastguard Worker
153*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which this Backup will be automatically deleted
154*d5c09012SAndroid Build Coastguard Worker  // (calculated from create_time +
155*d5c09012SAndroid Build Coastguard Worker  // [retain_days][google.cloud.gkebackup.v1.Backup.retain_days]).
156*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp retain_expire_time = 10
157*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker  // Output only. The customer managed encryption key that was used to encrypt
160*d5c09012SAndroid Build Coastguard Worker  // the Backup's artifacts.  Inherited from the parent BackupPlan's
161*d5c09012SAndroid Build Coastguard Worker  // [encryption_key][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.encryption_key]
162*d5c09012SAndroid Build Coastguard Worker  // value.
163*d5c09012SAndroid Build Coastguard Worker  EncryptionKey encryption_key = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker  // Defines the "scope" of the Backup - which namespaced resources in the
166*d5c09012SAndroid Build Coastguard Worker  // cluster were included in the Backup.  Inherited from the parent
167*d5c09012SAndroid Build Coastguard Worker  // BackupPlan's
168*d5c09012SAndroid Build Coastguard Worker  // [backup_scope][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.backup_scope]
169*d5c09012SAndroid Build Coastguard Worker  // value.
170*d5c09012SAndroid Build Coastguard Worker  oneof backup_scope {
171*d5c09012SAndroid Build Coastguard Worker    // Output only. If True, all namespaces were included in the Backup.
172*d5c09012SAndroid Build Coastguard Worker    bool all_namespaces = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker    // Output only. If set, the list of namespaces that were included in the
175*d5c09012SAndroid Build Coastguard Worker    // Backup.
176*d5c09012SAndroid Build Coastguard Worker    Namespaces selected_namespaces = 13
177*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
178*d5c09012SAndroid Build Coastguard Worker
179*d5c09012SAndroid Build Coastguard Worker    // Output only. If set, the list of ProtectedApplications whose resources
180*d5c09012SAndroid Build Coastguard Worker    // were included in the Backup.
181*d5c09012SAndroid Build Coastguard Worker    NamespacedNames selected_applications = 14
182*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
183*d5c09012SAndroid Build Coastguard Worker  }
184*d5c09012SAndroid Build Coastguard Worker
185*d5c09012SAndroid Build Coastguard Worker  // Output only. Whether or not the Backup contains volume data.  Controlled by
186*d5c09012SAndroid Build Coastguard Worker  // the parent BackupPlan's
187*d5c09012SAndroid Build Coastguard Worker  // [include_volume_data][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.include_volume_data]
188*d5c09012SAndroid Build Coastguard Worker  // value.
189*d5c09012SAndroid Build Coastguard Worker  bool contains_volume_data = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
190*d5c09012SAndroid Build Coastguard Worker
191*d5c09012SAndroid Build Coastguard Worker  // Output only. Whether or not the Backup contains Kubernetes Secrets.
192*d5c09012SAndroid Build Coastguard Worker  // Controlled by the parent BackupPlan's
193*d5c09012SAndroid Build Coastguard Worker  // [include_secrets][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.include_secrets]
194*d5c09012SAndroid Build Coastguard Worker  // value.
195*d5c09012SAndroid Build Coastguard Worker  bool contains_secrets = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
196*d5c09012SAndroid Build Coastguard Worker
197*d5c09012SAndroid Build Coastguard Worker  // Output only. Information about the GKE cluster from which this Backup was
198*d5c09012SAndroid Build Coastguard Worker  // created.
199*d5c09012SAndroid Build Coastguard Worker  ClusterMetadata cluster_metadata = 17
200*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
201*d5c09012SAndroid Build Coastguard Worker
202*d5c09012SAndroid Build Coastguard Worker  // Output only. Current state of the Backup
203*d5c09012SAndroid Build Coastguard Worker  State state = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
204*d5c09012SAndroid Build Coastguard Worker
205*d5c09012SAndroid Build Coastguard Worker  // Output only. Human-readable description of why the backup is in the current
206*d5c09012SAndroid Build Coastguard Worker  // `state`.
207*d5c09012SAndroid Build Coastguard Worker  string state_reason = 19 [(google.api.field_behavior) = OUTPUT_ONLY];
208*d5c09012SAndroid Build Coastguard Worker
209*d5c09012SAndroid Build Coastguard Worker  // Output only. Completion time of the Backup
210*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp complete_time = 20
211*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
212*d5c09012SAndroid Build Coastguard Worker
213*d5c09012SAndroid Build Coastguard Worker  // Output only. The total number of Kubernetes resources included in the
214*d5c09012SAndroid Build Coastguard Worker  // Backup.
215*d5c09012SAndroid Build Coastguard Worker  int32 resource_count = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
216*d5c09012SAndroid Build Coastguard Worker
217*d5c09012SAndroid Build Coastguard Worker  // Output only. The total number of volume backups contained in the Backup.
218*d5c09012SAndroid Build Coastguard Worker  int32 volume_count = 22 [(google.api.field_behavior) = OUTPUT_ONLY];
219*d5c09012SAndroid Build Coastguard Worker
220*d5c09012SAndroid Build Coastguard Worker  // Output only. The total size of the Backup in bytes = config backup size +
221*d5c09012SAndroid Build Coastguard Worker  // sum(volume backup sizes)
222*d5c09012SAndroid Build Coastguard Worker  int64 size_bytes = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
223*d5c09012SAndroid Build Coastguard Worker
224*d5c09012SAndroid Build Coastguard Worker  // Output only. `etag` is used for optimistic concurrency control as a way to
225*d5c09012SAndroid Build Coastguard Worker  // help prevent simultaneous updates of a backup from overwriting each other.
226*d5c09012SAndroid Build Coastguard Worker  // It is strongly suggested that systems make use of the `etag` in the
227*d5c09012SAndroid Build Coastguard Worker  // read-modify-write cycle to perform backup updates in order to avoid
228*d5c09012SAndroid Build Coastguard Worker  // race conditions: An `etag` is returned in the response to `GetBackup`,
229*d5c09012SAndroid Build Coastguard Worker  // and systems are expected to put that etag in the request to
230*d5c09012SAndroid Build Coastguard Worker  // `UpdateBackup` or `DeleteBackup` to ensure that their change will be
231*d5c09012SAndroid Build Coastguard Worker  // applied to the same version of the resource.
232*d5c09012SAndroid Build Coastguard Worker  string etag = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
233*d5c09012SAndroid Build Coastguard Worker
234*d5c09012SAndroid Build Coastguard Worker  // Optional. User specified descriptive string for this Backup.
235*d5c09012SAndroid Build Coastguard Worker  string description = 25 [(google.api.field_behavior) = OPTIONAL];
236*d5c09012SAndroid Build Coastguard Worker
237*d5c09012SAndroid Build Coastguard Worker  // Output only. The total number of Kubernetes Pods contained in the Backup.
238*d5c09012SAndroid Build Coastguard Worker  int32 pod_count = 26 [(google.api.field_behavior) = OUTPUT_ONLY];
239*d5c09012SAndroid Build Coastguard Worker
240*d5c09012SAndroid Build Coastguard Worker  // Output only. The size of the config backup in bytes.
241*d5c09012SAndroid Build Coastguard Worker  int64 config_backup_size_bytes = 27
242*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
243*d5c09012SAndroid Build Coastguard Worker}
244