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/cloud/baremetalsolution/v2/common.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/baremetalsolution/v2/network.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 25*d5c09012SAndroid Build Coastguard Worker 26*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.BareMetalSolution.V2"; 27*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/baremetalsolution/apiv2/baremetalsolutionpb;baremetalsolutionpb"; 28*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 29*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ProvisioningProto"; 30*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.baremetalsolution.v2"; 31*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\BareMetalSolution\\V2"; 32*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::BareMetalSolution::V2"; 33*d5c09012SAndroid Build Coastguard Worker 34*d5c09012SAndroid Build Coastguard Worker// A provisioning configuration. 35*d5c09012SAndroid Build Coastguard Workermessage ProvisioningConfig { 36*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 37*d5c09012SAndroid Build Coastguard Worker type: "baremetalsolution.googleapis.com/ProvisioningConfig" 38*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/provisioningConfigs/{provisioning_config}" 39*d5c09012SAndroid Build Coastguard Worker }; 40*d5c09012SAndroid Build Coastguard Worker 41*d5c09012SAndroid Build Coastguard Worker // The possible states for this ProvisioningConfig. 42*d5c09012SAndroid Build Coastguard Worker enum State { 43*d5c09012SAndroid Build Coastguard Worker // State wasn't specified. 44*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 45*d5c09012SAndroid Build Coastguard Worker 46*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig is a draft and can be freely modified. 47*d5c09012SAndroid Build Coastguard Worker DRAFT = 1; 48*d5c09012SAndroid Build Coastguard Worker 49*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig was already submitted and cannot be modified. 50*d5c09012SAndroid Build Coastguard Worker SUBMITTED = 2; 51*d5c09012SAndroid Build Coastguard Worker 52*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig was in the provisioning state. Initially this state 53*d5c09012SAndroid Build Coastguard Worker // comes from the work order table in big query when SNOW is used. Later 54*d5c09012SAndroid Build Coastguard Worker // this field can be set by the work order API. 55*d5c09012SAndroid Build Coastguard Worker PROVISIONING = 3; 56*d5c09012SAndroid Build Coastguard Worker 57*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig was provisioned, meaning the resources exist. 58*d5c09012SAndroid Build Coastguard Worker PROVISIONED = 4; 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig was validated. A validation tool will be run to 61*d5c09012SAndroid Build Coastguard Worker // set this state. 62*d5c09012SAndroid Build Coastguard Worker VALIDATED = 5; 63*d5c09012SAndroid Build Coastguard Worker 64*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig was canceled. 65*d5c09012SAndroid Build Coastguard Worker CANCELLED = 6; 66*d5c09012SAndroid Build Coastguard Worker 67*d5c09012SAndroid Build Coastguard Worker // The request is submitted for provisioning, with error return. 68*d5c09012SAndroid Build Coastguard Worker FAILED = 7; 69*d5c09012SAndroid Build Coastguard Worker } 70*d5c09012SAndroid Build Coastguard Worker 71*d5c09012SAndroid Build Coastguard Worker // Output only. The system-generated name of the provisioning config. This 72*d5c09012SAndroid Build Coastguard Worker // follows the UUID format. 73*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 74*d5c09012SAndroid Build Coastguard Worker 75*d5c09012SAndroid Build Coastguard Worker // Instances to be created. 76*d5c09012SAndroid Build Coastguard Worker repeated InstanceConfig instances = 2; 77*d5c09012SAndroid Build Coastguard Worker 78*d5c09012SAndroid Build Coastguard Worker // Networks to be created. 79*d5c09012SAndroid Build Coastguard Worker repeated NetworkConfig networks = 3; 80*d5c09012SAndroid Build Coastguard Worker 81*d5c09012SAndroid Build Coastguard Worker // Volumes to be created. 82*d5c09012SAndroid Build Coastguard Worker repeated VolumeConfig volumes = 4; 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker // A generated ticket id to track provisioning request. 85*d5c09012SAndroid Build Coastguard Worker string ticket_id = 5; 86*d5c09012SAndroid Build Coastguard Worker 87*d5c09012SAndroid Build Coastguard Worker // A service account to enable customers to access instance credentials upon 88*d5c09012SAndroid Build Coastguard Worker // handover. 89*d5c09012SAndroid Build Coastguard Worker string handover_service_account = 6; 90*d5c09012SAndroid Build Coastguard Worker 91*d5c09012SAndroid Build Coastguard Worker // Email provided to send a confirmation with provisioning config to. 92*d5c09012SAndroid Build Coastguard Worker // Deprecated in favour of email field in request messages. 93*d5c09012SAndroid Build Coastguard Worker string email = 7 [deprecated = true]; 94*d5c09012SAndroid Build Coastguard Worker 95*d5c09012SAndroid Build Coastguard Worker // Output only. State of ProvisioningConfig. 96*d5c09012SAndroid Build Coastguard Worker State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // Optional. Location name of this ProvisioningConfig. 99*d5c09012SAndroid Build Coastguard Worker // It is optional only for Intake UI transition period. 100*d5c09012SAndroid Build Coastguard Worker string location = 9 [(google.api.field_behavior) = OPTIONAL]; 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Output only. Last update timestamp. 103*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 10 104*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 105*d5c09012SAndroid Build Coastguard Worker 106*d5c09012SAndroid Build Coastguard Worker // Output only. URI to Cloud Console UI view of this provisioning config. 107*d5c09012SAndroid Build Coastguard Worker string cloud_console_uri = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 108*d5c09012SAndroid Build Coastguard Worker 109*d5c09012SAndroid Build Coastguard Worker // If true, VPC SC is enabled for the cluster. 110*d5c09012SAndroid Build Coastguard Worker bool vpc_sc_enabled = 12; 111*d5c09012SAndroid Build Coastguard Worker 112*d5c09012SAndroid Build Coastguard Worker // Optional status messages associated with the FAILED state. 113*d5c09012SAndroid Build Coastguard Worker string status_message = 13; 114*d5c09012SAndroid Build Coastguard Worker 115*d5c09012SAndroid Build Coastguard Worker // Optional. The user-defined identifier of the provisioning config. 116*d5c09012SAndroid Build Coastguard Worker string custom_id = 14 [(google.api.field_behavior) = OPTIONAL]; 117*d5c09012SAndroid Build Coastguard Worker} 118*d5c09012SAndroid Build Coastguard Worker 119*d5c09012SAndroid Build Coastguard Worker// Request for SubmitProvisioningConfig. 120*d5c09012SAndroid Build Coastguard Workermessage SubmitProvisioningConfigRequest { 121*d5c09012SAndroid Build Coastguard Worker // Required. The parent project and location containing the 122*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig. 123*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 124*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 125*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 126*d5c09012SAndroid Build Coastguard Worker type: "locations.googleapis.com/Location" 127*d5c09012SAndroid Build Coastguard Worker } 128*d5c09012SAndroid Build Coastguard Worker ]; 129*d5c09012SAndroid Build Coastguard Worker 130*d5c09012SAndroid Build Coastguard Worker // Required. The ProvisioningConfig to create. 131*d5c09012SAndroid Build Coastguard Worker ProvisioningConfig provisioning_config = 2 132*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = REQUIRED]; 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker // Optional. Email provided to send a confirmation with provisioning config 135*d5c09012SAndroid Build Coastguard Worker // to. 136*d5c09012SAndroid Build Coastguard Worker string email = 3 [(google.api.field_behavior) = OPTIONAL]; 137*d5c09012SAndroid Build Coastguard Worker} 138*d5c09012SAndroid Build Coastguard Worker 139*d5c09012SAndroid Build Coastguard Worker// Response for SubmitProvisioningConfig. 140*d5c09012SAndroid Build Coastguard Workermessage SubmitProvisioningConfigResponse { 141*d5c09012SAndroid Build Coastguard Worker // The submitted provisioning config. 142*d5c09012SAndroid Build Coastguard Worker ProvisioningConfig provisioning_config = 1; 143*d5c09012SAndroid Build Coastguard Worker} 144*d5c09012SAndroid Build Coastguard Worker 145*d5c09012SAndroid Build Coastguard Worker// A provisioning quota for a given project. 146*d5c09012SAndroid Build Coastguard Workermessage ProvisioningQuota { 147*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 148*d5c09012SAndroid Build Coastguard Worker type: "baremetalsolution.googleapis.com/ProvisioningQuota" 149*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/provisioningQuotas/{provisioning_quota}" 150*d5c09012SAndroid Build Coastguard Worker }; 151*d5c09012SAndroid Build Coastguard Worker 152*d5c09012SAndroid Build Coastguard Worker // The available asset types for intake. 153*d5c09012SAndroid Build Coastguard Worker enum AssetType { 154*d5c09012SAndroid Build Coastguard Worker // The unspecified type. 155*d5c09012SAndroid Build Coastguard Worker ASSET_TYPE_UNSPECIFIED = 0; 156*d5c09012SAndroid Build Coastguard Worker 157*d5c09012SAndroid Build Coastguard Worker // The server asset type. 158*d5c09012SAndroid Build Coastguard Worker ASSET_TYPE_SERVER = 1; 159*d5c09012SAndroid Build Coastguard Worker 160*d5c09012SAndroid Build Coastguard Worker // The storage asset type. 161*d5c09012SAndroid Build Coastguard Worker ASSET_TYPE_STORAGE = 2; 162*d5c09012SAndroid Build Coastguard Worker 163*d5c09012SAndroid Build Coastguard Worker // The network asset type. 164*d5c09012SAndroid Build Coastguard Worker ASSET_TYPE_NETWORK = 3; 165*d5c09012SAndroid Build Coastguard Worker } 166*d5c09012SAndroid Build Coastguard Worker 167*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the provisioning quota. 168*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 169*d5c09012SAndroid Build Coastguard Worker 170*d5c09012SAndroid Build Coastguard Worker // The asset type of this provisioning quota. 171*d5c09012SAndroid Build Coastguard Worker AssetType asset_type = 2; 172*d5c09012SAndroid Build Coastguard Worker 173*d5c09012SAndroid Build Coastguard Worker // The gcp service of the provisioning quota. 174*d5c09012SAndroid Build Coastguard Worker string gcp_service = 3; 175*d5c09012SAndroid Build Coastguard Worker 176*d5c09012SAndroid Build Coastguard Worker // The specific location of the provisioining quota. 177*d5c09012SAndroid Build Coastguard Worker string location = 4; 178*d5c09012SAndroid Build Coastguard Worker 179*d5c09012SAndroid Build Coastguard Worker // The available count of the provisioning quota. 180*d5c09012SAndroid Build Coastguard Worker int32 available_count = 5; 181*d5c09012SAndroid Build Coastguard Worker 182*d5c09012SAndroid Build Coastguard Worker // The quota of one asset type. 183*d5c09012SAndroid Build Coastguard Worker oneof quota { 184*d5c09012SAndroid Build Coastguard Worker // Instance quota. 185*d5c09012SAndroid Build Coastguard Worker InstanceQuota instance_quota = 6; 186*d5c09012SAndroid Build Coastguard Worker } 187*d5c09012SAndroid Build Coastguard Worker 188*d5c09012SAndroid Build Coastguard Worker // Available quantity based on asset type. 189*d5c09012SAndroid Build Coastguard Worker oneof availability { 190*d5c09012SAndroid Build Coastguard Worker // Server count. 191*d5c09012SAndroid Build Coastguard Worker int64 server_count = 7; 192*d5c09012SAndroid Build Coastguard Worker 193*d5c09012SAndroid Build Coastguard Worker // Network bandwidth, Gbps 194*d5c09012SAndroid Build Coastguard Worker int64 network_bandwidth = 8; 195*d5c09012SAndroid Build Coastguard Worker 196*d5c09012SAndroid Build Coastguard Worker // Storage size (GB). 197*d5c09012SAndroid Build Coastguard Worker int64 storage_gib = 9; 198*d5c09012SAndroid Build Coastguard Worker } 199*d5c09012SAndroid Build Coastguard Worker} 200*d5c09012SAndroid Build Coastguard Worker 201*d5c09012SAndroid Build Coastguard Worker// Message for requesting the list of provisioning quotas. 202*d5c09012SAndroid Build Coastguard Workermessage ListProvisioningQuotasRequest { 203*d5c09012SAndroid Build Coastguard Worker // Required. Parent value for ListProvisioningQuotasRequest. 204*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 205*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 206*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 207*d5c09012SAndroid Build Coastguard Worker type: "locations.googleapis.com/Location" 208*d5c09012SAndroid Build Coastguard Worker } 209*d5c09012SAndroid Build Coastguard Worker ]; 210*d5c09012SAndroid Build Coastguard Worker 211*d5c09012SAndroid Build Coastguard Worker // Requested page size. The server might return fewer items than requested. 212*d5c09012SAndroid Build Coastguard Worker // If unspecified, server will pick an appropriate default. 213*d5c09012SAndroid Build Coastguard Worker // Notice that page_size field is not supported and won't be respected in 214*d5c09012SAndroid Build Coastguard Worker // the API request for now, will be updated when pagination is supported. 215*d5c09012SAndroid Build Coastguard Worker int32 page_size = 2; 216*d5c09012SAndroid Build Coastguard Worker 217*d5c09012SAndroid Build Coastguard Worker // A token identifying a page of results from the server. 218*d5c09012SAndroid Build Coastguard Worker string page_token = 3; 219*d5c09012SAndroid Build Coastguard Worker} 220*d5c09012SAndroid Build Coastguard Worker 221*d5c09012SAndroid Build Coastguard Worker// Response message for the list of provisioning quotas. 222*d5c09012SAndroid Build Coastguard Workermessage ListProvisioningQuotasResponse { 223*d5c09012SAndroid Build Coastguard Worker // The provisioning quotas registered in this project. 224*d5c09012SAndroid Build Coastguard Worker repeated ProvisioningQuota provisioning_quotas = 1; 225*d5c09012SAndroid Build Coastguard Worker 226*d5c09012SAndroid Build Coastguard Worker // Token to retrieve the next page of results, or empty if there are no more 227*d5c09012SAndroid Build Coastguard Worker // results in the list. 228*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 229*d5c09012SAndroid Build Coastguard Worker} 230*d5c09012SAndroid Build Coastguard Worker 231*d5c09012SAndroid Build Coastguard Worker// Configuration parameters for a new instance. 232*d5c09012SAndroid Build Coastguard Workermessage InstanceConfig { 233*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 234*d5c09012SAndroid Build Coastguard Worker type: "baremetalsolution.googleapis.com/InstanceConfig" 235*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/instanceConfigs/{instance_config}" 236*d5c09012SAndroid Build Coastguard Worker }; 237*d5c09012SAndroid Build Coastguard Worker 238*d5c09012SAndroid Build Coastguard Worker // A network. 239*d5c09012SAndroid Build Coastguard Worker message NetworkAddress { 240*d5c09012SAndroid Build Coastguard Worker // Id of the network to use, within the same ProvisioningConfig request. 241*d5c09012SAndroid Build Coastguard Worker string network_id = 1; 242*d5c09012SAndroid Build Coastguard Worker 243*d5c09012SAndroid Build Coastguard Worker // IPv4 address to be assigned to the server. 244*d5c09012SAndroid Build Coastguard Worker string address = 2; 245*d5c09012SAndroid Build Coastguard Worker 246*d5c09012SAndroid Build Coastguard Worker // Name of the existing network to use. 247*d5c09012SAndroid Build Coastguard Worker string existing_network_id = 3; 248*d5c09012SAndroid Build Coastguard Worker } 249*d5c09012SAndroid Build Coastguard Worker 250*d5c09012SAndroid Build Coastguard Worker // The network configuration of the instance. 251*d5c09012SAndroid Build Coastguard Worker enum NetworkConfig { 252*d5c09012SAndroid Build Coastguard Worker // The unspecified network configuration. 253*d5c09012SAndroid Build Coastguard Worker NETWORKCONFIG_UNSPECIFIED = 0; 254*d5c09012SAndroid Build Coastguard Worker 255*d5c09012SAndroid Build Coastguard Worker // Instance part of single client network and single private network. 256*d5c09012SAndroid Build Coastguard Worker SINGLE_VLAN = 1; 257*d5c09012SAndroid Build Coastguard Worker 258*d5c09012SAndroid Build Coastguard Worker // Instance part of multiple (or single) client networks and private 259*d5c09012SAndroid Build Coastguard Worker // networks. 260*d5c09012SAndroid Build Coastguard Worker MULTI_VLAN = 2; 261*d5c09012SAndroid Build Coastguard Worker } 262*d5c09012SAndroid Build Coastguard Worker 263*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the instance config. 264*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 265*d5c09012SAndroid Build Coastguard Worker 266*d5c09012SAndroid Build Coastguard Worker // A transient unique identifier to idenfity an instance within an 267*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig request. 268*d5c09012SAndroid Build Coastguard Worker string id = 2; 269*d5c09012SAndroid Build Coastguard Worker 270*d5c09012SAndroid Build Coastguard Worker // Instance type. 271*d5c09012SAndroid Build Coastguard Worker // [Available 272*d5c09012SAndroid Build Coastguard Worker // types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations) 273*d5c09012SAndroid Build Coastguard Worker string instance_type = 3; 274*d5c09012SAndroid Build Coastguard Worker 275*d5c09012SAndroid Build Coastguard Worker // Whether the instance should be provisioned with Hyperthreading enabled. 276*d5c09012SAndroid Build Coastguard Worker bool hyperthreading = 4; 277*d5c09012SAndroid Build Coastguard Worker 278*d5c09012SAndroid Build Coastguard Worker // OS image to initialize the instance. 279*d5c09012SAndroid Build Coastguard Worker // [Available 280*d5c09012SAndroid Build Coastguard Worker // images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations) 281*d5c09012SAndroid Build Coastguard Worker string os_image = 5; 282*d5c09012SAndroid Build Coastguard Worker 283*d5c09012SAndroid Build Coastguard Worker // Client network address. Filled if InstanceConfig.multivlan_config is false. 284*d5c09012SAndroid Build Coastguard Worker NetworkAddress client_network = 6 [deprecated = true]; 285*d5c09012SAndroid Build Coastguard Worker 286*d5c09012SAndroid Build Coastguard Worker // Private network address, if any. Filled if InstanceConfig.multivlan_config 287*d5c09012SAndroid Build Coastguard Worker // is false. 288*d5c09012SAndroid Build Coastguard Worker NetworkAddress private_network = 7 [deprecated = true]; 289*d5c09012SAndroid Build Coastguard Worker 290*d5c09012SAndroid Build Coastguard Worker // User note field, it can be used by customers to add additional information 291*d5c09012SAndroid Build Coastguard Worker // for the BMS Ops team . 292*d5c09012SAndroid Build Coastguard Worker string user_note = 8; 293*d5c09012SAndroid Build Coastguard Worker 294*d5c09012SAndroid Build Coastguard Worker // If true networks can be from different projects of the same vendor account. 295*d5c09012SAndroid Build Coastguard Worker bool account_networks_enabled = 9; 296*d5c09012SAndroid Build Coastguard Worker 297*d5c09012SAndroid Build Coastguard Worker // The type of network configuration on the instance. 298*d5c09012SAndroid Build Coastguard Worker NetworkConfig network_config = 10; 299*d5c09012SAndroid Build Coastguard Worker 300*d5c09012SAndroid Build Coastguard Worker // Server network template name. Filled if InstanceConfig.multivlan_config is 301*d5c09012SAndroid Build Coastguard Worker // true. 302*d5c09012SAndroid Build Coastguard Worker string network_template = 11; 303*d5c09012SAndroid Build Coastguard Worker 304*d5c09012SAndroid Build Coastguard Worker // List of logical interfaces for the instance. The number of logical 305*d5c09012SAndroid Build Coastguard Worker // interfaces will be the same as number of hardware bond/nic on the chosen 306*d5c09012SAndroid Build Coastguard Worker // network template. Filled if InstanceConfig.multivlan_config is true. 307*d5c09012SAndroid Build Coastguard Worker repeated LogicalInterface logical_interfaces = 12; 308*d5c09012SAndroid Build Coastguard Worker 309*d5c09012SAndroid Build Coastguard Worker // List of names of ssh keys used to provision the instance. 310*d5c09012SAndroid Build Coastguard Worker repeated string ssh_key_names = 13; 311*d5c09012SAndroid Build Coastguard Worker} 312*d5c09012SAndroid Build Coastguard Worker 313*d5c09012SAndroid Build Coastguard Worker// Configuration parameters for a new volume. 314*d5c09012SAndroid Build Coastguard Workermessage VolumeConfig { 315*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 316*d5c09012SAndroid Build Coastguard Worker type: "baremetalsolution.googleapis.com/VolumeConfig" 317*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/volumeConfigs/{volume_config}" 318*d5c09012SAndroid Build Coastguard Worker }; 319*d5c09012SAndroid Build Coastguard Worker 320*d5c09012SAndroid Build Coastguard Worker // The types of Volumes. 321*d5c09012SAndroid Build Coastguard Worker enum Type { 322*d5c09012SAndroid Build Coastguard Worker // The unspecified type. 323*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 324*d5c09012SAndroid Build Coastguard Worker 325*d5c09012SAndroid Build Coastguard Worker // This Volume is on flash. 326*d5c09012SAndroid Build Coastguard Worker FLASH = 1; 327*d5c09012SAndroid Build Coastguard Worker 328*d5c09012SAndroid Build Coastguard Worker // This Volume is on disk. 329*d5c09012SAndroid Build Coastguard Worker DISK = 2; 330*d5c09012SAndroid Build Coastguard Worker } 331*d5c09012SAndroid Build Coastguard Worker 332*d5c09012SAndroid Build Coastguard Worker // The protocol used to access the volume. 333*d5c09012SAndroid Build Coastguard Worker enum Protocol { 334*d5c09012SAndroid Build Coastguard Worker // Unspecified value. 335*d5c09012SAndroid Build Coastguard Worker PROTOCOL_UNSPECIFIED = 0; 336*d5c09012SAndroid Build Coastguard Worker 337*d5c09012SAndroid Build Coastguard Worker // Fibre channel. 338*d5c09012SAndroid Build Coastguard Worker PROTOCOL_FC = 1; 339*d5c09012SAndroid Build Coastguard Worker 340*d5c09012SAndroid Build Coastguard Worker // Network file system. 341*d5c09012SAndroid Build Coastguard Worker PROTOCOL_NFS = 2; 342*d5c09012SAndroid Build Coastguard Worker } 343*d5c09012SAndroid Build Coastguard Worker 344*d5c09012SAndroid Build Coastguard Worker // A LUN(Logical Unit Number) range. 345*d5c09012SAndroid Build Coastguard Worker message LunRange { 346*d5c09012SAndroid Build Coastguard Worker // Number of LUNs to create. 347*d5c09012SAndroid Build Coastguard Worker int32 quantity = 1; 348*d5c09012SAndroid Build Coastguard Worker 349*d5c09012SAndroid Build Coastguard Worker // The requested size of each LUN, in GB. 350*d5c09012SAndroid Build Coastguard Worker int32 size_gb = 2; 351*d5c09012SAndroid Build Coastguard Worker } 352*d5c09012SAndroid Build Coastguard Worker 353*d5c09012SAndroid Build Coastguard Worker // A NFS export entry. 354*d5c09012SAndroid Build Coastguard Worker message NfsExport { 355*d5c09012SAndroid Build Coastguard Worker // Permissions that can granted for an export. 356*d5c09012SAndroid Build Coastguard Worker enum Permissions { 357*d5c09012SAndroid Build Coastguard Worker // Unspecified value. 358*d5c09012SAndroid Build Coastguard Worker PERMISSIONS_UNSPECIFIED = 0; 359*d5c09012SAndroid Build Coastguard Worker 360*d5c09012SAndroid Build Coastguard Worker // Read-only permission. 361*d5c09012SAndroid Build Coastguard Worker READ_ONLY = 1; 362*d5c09012SAndroid Build Coastguard Worker 363*d5c09012SAndroid Build Coastguard Worker // Read-write permission. 364*d5c09012SAndroid Build Coastguard Worker READ_WRITE = 2; 365*d5c09012SAndroid Build Coastguard Worker } 366*d5c09012SAndroid Build Coastguard Worker 367*d5c09012SAndroid Build Coastguard Worker // Network to use to publish the export. 368*d5c09012SAndroid Build Coastguard Worker string network_id = 1; 369*d5c09012SAndroid Build Coastguard Worker 370*d5c09012SAndroid Build Coastguard Worker // A client object. 371*d5c09012SAndroid Build Coastguard Worker oneof client { 372*d5c09012SAndroid Build Coastguard Worker // Either a single machine, identified by an ID, or a comma-separated 373*d5c09012SAndroid Build Coastguard Worker // list of machine IDs. 374*d5c09012SAndroid Build Coastguard Worker string machine_id = 2; 375*d5c09012SAndroid Build Coastguard Worker 376*d5c09012SAndroid Build Coastguard Worker // A CIDR range. 377*d5c09012SAndroid Build Coastguard Worker string cidr = 3; 378*d5c09012SAndroid Build Coastguard Worker } 379*d5c09012SAndroid Build Coastguard Worker 380*d5c09012SAndroid Build Coastguard Worker // Export permissions. 381*d5c09012SAndroid Build Coastguard Worker Permissions permissions = 4; 382*d5c09012SAndroid Build Coastguard Worker 383*d5c09012SAndroid Build Coastguard Worker // Disable root squashing, which is a feature of NFS. 384*d5c09012SAndroid Build Coastguard Worker // Root squash is a special mapping of the remote superuser (root) identity 385*d5c09012SAndroid Build Coastguard Worker // when using identity authentication. 386*d5c09012SAndroid Build Coastguard Worker bool no_root_squash = 5; 387*d5c09012SAndroid Build Coastguard Worker 388*d5c09012SAndroid Build Coastguard Worker // Allow the setuid flag. 389*d5c09012SAndroid Build Coastguard Worker bool allow_suid = 6; 390*d5c09012SAndroid Build Coastguard Worker 391*d5c09012SAndroid Build Coastguard Worker // Allow dev flag in NfsShare AllowedClientsRequest. 392*d5c09012SAndroid Build Coastguard Worker bool allow_dev = 7; 393*d5c09012SAndroid Build Coastguard Worker } 394*d5c09012SAndroid Build Coastguard Worker 395*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the volume config. 396*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 397*d5c09012SAndroid Build Coastguard Worker 398*d5c09012SAndroid Build Coastguard Worker // A transient unique identifier to identify a volume within an 399*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig request. 400*d5c09012SAndroid Build Coastguard Worker string id = 2; 401*d5c09012SAndroid Build Coastguard Worker 402*d5c09012SAndroid Build Coastguard Worker // Whether snapshots should be enabled. 403*d5c09012SAndroid Build Coastguard Worker bool snapshots_enabled = 3; 404*d5c09012SAndroid Build Coastguard Worker 405*d5c09012SAndroid Build Coastguard Worker // The type of this Volume. 406*d5c09012SAndroid Build Coastguard Worker Type type = 4; 407*d5c09012SAndroid Build Coastguard Worker 408*d5c09012SAndroid Build Coastguard Worker // Volume protocol. 409*d5c09012SAndroid Build Coastguard Worker Protocol protocol = 5; 410*d5c09012SAndroid Build Coastguard Worker 411*d5c09012SAndroid Build Coastguard Worker // The requested size of this volume, in GB. 412*d5c09012SAndroid Build Coastguard Worker int32 size_gb = 6; 413*d5c09012SAndroid Build Coastguard Worker 414*d5c09012SAndroid Build Coastguard Worker // LUN ranges to be configured. Set only when protocol is PROTOCOL_FC. 415*d5c09012SAndroid Build Coastguard Worker repeated LunRange lun_ranges = 7; 416*d5c09012SAndroid Build Coastguard Worker 417*d5c09012SAndroid Build Coastguard Worker // Machine ids connected to this volume. Set only when protocol is 418*d5c09012SAndroid Build Coastguard Worker // PROTOCOL_FC. 419*d5c09012SAndroid Build Coastguard Worker repeated string machine_ids = 8; 420*d5c09012SAndroid Build Coastguard Worker 421*d5c09012SAndroid Build Coastguard Worker // NFS exports. Set only when protocol is PROTOCOL_NFS. 422*d5c09012SAndroid Build Coastguard Worker repeated NfsExport nfs_exports = 9; 423*d5c09012SAndroid Build Coastguard Worker 424*d5c09012SAndroid Build Coastguard Worker // User note field, it can be used by customers to add additional information 425*d5c09012SAndroid Build Coastguard Worker // for the BMS Ops team . 426*d5c09012SAndroid Build Coastguard Worker string user_note = 10; 427*d5c09012SAndroid Build Coastguard Worker 428*d5c09012SAndroid Build Coastguard Worker // The GCP service of the storage volume. Available gcp_service are in 429*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/bare-metal/docs/bms-planning. 430*d5c09012SAndroid Build Coastguard Worker string gcp_service = 11; 431*d5c09012SAndroid Build Coastguard Worker 432*d5c09012SAndroid Build Coastguard Worker // Performance tier of the Volume. 433*d5c09012SAndroid Build Coastguard Worker // Default is SHARED. 434*d5c09012SAndroid Build Coastguard Worker VolumePerformanceTier performance_tier = 12; 435*d5c09012SAndroid Build Coastguard Worker} 436*d5c09012SAndroid Build Coastguard Worker 437*d5c09012SAndroid Build Coastguard Worker// Configuration parameters for a new network. 438*d5c09012SAndroid Build Coastguard Workermessage NetworkConfig { 439*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 440*d5c09012SAndroid Build Coastguard Worker type: "baremetalsolution.googleapis.com/NetworkConfig" 441*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/networkConfigs/{network_config}" 442*d5c09012SAndroid Build Coastguard Worker }; 443*d5c09012SAndroid Build Coastguard Worker 444*d5c09012SAndroid Build Coastguard Worker // Network type. 445*d5c09012SAndroid Build Coastguard Worker enum Type { 446*d5c09012SAndroid Build Coastguard Worker // Unspecified value. 447*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 448*d5c09012SAndroid Build Coastguard Worker 449*d5c09012SAndroid Build Coastguard Worker // Client network, that is a network peered to a GCP VPC. 450*d5c09012SAndroid Build Coastguard Worker CLIENT = 1; 451*d5c09012SAndroid Build Coastguard Worker 452*d5c09012SAndroid Build Coastguard Worker // Private network, that is a network local to the BMS POD. 453*d5c09012SAndroid Build Coastguard Worker PRIVATE = 2; 454*d5c09012SAndroid Build Coastguard Worker } 455*d5c09012SAndroid Build Coastguard Worker 456*d5c09012SAndroid Build Coastguard Worker // Interconnect bandwidth. 457*d5c09012SAndroid Build Coastguard Worker enum Bandwidth { 458*d5c09012SAndroid Build Coastguard Worker // Unspecified value. 459*d5c09012SAndroid Build Coastguard Worker BANDWIDTH_UNSPECIFIED = 0; 460*d5c09012SAndroid Build Coastguard Worker 461*d5c09012SAndroid Build Coastguard Worker // 1 Gbps. 462*d5c09012SAndroid Build Coastguard Worker BW_1_GBPS = 1; 463*d5c09012SAndroid Build Coastguard Worker 464*d5c09012SAndroid Build Coastguard Worker // 2 Gbps. 465*d5c09012SAndroid Build Coastguard Worker BW_2_GBPS = 2; 466*d5c09012SAndroid Build Coastguard Worker 467*d5c09012SAndroid Build Coastguard Worker // 5 Gbps. 468*d5c09012SAndroid Build Coastguard Worker BW_5_GBPS = 3; 469*d5c09012SAndroid Build Coastguard Worker 470*d5c09012SAndroid Build Coastguard Worker // 10 Gbps. 471*d5c09012SAndroid Build Coastguard Worker BW_10_GBPS = 4; 472*d5c09012SAndroid Build Coastguard Worker } 473*d5c09012SAndroid Build Coastguard Worker 474*d5c09012SAndroid Build Coastguard Worker // A GCP vlan attachment. 475*d5c09012SAndroid Build Coastguard Worker message IntakeVlanAttachment { 476*d5c09012SAndroid Build Coastguard Worker // Identifier of the VLAN attachment. 477*d5c09012SAndroid Build Coastguard Worker string id = 1; 478*d5c09012SAndroid Build Coastguard Worker 479*d5c09012SAndroid Build Coastguard Worker // Attachment pairing key. 480*d5c09012SAndroid Build Coastguard Worker string pairing_key = 2; 481*d5c09012SAndroid Build Coastguard Worker } 482*d5c09012SAndroid Build Coastguard Worker 483*d5c09012SAndroid Build Coastguard Worker // Service network block. 484*d5c09012SAndroid Build Coastguard Worker enum ServiceCidr { 485*d5c09012SAndroid Build Coastguard Worker // Unspecified value. 486*d5c09012SAndroid Build Coastguard Worker SERVICE_CIDR_UNSPECIFIED = 0; 487*d5c09012SAndroid Build Coastguard Worker 488*d5c09012SAndroid Build Coastguard Worker // Services are disabled for the given network. 489*d5c09012SAndroid Build Coastguard Worker DISABLED = 1; 490*d5c09012SAndroid Build Coastguard Worker 491*d5c09012SAndroid Build Coastguard Worker // Use the highest /26 block of the network to host services. 492*d5c09012SAndroid Build Coastguard Worker HIGH_26 = 2; 493*d5c09012SAndroid Build Coastguard Worker 494*d5c09012SAndroid Build Coastguard Worker // Use the highest /27 block of the network to host services. 495*d5c09012SAndroid Build Coastguard Worker HIGH_27 = 3; 496*d5c09012SAndroid Build Coastguard Worker 497*d5c09012SAndroid Build Coastguard Worker // Use the highest /28 block of the network to host services. 498*d5c09012SAndroid Build Coastguard Worker HIGH_28 = 4; 499*d5c09012SAndroid Build Coastguard Worker } 500*d5c09012SAndroid Build Coastguard Worker 501*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the network config. 502*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 503*d5c09012SAndroid Build Coastguard Worker 504*d5c09012SAndroid Build Coastguard Worker // A transient unique identifier to identify a volume within an 505*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig request. 506*d5c09012SAndroid Build Coastguard Worker string id = 2; 507*d5c09012SAndroid Build Coastguard Worker 508*d5c09012SAndroid Build Coastguard Worker // The type of this network, either Client or Private. 509*d5c09012SAndroid Build Coastguard Worker Type type = 3; 510*d5c09012SAndroid Build Coastguard Worker 511*d5c09012SAndroid Build Coastguard Worker // Interconnect bandwidth. Set only when type is CLIENT. 512*d5c09012SAndroid Build Coastguard Worker Bandwidth bandwidth = 4; 513*d5c09012SAndroid Build Coastguard Worker 514*d5c09012SAndroid Build Coastguard Worker // List of VLAN attachments. As of now there are always 2 attachments, but it 515*d5c09012SAndroid Build Coastguard Worker // is going to change in the future (multi vlan). 516*d5c09012SAndroid Build Coastguard Worker repeated IntakeVlanAttachment vlan_attachments = 5; 517*d5c09012SAndroid Build Coastguard Worker 518*d5c09012SAndroid Build Coastguard Worker // CIDR range of the network. 519*d5c09012SAndroid Build Coastguard Worker string cidr = 6; 520*d5c09012SAndroid Build Coastguard Worker 521*d5c09012SAndroid Build Coastguard Worker // Service CIDR, if any. 522*d5c09012SAndroid Build Coastguard Worker ServiceCidr service_cidr = 7; 523*d5c09012SAndroid Build Coastguard Worker 524*d5c09012SAndroid Build Coastguard Worker // User note field, it can be used by customers to add additional information 525*d5c09012SAndroid Build Coastguard Worker // for the BMS Ops team . 526*d5c09012SAndroid Build Coastguard Worker string user_note = 8; 527*d5c09012SAndroid Build Coastguard Worker 528*d5c09012SAndroid Build Coastguard Worker // The GCP service of the network. Available gcp_service are in 529*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/bare-metal/docs/bms-planning. 530*d5c09012SAndroid Build Coastguard Worker string gcp_service = 9; 531*d5c09012SAndroid Build Coastguard Worker 532*d5c09012SAndroid Build Coastguard Worker // Whether the VLAN attachment pair is located in the same project. 533*d5c09012SAndroid Build Coastguard Worker bool vlan_same_project = 10; 534*d5c09012SAndroid Build Coastguard Worker 535*d5c09012SAndroid Build Coastguard Worker // The JumboFramesEnabled option for customer to set. 536*d5c09012SAndroid Build Coastguard Worker bool jumbo_frames_enabled = 11; 537*d5c09012SAndroid Build Coastguard Worker} 538*d5c09012SAndroid Build Coastguard Worker 539*d5c09012SAndroid Build Coastguard Worker// A resource budget. 540*d5c09012SAndroid Build Coastguard Workermessage InstanceQuota { 541*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 542*d5c09012SAndroid Build Coastguard Worker type: "baremetalsolution.googleapis.com/InstanceQuota" 543*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/instanceQuotas/{instance_quota}" 544*d5c09012SAndroid Build Coastguard Worker }; 545*d5c09012SAndroid Build Coastguard Worker 546*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the instance quota. 547*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 548*d5c09012SAndroid Build Coastguard Worker 549*d5c09012SAndroid Build Coastguard Worker // Instance type. 550*d5c09012SAndroid Build Coastguard Worker // Deprecated: use gcp_service. 551*d5c09012SAndroid Build Coastguard Worker string instance_type = 2 [deprecated = true]; 552*d5c09012SAndroid Build Coastguard Worker 553*d5c09012SAndroid Build Coastguard Worker // The gcp service of the provisioning quota. 554*d5c09012SAndroid Build Coastguard Worker string gcp_service = 5; 555*d5c09012SAndroid Build Coastguard Worker 556*d5c09012SAndroid Build Coastguard Worker // Location where the quota applies. 557*d5c09012SAndroid Build Coastguard Worker string location = 3; 558*d5c09012SAndroid Build Coastguard Worker 559*d5c09012SAndroid Build Coastguard Worker // Number of machines than can be created for the given location and 560*d5c09012SAndroid Build Coastguard Worker // instance_type. 561*d5c09012SAndroid Build Coastguard Worker int32 available_machine_count = 4; 562*d5c09012SAndroid Build Coastguard Worker} 563*d5c09012SAndroid Build Coastguard Worker 564*d5c09012SAndroid Build Coastguard Worker// Request for GetProvisioningConfig. 565*d5c09012SAndroid Build Coastguard Workermessage GetProvisioningConfigRequest { 566*d5c09012SAndroid Build Coastguard Worker // Required. Name of the ProvisioningConfig. 567*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 568*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 569*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 570*d5c09012SAndroid Build Coastguard Worker type: "baremetalsolution.googleapis.com/ProvisioningConfig" 571*d5c09012SAndroid Build Coastguard Worker } 572*d5c09012SAndroid Build Coastguard Worker ]; 573*d5c09012SAndroid Build Coastguard Worker} 574*d5c09012SAndroid Build Coastguard Worker 575*d5c09012SAndroid Build Coastguard Worker// Request for CreateProvisioningConfig. 576*d5c09012SAndroid Build Coastguard Workermessage CreateProvisioningConfigRequest { 577*d5c09012SAndroid Build Coastguard Worker // Required. The parent project and location containing the 578*d5c09012SAndroid Build Coastguard Worker // ProvisioningConfig. 579*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 580*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 581*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 582*d5c09012SAndroid Build Coastguard Worker type: "locations.googleapis.com/Location" 583*d5c09012SAndroid Build Coastguard Worker } 584*d5c09012SAndroid Build Coastguard Worker ]; 585*d5c09012SAndroid Build Coastguard Worker 586*d5c09012SAndroid Build Coastguard Worker // Required. The ProvisioningConfig to create. 587*d5c09012SAndroid Build Coastguard Worker ProvisioningConfig provisioning_config = 2 588*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = REQUIRED]; 589*d5c09012SAndroid Build Coastguard Worker 590*d5c09012SAndroid Build Coastguard Worker // Optional. Email provided to send a confirmation with provisioning config 591*d5c09012SAndroid Build Coastguard Worker // to. 592*d5c09012SAndroid Build Coastguard Worker string email = 3 [(google.api.field_behavior) = OPTIONAL]; 593*d5c09012SAndroid Build Coastguard Worker} 594*d5c09012SAndroid Build Coastguard Worker 595*d5c09012SAndroid Build Coastguard Worker// Message for updating a ProvisioningConfig. 596*d5c09012SAndroid Build Coastguard Workermessage UpdateProvisioningConfigRequest { 597*d5c09012SAndroid Build Coastguard Worker // Required. The ProvisioningConfig to update. 598*d5c09012SAndroid Build Coastguard Worker ProvisioningConfig provisioning_config = 1 599*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = REQUIRED]; 600*d5c09012SAndroid Build Coastguard Worker 601*d5c09012SAndroid Build Coastguard Worker // Required. The list of fields to update. 602*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 2 603*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = REQUIRED]; 604*d5c09012SAndroid Build Coastguard Worker 605*d5c09012SAndroid Build Coastguard Worker // Optional. Email provided to send a confirmation with provisioning config 606*d5c09012SAndroid Build Coastguard Worker // to. 607*d5c09012SAndroid Build Coastguard Worker string email = 3 [(google.api.field_behavior) = OPTIONAL]; 608*d5c09012SAndroid Build Coastguard Worker} 609