1{
2 "auth": {
3 "oauth2": {
4 "scopes": {
5 "https://www.googleapis.com/auth/cloud-platform": {
6 "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
7 }
8 }
9 }
10 },
11 "basePath": "",
12 "baseUrl": "https://baremetalsolution.googleapis.com/",
13 "batchPath": "batch",
14 "description": "Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center.",
15 "discoveryVersion": "v1",
16 "documentationLink": "https://cloud.google.com/bare-metal",
17 "fullyEncodeReservedExpansion": true,
18 "icons": {
19 "x16": "http://www.google.com/images/icons/product/search-16.gif",
20 "x32": "http://www.google.com/images/icons/product/search-32.gif"
21 },
22 "id": "baremetalsolution:v1alpha1",
23 "kind": "discovery#restDescription",
24 "mtlsRootUrl": "https://baremetalsolution.mtls.googleapis.com/",
25 "name": "baremetalsolution",
26 "ownerDomain": "google.com",
27 "ownerName": "Google",
28 "parameters": {
29 "$.xgafv": {
30 "description": "V1 error format.",
31 "enum": [
32 "1",
33 "2"
34 ],
35 "enumDescriptions": [
36 "v1 error format",
37 "v2 error format"
38 ],
39 "location": "query",
40 "type": "string"
41 },
42 "access_token": {
43 "description": "OAuth access token.",
44 "location": "query",
45 "type": "string"
46 },
47 "alt": {
48 "default": "json",
49 "description": "Data format for response.",
50 "enum": [
51 "json",
52 "media",
53 "proto"
54 ],
55 "enumDescriptions": [
56 "Responses with Content-Type of application/json",
57 "Media download with context-dependent Content-Type",
58 "Responses with Content-Type of application/x-protobuf"
59 ],
60 "location": "query",
61 "type": "string"
62 },
63 "callback": {
64 "description": "JSONP",
65 "location": "query",
66 "type": "string"
67 },
68 "fields": {
69 "description": "Selector specifying which fields to include in a partial response.",
70 "location": "query",
71 "type": "string"
72 },
73 "key": {
74 "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
75 "location": "query",
76 "type": "string"
77 },
78 "oauth_token": {
79 "description": "OAuth 2.0 token for the current user.",
80 "location": "query",
81 "type": "string"
82 },
83 "prettyPrint": {
84 "default": "true",
85 "description": "Returns response with indentations and line breaks.",
86 "location": "query",
87 "type": "boolean"
88 },
89 "quotaUser": {
90 "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
91 "location": "query",
92 "type": "string"
93 },
94 "uploadType": {
95 "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
96 "location": "query",
97 "type": "string"
98 },
99 "upload_protocol": {
100 "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
101 "location": "query",
102 "type": "string"
103 }
104 },
105 "protocol": "rest",
106 "resources": {
107 "projects": {
108 "resources": {
109 "locations": {
110 "methods": {
111 "submitProvisioningConfig": {
112 "description": "Submit a provisiong configuration for a given project.",
113 "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}:submitProvisioningConfig",
114 "httpMethod": "POST",
115 "id": "baremetalsolution.projects.locations.submitProvisioningConfig",
116 "parameterOrder": [
117 "project",
118 "location"
119 ],
120 "parameters": {
121 "location": {
122 "description": "Required. The target location of the provisioning request.",
123 "location": "path",
124 "pattern": "^locations/[^/]+$",
125 "required": true,
126 "type": "string"
127 },
128 "project": {
129 "description": "Required. The target project of the provisioning request.",
130 "location": "path",
131 "pattern": "^projects/[^/]+$",
132 "required": true,
133 "type": "string"
134 }
135 },
136 "path": "v1alpha1/{+project}/{+location}:submitProvisioningConfig",
137 "request": {
138 "$ref": "SubmitProvisioningConfigRequest"
139 },
140 "response": {
141 "$ref": "ProvisioningConfig"
142 },
143 "scopes": [
144 "https://www.googleapis.com/auth/cloud-platform"
145 ]
146 }
147 }
148 },
149 "provisioningQuotas": {
150 "methods": {
151 "list": {
152 "description": "List the budget details to provision resources on a given project.",
153 "flatPath": "v1alpha1/projects/{projectsId}/provisioningQuotas",
154 "httpMethod": "GET",
155 "id": "baremetalsolution.projects.provisioningQuotas.list",
156 "parameterOrder": [
157 "parent"
158 ],
159 "parameters": {
160 "pageSize": {
161 "description": "The maximum number of items to return.",
162 "format": "int32",
163 "location": "query",
164 "type": "integer"
165 },
166 "pageToken": {
167 "description": "The next_page_token value returned from a previous List request, if any.",
168 "location": "query",
169 "type": "string"
170 },
171 "parent": {
172 "description": "Required. The parent project containing the provisioning quotas.",
173 "location": "path",
174 "pattern": "^projects/[^/]+$",
175 "required": true,
176 "type": "string"
177 }
178 },
179 "path": "v1alpha1/{+parent}/provisioningQuotas",
180 "response": {
181 "$ref": "ListProvisioningQuotasResponse"
182 },
183 "scopes": [
184 "https://www.googleapis.com/auth/cloud-platform"
185 ]
186 }
187 }
188 }
189 }
190 }
191 },
192 "revision": "20220209",
193 "rootUrl": "https://baremetalsolution.googleapis.com/",
194 "schemas": {
195 "InstanceConfig": {
196 "description": "Configuration parameters for a new instance.",
197 "id": "InstanceConfig",
198 "properties": {
199 "clientNetwork": {
200 "$ref": "NetworkAddress",
201 "description": "Client network address."
202 },
203 "hyperthreading": {
204 "description": "Whether the instance should be provisioned with Hyperthreading enabled.",
205 "type": "boolean"
206 },
207 "id": {
208 "description": "A transient unique identifier to idenfity an instance within an ProvisioningConfig request.",
209 "type": "string"
210 },
211 "instanceType": {
212 "description": "Instance type.",
213 "type": "string"
214 },
215 "location": {
216 "description": "Location where to deploy the instance.",
217 "type": "string"
218 },
219 "osImage": {
220 "description": "OS image to initialize the instance.",
221 "type": "string"
222 },
223 "privateNetwork": {
224 "$ref": "NetworkAddress",
225 "description": "Private network address, if any."
226 },
227 "userNote": {
228 "description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
229 "type": "string"
230 }
231 },
232 "type": "object"
233 },
234 "InstanceQuota": {
235 "description": "A resource budget.",
236 "id": "InstanceQuota",
237 "properties": {
238 "availableMachineCount": {
239 "description": "Number of machines than can be created for the given location and instance_type.",
240 "format": "int32",
241 "type": "integer"
242 },
243 "instanceType": {
244 "description": "Instance type.",
245 "type": "string"
246 },
247 "location": {
248 "description": "Location where the quota applies.",
249 "type": "string"
250 }
251 },
252 "type": "object"
253 },
254 "ListProvisioningQuotasResponse": {
255 "description": "Response for ListProvisioningQuotas.",
256 "id": "ListProvisioningQuotasResponse",
257 "properties": {
258 "nextPageToken": {
259 "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
260 "type": "string"
261 },
262 "provisioningQuotas": {
263 "description": "The provisioning quotas registered in this project.",
264 "items": {
265 "$ref": "ProvisioningQuota"
266 },
267 "type": "array"
268 }
269 },
270 "type": "object"
271 },
272 "LunRange": {
273 "description": "A LUN range.",
274 "id": "LunRange",
275 "properties": {
276 "quantity": {
277 "description": "Number of LUNs to create.",
278 "format": "int32",
279 "type": "integer"
280 },
281 "sizeGb": {
282 "description": "The requested size of each LUN, in GB.",
283 "format": "int32",
284 "type": "integer"
285 }
286 },
287 "type": "object"
288 },
289 "NetworkAddress": {
290 "description": "A network.",
291 "id": "NetworkAddress",
292 "properties": {
293 "address": {
294 "description": "IP address to be assigned to the server.",
295 "type": "string"
296 },
297 "existingNetworkId": {
298 "description": "Name of the existing network to use. Will be of the format at--vlan for pre-intake UI networks like for eg, at-123456-vlan001 or any user-defined name like for eg, my-network-name for networks provisioned using intake UI. The field is exclusively filled only in case of an already existing network. Mutually exclusive with network_id.",
299 "type": "string"
300 },
301 "networkId": {
302 "description": "Name of the network to use, within the same ProvisioningConfig request. This represents a new network being provisioned in the same request. Can have any user-defined name like for eg, my-network-name. Mutually exclusive with existing_network_id.",
303 "type": "string"
304 }
305 },
306 "type": "object"
307 },
308 "NetworkConfig": {
309 "description": "Configuration parameters for a new network.",
310 "id": "NetworkConfig",
311 "properties": {
312 "bandwidth": {
313 "description": "Interconnect bandwidth. Set only when type is CLIENT.",
314 "enum": [
315 "BANDWIDTH_UNSPECIFIED",
316 "BW_1_GBPS",
317 "BW_2_GBPS",
318 "BW_5_GBPS",
319 "BW_10_GBPS"
320 ],
321 "enumDescriptions": [
322 "Unspecified value.",
323 "1 Gbps.",
324 "2 Gbps.",
325 "5 Gbps.",
326 "10 Gbps."
327 ],
328 "type": "string"
329 },
330 "cidr": {
331 "description": "CIDR range of the network.",
332 "type": "string"
333 },
334 "id": {
335 "description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.",
336 "type": "string"
337 },
338 "location": {
339 "description": "Location where to deploy the network.",
340 "type": "string"
341 },
342 "serviceCidr": {
343 "description": "Service CIDR, if any.",
344 "enum": [
345 "SERVICE_CIDR_UNSPECIFIED",
346 "DISABLED",
347 "HIGH_26",
348 "HIGH_27",
349 "HIGH_28"
350 ],
351 "enumDescriptions": [
352 "Unspecified value.",
353 "Services are disabled for the given network.",
354 "Use the highest /26 block of the network to host services.",
355 "Use the highest /27 block of the network to host services.",
356 "Use the highest /28 block of the network to host services."
357 ],
358 "type": "string"
359 },
360 "type": {
361 "description": "The type of this network.",
362 "enum": [
363 "TYPE_UNSPECIFIED",
364 "CLIENT",
365 "PRIVATE"
366 ],
367 "enumDescriptions": [
368 "Unspecified value.",
369 "Client network, that is a network peered to a GCP VPC.",
370 "Private network, that is a network local to the BMS POD."
371 ],
372 "type": "string"
373 },
374 "userNote": {
375 "description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
376 "type": "string"
377 },
378 "vlanAttachments": {
379 "description": "List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan).",
380 "items": {
381 "$ref": "VlanAttachment"
382 },
383 "type": "array"
384 }
385 },
386 "type": "object"
387 },
388 "NfsExport": {
389 "description": "A NFS export entry.",
390 "id": "NfsExport",
391 "properties": {
392 "allowDev": {
393 "description": "Allow dev.",
394 "type": "boolean"
395 },
396 "allowSuid": {
397 "description": "Allow the setuid flag.",
398 "type": "boolean"
399 },
400 "cidr": {
401 "description": "A CIDR range.",
402 "type": "string"
403 },
404 "machineId": {
405 "description": "Either a single machine, identified by an ID, or a comma-separated list of machine IDs.",
406 "type": "string"
407 },
408 "networkId": {
409 "description": "Network to use to publish the export.",
410 "type": "string"
411 },
412 "noRootSquash": {
413 "description": "Disable root squashing.",
414 "type": "boolean"
415 },
416 "permissions": {
417 "description": "Export permissions.",
418 "enum": [
419 "PERMISSIONS_UNSPECIFIED",
420 "READ_ONLY",
421 "READ_WRITE"
422 ],
423 "enumDescriptions": [
424 "Unspecified value.",
425 "Read-only permission.",
426 "Read-write permission."
427 ],
428 "type": "string"
429 }
430 },
431 "type": "object"
432 },
433 "ProvisioningConfig": {
434 "description": "An provisioning configuration.",
435 "id": "ProvisioningConfig",
436 "properties": {
437 "instances": {
438 "description": "Instances to be created.",
439 "items": {
440 "$ref": "InstanceConfig"
441 },
442 "type": "array"
443 },
444 "networks": {
445 "description": "Networks to be created.",
446 "items": {
447 "$ref": "NetworkConfig"
448 },
449 "type": "array"
450 },
451 "ticketId": {
452 "description": "A reference to track the request.",
453 "type": "string"
454 },
455 "volumes": {
456 "description": "Volumes to be created.",
457 "items": {
458 "$ref": "VolumeConfig"
459 },
460 "type": "array"
461 }
462 },
463 "type": "object"
464 },
465 "ProvisioningQuota": {
466 "description": "A provisioning quota for a given project.",
467 "id": "ProvisioningQuota",
468 "properties": {
469 "instanceQuota": {
470 "$ref": "InstanceQuota",
471 "description": "Instance quota."
472 }
473 },
474 "type": "object"
475 },
476 "SubmitProvisioningConfigRequest": {
477 "description": "Request for SubmitProvisioningConfig.",
478 "id": "SubmitProvisioningConfigRequest",
479 "properties": {
480 "email": {
481 "description": "Optional. Email provided to send a confirmation with provisioning config to.",
482 "type": "string"
483 },
484 "provisioningConfig": {
485 "$ref": "ProvisioningConfig",
486 "description": "Required. The ProvisioningConfig to submit."
487 }
488 },
489 "type": "object"
490 },
491 "VlanAttachment": {
492 "description": "A GCP vlan attachment.",
493 "id": "VlanAttachment",
494 "properties": {
495 "id": {
496 "description": "Identifier of the VLAN attachment.",
497 "type": "string"
498 },
499 "pairingKey": {
500 "description": "Attachment pairing key.",
501 "type": "string"
502 }
503 },
504 "type": "object"
505 },
506 "VolumeConfig": {
507 "description": "Configuration parameters for a new volume.",
508 "id": "VolumeConfig",
509 "properties": {
510 "id": {
511 "description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.",
512 "type": "string"
513 },
514 "location": {
515 "description": "Location where to deploy the volume.",
516 "type": "string"
517 },
518 "lunRanges": {
519 "description": "LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.",
520 "items": {
521 "$ref": "LunRange"
522 },
523 "type": "array"
524 },
525 "machineIds": {
526 "description": "Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.",
527 "items": {
528 "type": "string"
529 },
530 "type": "array"
531 },
532 "nfsExports": {
533 "description": "NFS exports. Set only when protocol is PROTOCOL_NFS.",
534 "items": {
535 "$ref": "NfsExport"
536 },
537 "type": "array"
538 },
539 "protocol": {
540 "description": "Volume protocol.",
541 "enum": [
542 "PROTOCOL_UNSPECIFIED",
543 "PROTOCOL_FC",
544 "PROTOCOL_NFS"
545 ],
546 "enumDescriptions": [
547 "Unspecified value.",
548 "Fibre channel.",
549 "Network file system."
550 ],
551 "type": "string"
552 },
553 "sizeGb": {
554 "description": "The requested size of this volume, in GB. This will be updated in a later iteration with a generic size field.",
555 "format": "int32",
556 "type": "integer"
557 },
558 "snapshotsEnabled": {
559 "description": "Whether snapshots should be enabled.",
560 "type": "boolean"
561 },
562 "type": {
563 "description": "The type of this Volume.",
564 "enum": [
565 "TYPE_UNSPECIFIED",
566 "FLASH",
567 "DISK"
568 ],
569 "enumDescriptions": [
570 "The unspecified type.",
571 "This Volume is on flash.",
572 "This Volume is on disk."
573 ],
574 "type": "string"
575 },
576 "userNote": {
577 "description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
578 "type": "string"
579 }
580 },
581 "type": "object"
582 }
583 },
584 "servicePath": "",
585 "title": "Bare Metal Solution API",
586 "version": "v1alpha1",
587 "version_module": true
588}
View as plain text