Crusoe VMs API
The VMs API from Crusoe — 6 operation(s) for vms.
The VMs API from Crusoe — 6 operation(s) for vms.
swagger: '2.0'
info:
description: The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products.
title: Crusoe Cloud API Gateway Audit Logs VMs API
version: v1alpha5
host: api.crusoecloud.com
basePath: /v1alpha5
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: VMs
paths:
/projects/{project_id}/compute/vms/bulk-instances:
post:
tags:
- VMs
summary: Create new VM instances owned by the logged in user.
operationId: bulkCreateInstance
parameters:
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- name: Body
in: body
required: true
schema:
$ref: '#/definitions/BulkInstancePostRequestV1Alpha5'
responses:
'200':
$ref: '#/responses/asyncOperationResponse'
'400':
$ref: '#/responses/badReqError'
'401':
$ref: '#/responses/authError'
'403':
$ref: '#/responses/permissionsError'
'500':
$ref: '#/responses/serverError'
/projects/{project_id}/compute/vms/instances:
get:
tags:
- VMs
summary: Retrieve details about all VMs that the logged in user owns or has access to.
operationId: listInstances
parameters:
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: IDs
name: ids
in: query
- type: string
example: my-first-vm
x-go-name: Names
name: names
in: query
- type: string
example: l40s-48gb.2x,l40s-48gb.8x
x-go-name: Types
name: types
in: query
- type: string
example: us-east1,us-southcentral1
x-go-name: Locations
name: locations
in: query
- type: string
example: STATE_RUNNING
x-go-name: States
name: states
in: query
- type: string
example: '20'
x-go-name: Limit
name: limit
in: query
- type: string
example: name
x-go-name: Sort
name: sort
in: query
- type: string
example: bXktZmlyc3Qtdm0
x-go-name: NextToken
name: next_token
in: query
- type: string
example: bXktZmlyc3Qtdm0
x-go-name: PrevToken
name: prev_token
in: query
responses:
'200':
$ref: '#/responses/listInstancesResponse'
'401':
$ref: '#/responses/authError'
'500':
$ref: '#/responses/serverError'
post:
tags:
- VMs
summary: Create a new VM instance owned by the logged in user.
operationId: createInstance
parameters:
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- name: Body
in: body
required: true
schema:
$ref: '#/definitions/InstancesPostRequestV1Alpha5'
responses:
'200':
$ref: '#/responses/asyncOperationResponse'
'400':
$ref: '#/responses/badReqError'
'401':
$ref: '#/responses/authError'
'403':
$ref: '#/responses/permissionsError'
'500':
$ref: '#/responses/serverError'
/projects/{project_id}/compute/vms/instances/{vm_id}:
get:
tags:
- VMs
summary: Retrieve details about a particular VM.
operationId: getInstance
parameters:
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: VMID
name: vm_id
in: path
required: true
responses:
'200':
$ref: '#/responses/getInstanceResponse'
'400':
$ref: '#/responses/badReqError'
'401':
$ref: '#/responses/authError'
'403':
$ref: '#/responses/permissionsError'
'500':
$ref: '#/responses/serverError'
delete:
tags:
- VMs
summary: Delete a VM that the logged in user owns.
operationId: deleteInstance
parameters:
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: VMID
name: vm_id
in: path
required: true
responses:
'200':
$ref: '#/responses/asyncOperationResponse'
'401':
$ref: '#/responses/authError'
'403':
$ref: '#/responses/permissionsError'
'500':
$ref: '#/responses/serverError'
patch:
tags:
- VMs
summary: Change the state of a VM the logged in user owns.
operationId: updateInstance
parameters:
- name: Body
in: body
required: true
schema:
$ref: '#/definitions/InstancesPatchRequestV1Alpha5'
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: VMID
name: vm_id
in: path
required: true
responses:
'200':
$ref: '#/responses/asyncOperationResponse'
'400':
$ref: '#/responses/badReqError'
'401':
$ref: '#/responses/authError'
'403':
$ref: '#/responses/permissionsError'
'500':
$ref: '#/responses/serverError'
/projects/{project_id}/compute/vms/instances/{vm_id}/attach-disks:
post:
tags:
- VMs
summary: Attach disks to a VM the logged in user owns.
operationId: updateInstanceAttachDisks
parameters:
- name: Body
in: body
required: true
schema:
$ref: '#/definitions/InstancesAttachDiskPostRequestV1Alpha5'
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: VMID
name: vm_id
in: path
required: true
responses:
'200':
$ref: '#/responses/asyncOperationResponse'
'400':
$ref: '#/responses/badReqError'
'401':
$ref: '#/responses/authError'
'403':
$ref: '#/responses/permissionsError'
'500':
$ref: '#/responses/serverError'
/projects/{project_id}/compute/vms/instances/{vm_id}/detach-disks:
post:
tags:
- VMs
summary: Detach disks from a VM the logged in user owns.
operationId: updateInstanceDetachDisks
parameters:
- name: Body
in: body
required: true
schema:
$ref: '#/definitions/InstancesDetachDiskPostRequest'
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: VMID
name: vm_id
in: path
required: true
responses:
'200':
$ref: '#/responses/asyncOperationResponse'
'400':
$ref: '#/responses/badReqError'
'401':
$ref: '#/responses/authError'
'403':
$ref: '#/responses/permissionsError'
'500':
$ref: '#/responses/serverError'
/projects/{project_id}/compute/vms/types:
get:
tags:
- VMs
summary: Retrieve information about the types of VMs that are available.
operationId: getVMTypes
parameters:
- type: string
example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
x-go-name: ProjectID
name: project_id
in: path
required: true
responses:
'200':
$ref: '#/responses/typesGetResponse'
'401':
$ref: '#/responses/authError'
'500':
$ref: '#/responses/serverError'
definitions:
ReservationSpecification:
type: object
properties:
id:
description: 'Reservation ID to use for the VM. Incompatible with
SelectionStrategy specification.'
type: string
x-go-name: ID
example: 804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8
selection_strategy:
description: 'Strategy for automatically selecting a reservation. Defaults to lowest cost selection.
On-demand may be specified opt out of reservation usages. Incompatible with ID specification.'
type: string
default: lowest_cost
enum:
- lowest_cost
- on_demand
x-go-name: SelectionStrategy
example: lowest_cost
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
InstancesDetachDiskPostRequest:
description: 'InstancesDetachDiskPostRequest is the request type for POST requests to the
vms.instances.detach-disk endpoint.'
type: object
required:
- detach_disks
properties:
detach_disks:
type: array
items:
type: string
x-go-name: DetachDisks
example:
- 09ae8411-0fbb-411c-898c-2b8f19622ae1
- 123e4567-e89b-12d3-a456-426614174000
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
ListTypesResponseV1Alpha5:
type: object
required:
- items
properties:
items:
type: array
items:
$ref: '#/definitions/Type'
x-go-name: Items
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
PrivateIPv4Address:
type: object
required:
- address
properties:
address:
type: string
x-go-name: Address
example: 10.1.2.3
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
InstancesPostRequestV1Alpha5:
description: 'InstancesPostRequestV1Alpha5 is the request type for POST requests to the
vms.instances endpoint.'
type: object
required:
- type
- ssh_public_key
- name
- location
properties:
commitment_period:
description: commitment is no longer supported
type: integer
format: int64
x-go-name: CommitmentPeriod
custom_image:
description: either image or custom image should be supplied, not both.
type: string
x-go-name: CustomImage
disks:
type: array
items:
$ref: '#/definitions/DiskAttachment'
x-go-name: Disks
example: '[{disk_id: "09ae8411-0fbb-411c-898c-2b8f19622ae1", mode: "read-write", attach_type: "data"},'
host_channel_adapters:
type: array
items:
$ref: '#/definitions/PartialHostChannelAdapter'
x-go-name: HostChannelAdapters
image:
type: string
x-go-name: Image
example: ubuntu:20.04
location:
type: string
x-go-name: Location
example: us-southcentral1-a
maintenance_policy:
description: The Host Maintenance Policy to use.
type: string
x-go-name: MaintenancePolicy
example: stop-vm
name:
type: string
x-go-name: Name
example: my-first-vm
network_interfaces:
type: array
items:
$ref: '#/definitions/NetworkInterface'
x-go-name: NetworkInterfaces
reservation_specification:
$ref: '#/definitions/ReservationSpecification'
shutdown_script:
type: string
x-go-name: ShutdownScript
example: '#!/bin/bash\necho''goodbye'''
ssh_public_key:
type: string
x-go-name: SSHPublicKey
example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D
startup_script:
type: string
x-go-name: StartupScript
example: '#!/bin/bash\necho''hello'''
type:
type: string
x-go-name: Type
example: a100.2x
virtualization_features:
$ref: '#/definitions/VirtualizationFeatures'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
Type:
type: object
title: Types an instance of a Crusoe cloud offering, used in the GET vms.types endpoint response.
required:
- product_name
- description
- cpu_cores
- cpu_type
- memory_gb
- memory_type
- disk_gb
- disk_type
- num_gpu
- gpu_type
properties:
cpu_cores:
type: integer
format: int64
x-go-name: CPUCores
example: 4
cpu_type:
type: string
x-go-name: CPUType
example: intel
description:
type: string
x-go-name: Description
example: 2x Nvidia A100
disk_gb:
type: integer
format: int64
x-go-name: DiskGB
example: 8
disk_type:
type: string
x-go-name: DiskType
example: SSD
gpu_type:
type: string
x-go-name: GPUType
example: A100
memory_gb:
type: integer
format: int64
x-go-name: MemoryGB
example: 16
memory_type:
type: string
x-go-name: MemoryType
example: RAM
num_gpu:
type: integer
format: int64
x-go-name: NumGPU
example: 2
product_name:
type: string
x-go-name: ProductName
example: a100.2x
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
InstanceV1Alpha5:
description: 'InstanceV1Alpha5 contains identifying information about a vm instance for
vms.instances endpoints.'
type: object
required:
- id
- project_id
- type
- state
- created_at
- updated_at
- name
- location
- disks
- network_interfaces
- host_channel_adapters
- maintenance_policy
properties:
commitment_end:
type: string
x-go-name: CommitmentEnd
commitment_period:
description: commitment is no longer supported
type: integer
format: int64
x-go-name: CommitmentPeriod
created_at:
type: string
x-go-name: CreatedAt
example: '2021-12-03T19:58:34Z'
disks:
type: array
items:
$ref: '#/definitions/AttachedDiskV1Alpha5'
x-go-name: Disks
host_channel_adapters:
type: array
items:
$ref: '#/definitions/HostChannelAdapter'
x-go-name: HostChannelAdapters
id:
type: string
x-go-name: ID
example: ca39e669-47ee-456b-968d-303234fbf99f
instance_group_id:
type: string
x-go-name: InstanceGroupID
example: 707749bd-ecad-4de8-aa00-1ae2fdb99e19
instance_template_id:
type: string
x-go-name: InstanceTemplateID
example: 75c6712a-8da8-463c-a72d-fc65cf922959
location:
type: string
x-go-name: Location
example: us-centralnorth1-a
maintenance_policy:
type: string
enum:
- stop-vm
- unspecified
x-go-name: MaintenancePolicy
name:
type: string
x-go-name: Name
example: my-first-vm
network_interfaces:
type: array
items:
$ref: '#/definitions/NetworkInterface'
x-go-name: NetworkInterfaces
pod_id:
type: string
x-go-name: PodID
example: 29d20dc4-90ad-4365-ab05-83f5f5e52d94
project_id:
type: string
x-go-name: ProjectID
example: 09ae8411-0fbb-411c-898c-2b8f19622ae1
reservation_id:
type: string
x-go-name: ReservationID
example: 804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8
state:
type: string
x-go-name: State
example: RUNNING
type:
type: string
x-go-name: Type
example: a100.2x
updated_at:
type: string
x-go-name: UpdatedAt
example: '2023-08-14T09:00:35Z'
virtualization_features:
$ref: '#/definitions/VirtualizationFeatures'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
InstancesPatchRequestV1Alpha5:
type: object
title: InstancesPatchRequestV1Alpha5 is the request type for PATCH requests to the vms.instances endpoint.
required:
- action
properties:
action:
description: 'The action to perform on the VM. RESERVE and UNRESERVE operations are done synchronously,
and so will have succeeded with a 200 response.'
type: string
enum:
- START
- STOP
- RESET
- RESERVE
- UNRESERVE
- UPDATE
x-go-name: Action
example: START
commitment_period:
description: CommitmentPeriod is deprecated, please use reservationID instead
type: integer
format: int64
x-go-name: CommitmentPeriod
host_channel_adapters:
type: array
items:
$ref: '#/definitions/PartialHostChannelAdapter'
x-go-name: HostChannelAdapters
maintenance_policy:
description: The host maintenance policy to use.
type: string
x-go-name: MaintenancePolicy
example: stop-vm
network_interfaces:
type: array
items:
$ref: '#/definitions/NetworkInterface'
x-go-name: NetworkInterfaces
reservation_id:
type: string
x-go-name: ReservationID
example: 804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8
type:
type: string
x-go-name: Type
example: a100.2x
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
DiskAttachment:
type: object
required:
- disk_id
- mode
- attachment_type
properties:
attachment_type:
type: string
enum:
- os
- data
x-go-name: AttachmentType
example: data
disk_id:
type: string
x-go-name: DiskID
example: 09ae8411-0fbb-411c-898c-2b8f19622ae1
mode:
type: string
enum:
- read-only
- read-write
x-go-name: Mode
example: read-only, read-write
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
AsyncOperationResponse:
type: object
title: AsyncOperationResponse is the response type for endpoints which return async operations.
required:
- operation
properties:
operation:
$ref: '#/definitions/Operation'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
InstanceTemplatePostRequestV1Alpha5:
type: object
title: InstanceTemplate defines the specifications of VMs to be created during bulk VM creation.
required:
- template_name
- type
- ssh_public_key
properties:
custom_image_name:
description: 'Custom image to use for all VMs created from this instance template.
Only one of Image or CustomImage should be supplied at once.'
type: string
x-go-name: CustomImage
example: ubuntu:20.04
disks:
description: Disks to create for all VMs created from this instance template.
type: array
items:
$ref: '#/definitions/DiskTemplate'
x-go-name: Disks
ib_partition_id:
description: 'IB Partition to use for all VMs created from this instance template.
Should only be provided for IB-enabled VM types.
This is location-specific and must be provided if location is provided.'
type: string
x-go-name: IBPartition
example: 09ae8411-0fbb-411c-898c-2b8f19622ae1
image_name:
description: OS Image to use for all VMs created from this instance template.
type: string
x-go-name: Image
example: ubuntu:20.04
location:
description: 'Location to use for all VMs created from this instance template.
If provided, all location-specific resources must also be provided.'
type: string
x-go-name: Location
example: us-southcentral1-a
maintenance_policy:
description: THe Host Maintenance Policy to use.
type: string
x-go-name: MaintenancePolicy
example: stop-vm
placement_policy:
description: The VM Placement Policy to use.
type: string
x-go-name: PlacementPolicy
example: spread
public_ip_address_type:
description: Public IP address type to use for all VMs created from this instance template. Must either be "static" or "dynamic".
type: string
x-go-name: PublicIPAddressType
example: static
reservation_id:
type: string
x-go-name: ReservationID
example: 804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8
shutdown_script:
description: Shutdown script to use for all VMs created from this instance template.
type: string
x-go-name: ShutdownScript
example: '"#!/bin/bash\necho''goodbye''"'
ssh_public_key:
description: SSH public key to use for all VMs created from this instance template.
type: string
x-go-name: SSHPublicKey
example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D
startup_script:
description: Startup script to use for all VMs created from this instance template.
type: string
x-go-name: StartupScript
example: '"#!/bin/bash\necho''hello''"'
subnet_id:
description: 'Subnet to use for all VMs created from this instance template.
This is location-specific and must be provided if location is provided.'
type: string
x-go-name: Subnet
example: 09ae8411-0fbb-411c-898c-2b8f19622ae1
template_name:
description: Name of the instance template. (This is not the name of the VMs created from this instance template.)
type: string
x-go-name: TemplateName
example: my-instance-template
type:
description: Product name of the VM type we want to create from this instance template.
type: string
x-go-name: Type
example: a100.2x
virtualization_features:
$ref: '#/definitions/VirtualizationFeatures'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
PublicIPv4Address:
type: object
required:
- address
- id
- type
properties:
address:
type: string
x-go-name: Address
example: 121.0.0.0
id:
type: string
x-go-name: ID
example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
type:
type: string
x-go-name: Type
example: dynamic
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
NetworkInterface:
type: object
required:
- id
- name
- network
- subnet
- interface_type
- mac_address
- ips
- access_type
- external_dns_name
properties:
access_type:
type: string
x-go-name: AccessType
external_dns_name:
type: string
x-go-name: ExternalDNSName
id:
type: string
x-go-name: ID
example: ca39e669-47ee-456b-968d-303234fbf99f
interface_type:
type: string
x-go-name: InterfaceType
example: ethernet
ips:
type: array
items:
$ref: '#/definitions/IPAddresses'
x-go-name: IPs
mac_address:
type: string
x-go-name: MACAddress
example: 00:00:5e:00:53:af
name:
type: string
x-go-name: Name
example: network-interface-1
network:
type: string
x-go-name: Network
example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
subnet:
type: string
x-go-name: Subnet
example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
IPAddresses:
type: object
required:
- private_ipv4
- public_ipv4
properties:
private_ipv4:
$ref: '#/definitions/PrivateIPv4Address'
public_ipv4:
$ref: '#/definitions/PublicIPv4Address'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
PartialHostChannelAdapter:
type: object
title: PartialHostChannelAdapter is used when POSTing and PATCHing VMs to assign IB Partitions.
properties:
ib_partition_id:
type: string
x-go-name: IBPartitionID
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
ListInstancesResponseV1Alpha5:
type: object
title: ListInstancesResponseV1Alpha5 is the response type for GET requests to /compute/vms/instances.
required:
- items
properties:
items:
type: array
items:
$ref: '#/definitions/InstanceV1Alpha5'
x-go-name: Items
next_page_token:
description: 'Base64 encoded token representing the next page of instances.
Empty if currently on the last page.'
type: string
x-go-name: NextPageToken
example: bXktbGFzdC12bQ
prev_page_token:
description: 'Base64 encoded token representing the previous page of instances.
Empty if currently on the first page.'
type: string
x-go-name: PrevPageToken
example: bXktZmlyc3Qtdm0
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
Operation:
description: 'Individual resources that use Operations should populate the `metadata` field
with resource-specific information.'
type: object
title: Operation contains the common fields for all Operation API objects.
required:
- operation_id
- state
- metadata
- started_at
- completed_at
properties:
completed_at:
type: string
x-go-name: CompletedAt
example: '2021-12-03T19:59:34Z'
metadata:
x-go-name: Metadata
example: '{}'
operation_id:
type: string
x-go-name: ID
example: F6EF489C-086E-458D-B812-7962964A28C9
result:
x-go-name: Result
example: '{}'
started_at:
type: string
x-go-name: StartedAt
example: '2021-12-03T19:58:34Z'
state:
type: string
enum:
- IN_PROGRESS
- SUCCEEDED
- FAILED
x-go-name: State
example: IN_PROGRESS
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
BulkInstancePostRequestV1Alpha5:
type: object
required:
- name_prefix
- count
properties:
count:
description: 'The number of VMs to create. If multiple locations are specified, this will be the number of VMs
created in each location.'
type: integer
format: int64
x-go-name: Count
example: 6
instance_group_id:
description: The ID of the instance group the VMs will be created in.
type: string
x-go-name: InstanceGroupID
example: cda562c4-6162-4565-95f3-ce06a8220c07
instance_template:
$ref: '#/definitions/InstanceTemplatePostRequestV1Alpha5'
instance_template_id:
description: The ID of the instance template to use for creating the VMs.
type: string
x-go-name: InstanceTemplateID
example: 09ae8411-0fbb-411c-898c-2b8f19622ae1
locations:
description: The locations to create the VMs in. This will override any location specified in the instance template.
type: array
items:
$ref: '#/definitions/BulkCreateLocationInfo'
x-go-name: Locations
name_prefix:
description: The name prefix for the VMs to be created. E.g. "my-vm" will create VMs with names "my-vm-1",
type: string
x-go-name: NamePrefix
example: my-vm
reservation_specification:
$ref: '#/definitions/ReservationSpecification'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
DiskTemplate:
type: object
title: DiskTemplate defines a disk to create for each VM during bulk VM creation.
required:
- size
- type
properties:
size:
type: string
x-go-name: Size
example: 10GiB
type:
type: string
enum:
- persistent-ssd
- shared-volume
x-go-name: Type
example: persistent-ssd
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
AttachedDiskV1Alpha5:
type: object
required:
- id
- name
- type
- size
- location
- block_size
- created_at
- updated_at
- serial_number
- attachment_type
- mode
properties:
attachment_type:
type: string
x-go-name: AttachmentType
example: os | data
block_size:
type: integer
format: int64
x-go-name: BlockSize
example: 4096
created_at:
type: string
x-go-name: CreatedAt
example: '2021-12-03T19:58:34Z'
id:
type: string
x-go-name: ID
example: 123e4567-e89b-12d3-a456-426614174000
location:
type: string
x-go-name: Location
example: us-southcentral1-a
mode:
type: string
x-go-name: Mode
example: read-write | read-only
name:
type: string
x-go-name: Name
example: my-disk
serial_number:
type: string
x-go-name: SerialNumber
example: 96FD14FDBCF7E21E8EC
size:
type: string
x-go-name: Size
example: 10GiB
type:
type: string
x-go-name: Type
example: persistent-ssd
updated_at:
type: string
x-go-name: UpdatedAt
example: '2021-12-03T19:58:34Z'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
InstancesAttachDiskPostRequestV1Alpha5:
description: 'InstancesAttachDiskPostRequestV1Alpha5 is the request type for POST requests to the
vms.instances.attach-disk endpoint.'
type: object
required:
- attach_disks
properties:
attach_disks:
type: array
items:
$ref: '#/definitions/DiskAttachment'
x-go-name: AttachDisks
example: '[{disk_id: "09ae8411-0fbb-411c-898c-2b8f19622ae1", mode: "read-write", attachment_type: "data"}, {disk_id: "b1f86d1b-42d2-490d-adb0-cc1029abf653", mode: "read-only", attachment_type: "data"}]'
x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
HostChannelAdapter:
type: object
required:
- type
- guid
- ib_network_id
- ib_partition_id
properties:
guid:
type: string
x-go-name: GUID
example: 946d:ae03:0021:69aa
ib_network_id:
type: string
x-go-name: IBNetworkID
example: ca39e669-47ee-456b-968d-303234fbf99f
ib_partition_id:
type: string
x-go-name: IBPartitionID
example: ca39e669-47ee-456b-968d-303234fbf99f
type:
type: string
x-go-name: Type
example: infiniband
x-go-package: gitlab.com/crusoeenergy/island/r
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/crusoe-energy/refs/heads/main/openapi/crusoe-energy-vms-api-openapi.yml