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