xref: /aosp_15_r20/external/googleapis/google/cloud/baremetalsolution/v2/lun.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.baremetalsolution.v2;
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/protobuf/timestamp.proto";
22*d5c09012SAndroid Build Coastguard Worker
23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.BareMetalSolution.V2";
24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/baremetalsolution/apiv2/baremetalsolutionpb;baremetalsolutionpb";
25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "LunProto";
27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.baremetalsolution.v2";
28*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\BareMetalSolution\\V2";
29*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::BareMetalSolution::V2";
30*d5c09012SAndroid Build Coastguard Worker
31*d5c09012SAndroid Build Coastguard Worker// A storage volume logical unit number (LUN).
32*d5c09012SAndroid Build Coastguard Workermessage Lun {
33*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
34*d5c09012SAndroid Build Coastguard Worker    type: "baremetalsolution.googleapis.com/Lun"
35*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/volumes/{volume}/luns/{lun}"
36*d5c09012SAndroid Build Coastguard Worker  };
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker  // The possible states for the LUN.
39*d5c09012SAndroid Build Coastguard Worker  enum State {
40*d5c09012SAndroid Build Coastguard Worker    // The LUN is in an unknown state.
41*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
42*d5c09012SAndroid Build Coastguard Worker
43*d5c09012SAndroid Build Coastguard Worker    // The LUN is being created.
44*d5c09012SAndroid Build Coastguard Worker    CREATING = 1;
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker    // The LUN is being updated.
47*d5c09012SAndroid Build Coastguard Worker    UPDATING = 2;
48*d5c09012SAndroid Build Coastguard Worker
49*d5c09012SAndroid Build Coastguard Worker    // The LUN is ready for use.
50*d5c09012SAndroid Build Coastguard Worker    READY = 3;
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard Worker    // The LUN has been requested to be deleted.
53*d5c09012SAndroid Build Coastguard Worker    DELETING = 4;
54*d5c09012SAndroid Build Coastguard Worker
55*d5c09012SAndroid Build Coastguard Worker    // The LUN is in cool off state. It will be deleted after `expire_time`.
56*d5c09012SAndroid Build Coastguard Worker    COOL_OFF = 5;
57*d5c09012SAndroid Build Coastguard Worker  }
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker  // Display the operating systems present for the LUN multiprotocol type.
60*d5c09012SAndroid Build Coastguard Worker  enum MultiprotocolType {
61*d5c09012SAndroid Build Coastguard Worker    // Server has no OS specified.
62*d5c09012SAndroid Build Coastguard Worker    MULTIPROTOCOL_TYPE_UNSPECIFIED = 0;
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker    // Server with Linux OS.
65*d5c09012SAndroid Build Coastguard Worker    LINUX = 1;
66*d5c09012SAndroid Build Coastguard Worker  }
67*d5c09012SAndroid Build Coastguard Worker
68*d5c09012SAndroid Build Coastguard Worker  // The storage types for a LUN.
69*d5c09012SAndroid Build Coastguard Worker  enum StorageType {
70*d5c09012SAndroid Build Coastguard Worker    // The storage type for this LUN is unknown.
71*d5c09012SAndroid Build Coastguard Worker    STORAGE_TYPE_UNSPECIFIED = 0;
72*d5c09012SAndroid Build Coastguard Worker
73*d5c09012SAndroid Build Coastguard Worker    // This storage type for this LUN is SSD.
74*d5c09012SAndroid Build Coastguard Worker    SSD = 1;
75*d5c09012SAndroid Build Coastguard Worker
76*d5c09012SAndroid Build Coastguard Worker    // This storage type for this LUN is HDD.
77*d5c09012SAndroid Build Coastguard Worker    HDD = 2;
78*d5c09012SAndroid Build Coastguard Worker  }
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker  // Output only. The name of the LUN.
81*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
82*d5c09012SAndroid Build Coastguard Worker
83*d5c09012SAndroid Build Coastguard Worker  // An identifier for the LUN, generated by the backend.
84*d5c09012SAndroid Build Coastguard Worker  string id = 10;
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker  // The state of this storage volume.
87*d5c09012SAndroid Build Coastguard Worker  State state = 2;
88*d5c09012SAndroid Build Coastguard Worker
89*d5c09012SAndroid Build Coastguard Worker  // The size of this LUN, in gigabytes.
90*d5c09012SAndroid Build Coastguard Worker  int64 size_gb = 3;
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // The LUN multiprotocol type ensures the characteristics of the LUN are
93*d5c09012SAndroid Build Coastguard Worker  // optimized for each operating system.
94*d5c09012SAndroid Build Coastguard Worker  MultiprotocolType multiprotocol_type = 4;
95*d5c09012SAndroid Build Coastguard Worker
96*d5c09012SAndroid Build Coastguard Worker  // Display the storage volume for this LUN.
97*d5c09012SAndroid Build Coastguard Worker  string storage_volume = 5 [(google.api.resource_reference) = {
98*d5c09012SAndroid Build Coastguard Worker    type: "baremetalsolution.googleapis.com/Volume"
99*d5c09012SAndroid Build Coastguard Worker  }];
100*d5c09012SAndroid Build Coastguard Worker
101*d5c09012SAndroid Build Coastguard Worker  // Display if this LUN can be shared between multiple physical servers.
102*d5c09012SAndroid Build Coastguard Worker  bool shareable = 6;
103*d5c09012SAndroid Build Coastguard Worker
104*d5c09012SAndroid Build Coastguard Worker  // Display if this LUN is a boot LUN.
105*d5c09012SAndroid Build Coastguard Worker  bool boot_lun = 7;
106*d5c09012SAndroid Build Coastguard Worker
107*d5c09012SAndroid Build Coastguard Worker  // The storage type for this LUN.
108*d5c09012SAndroid Build Coastguard Worker  StorageType storage_type = 8;
109*d5c09012SAndroid Build Coastguard Worker
110*d5c09012SAndroid Build Coastguard Worker  // The WWID for this LUN.
111*d5c09012SAndroid Build Coastguard Worker  string wwid = 9;
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker  // Output only. Time after which LUN will be fully deleted.
114*d5c09012SAndroid Build Coastguard Worker  // It is filled only for LUNs in COOL_OFF state.
115*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp expire_time = 11
116*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
117*d5c09012SAndroid Build Coastguard Worker
118*d5c09012SAndroid Build Coastguard Worker  // Output only. Instances this Lun is attached to.
119*d5c09012SAndroid Build Coastguard Worker  repeated string instances = 12 [
120*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
121*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
122*d5c09012SAndroid Build Coastguard Worker      type: "baremetalsolution.googleapis.com/Instance"
123*d5c09012SAndroid Build Coastguard Worker    }
124*d5c09012SAndroid Build Coastguard Worker  ];
125*d5c09012SAndroid Build Coastguard Worker}
126*d5c09012SAndroid Build Coastguard Worker
127*d5c09012SAndroid Build Coastguard Worker// Message for requesting storage lun information.
128*d5c09012SAndroid Build Coastguard Workermessage GetLunRequest {
129*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the resource.
130*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
131*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
132*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
133*d5c09012SAndroid Build Coastguard Worker      type: "baremetalsolution.googleapis.com/Lun"
134*d5c09012SAndroid Build Coastguard Worker    }
135*d5c09012SAndroid Build Coastguard Worker  ];
136*d5c09012SAndroid Build Coastguard Worker}
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker// Message for requesting a list of storage volume luns.
139*d5c09012SAndroid Build Coastguard Workermessage ListLunsRequest {
140*d5c09012SAndroid Build Coastguard Worker  // Required. Parent value for ListLunsRequest.
141*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
142*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
143*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
144*d5c09012SAndroid Build Coastguard Worker      type: "baremetalsolution.googleapis.com/Volume"
145*d5c09012SAndroid Build Coastguard Worker    }
146*d5c09012SAndroid Build Coastguard Worker  ];
147*d5c09012SAndroid Build Coastguard Worker
148*d5c09012SAndroid Build Coastguard Worker  // Requested page size. The server might return fewer items than requested.
149*d5c09012SAndroid Build Coastguard Worker  // If unspecified, server will pick an appropriate default.
150*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
151*d5c09012SAndroid Build Coastguard Worker
152*d5c09012SAndroid Build Coastguard Worker  // A token identifying a page of results from the server.
153*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
154*d5c09012SAndroid Build Coastguard Worker}
155*d5c09012SAndroid Build Coastguard Worker
156*d5c09012SAndroid Build Coastguard Worker// Response message containing the list of storage volume luns.
157*d5c09012SAndroid Build Coastguard Workermessage ListLunsResponse {
158*d5c09012SAndroid Build Coastguard Worker  // The list of luns.
159*d5c09012SAndroid Build Coastguard Worker  repeated Lun luns = 1;
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker  // A token identifying a page of results from the server.
162*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
163*d5c09012SAndroid Build Coastguard Worker
164*d5c09012SAndroid Build Coastguard Worker  // Locations that could not be reached.
165*d5c09012SAndroid Build Coastguard Worker  repeated string unreachable = 3;
166*d5c09012SAndroid Build Coastguard Worker}
167*d5c09012SAndroid Build Coastguard Worker
168*d5c09012SAndroid Build Coastguard Worker// Request for skip lun cooloff and delete it.
169*d5c09012SAndroid Build Coastguard Workermessage EvictLunRequest {
170*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the lun.
171*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
172*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
173*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
174*d5c09012SAndroid Build Coastguard Worker      type: "baremetalsolution.googleapis.com/Lun"
175*d5c09012SAndroid Build Coastguard Worker    }
176*d5c09012SAndroid Build Coastguard Worker  ];
177*d5c09012SAndroid Build Coastguard Worker}
178