Skip to main content

Instances

An instance is a Genesis Cloud virtual machine. By sending requests to the instances endpoint, you can list, create and delete instances.

Instance Types

An instance type defines the hardware configuration of your instance. Please refer the pricing page for the costs of each type.

NVIDIA® H100 SXM5 80 GB

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskLocal NVMeAccelerators
Accelerator Instance 8x NVIDIA® H100 SXM5 80 GBvcpu-192_memory-1920g_nvidia-h100-sxm5-81921920 GiB200 GiB28600 GiB8

Intel® Gaudi®2

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskLocal NVMeAccelerators
Accelerator Instance 1x Intel® Gaudi®2vcpu-16_memory-120g_intel-gaudi2-116120 GiB200 GiB445 GiB1
Accelerator Instance 2x Intel® Gaudi®2vcpu-32_memory-240g_intel-gaudi2-232240 GiB200 GiB890 GiB2
Accelerator Instance 3x Intel® Gaudi®2vcpu-48_memory-360g_intel-gaudi2-348360 GiB200 GiB1335 GiB3
Accelerator Instance 4x Intel® Gaudi®2vcpu-64_memory-480g_intel-gaudi2-464480 GiB200 GiB1780 GiB4
Accelerator Instance 5x Intel® Gaudi®2vcpu-80_memory-600g_intel-gaudi2-580600 GiB200 GiB2225 GiB5
Accelerator Instance 6x Intel® Gaudi®2vcpu-96_memory-720g_intel-gaudi2-696720 GiB200 GiB2670 GiB6
Accelerator Instance 7x Intel® Gaudi®2vcpu-112_memory-840g_intel-gaudi2-7112840 GiB200 GiB3115 GiB7
Accelerator Instance 8x Intel® Gaudi®2vcpu-128_memory-960g_intel-gaudi2-8128960 GiB200 GiB3560 GiB8

NVIDIA® GeForce™ RTX 3090

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3090vcpu-4_memory-24g_nvidia-rtx-3090-1424 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3090vcpu-8_memory-48g_nvidia-rtx-3090-2848 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3090vcpu-12_memory-72g_nvidia-rtx-3090-31272 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3090vcpu-16_memory-96g_nvidia-rtx-3090-41696 GiB80 GiB4
GPU Instance 5x GeForce™ RTX 3090vcpu-20_memory-120g_nvidia-rtx-3090-520120 GiB80 GiB5
GPU Instance 6x GeForce™ RTX 3090vcpu-24_memory-144g_nvidia-rtx-3090-624144 GiB80 GiB6
GPU Instance 7x GeForce™ RTX 3090vcpu-28_memory-168g_nvidia-rtx-3090-728168 GiB80 GiB7
GPU Instance 8x GeForce™ RTX 3090vcpu-32_memory-192g_nvidia-rtx-3090-832192 GiB80 GiB8

NVIDIA® GeForce™ RTX 3090 (Optimized CPU & Memory)

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3090vcpu-8_memory-48g_nvidia-rtx-3090-1848 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3090vcpu-16_memory-96g_nvidia-rtx-3090-21696 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3090vcpu-24_memory-144g_nvidia-rtx-3090-324144 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3090vcpu-32_memory-192g_nvidia-rtx-3090-432192 GiB80 GiB4

NVIDIA® GeForce™ RTX 3080

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3080vcpu-4_memory-12g_nvidia-rtx-3080-1412 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3080vcpu-8_memory-24g_nvidia-rtx-3080-2824 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3080vcpu-12_memory-36g_nvidia-rtx-3080-31236 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3080vcpu-16_memory-48g_nvidia-rtx-3080-41648 GiB80 GiB4
GPU Instance 5x GeForce™ RTX 3080vcpu-20_memory-60g_nvidia-rtx-3080-52060 GiB80 GiB5
GPU Instance 6x GeForce™ RTX 3080vcpu-24_memory-72g_nvidia-rtx-3080-62472 GiB80 GiB6
GPU Instance 7x GeForce™ RTX 3080vcpu-28_memory-84g_nvidia-rtx-3080-72884 GiB80 GiB7
GPU Instance 8x GeForce™ RTX 3080vcpu-32_memory-96g_nvidia-rtx-3080-83296 GiB80 GiB8

NVIDIA® GeForce™ RTX 3080 (Optimized CPU & Memory)

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3080vcpu-8_memory-32g_nvidia-rtx-3080-1832 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3080vcpu-16_memory-64g_nvidia-rtx-3080-21664 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3080vcpu-24_memory-96g_nvidia-rtx-3080-32496 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3080vcpu-32_memory-128g_nvidia-rtx-3080-432128 GiB80 GiB4

NVIDIA® GeForce™ GTX 1080 Ti

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ GTX 1080 Tivcpu-4_memory-12g_nvidia-gtx-1080ti-1412 GiB80 GiB1
GPU Instance 2x GeForce™ GTX 1080 Tivcpu-8_memory-24g_nvidia-gtx-1080ti-2824 GiB80 GiB2
GPU Instance 3x GeForce™ GTX 1080 Tivcpu-12_memory-36g_nvidia-gtx-1080ti-31236 GiB80 GiB3
GPU Instance 4x GeForce™ GTX 1080 Tivcpu-16_memory-48g_nvidia-gtx-1080ti-41648 GiB80 GiB4
GPU Instance 5x GeForce™ GTX 1080 Tivcpu-20_memory-60g_nvidia-gtx-1080ti-52060 GiB80 GiB5
GPU Instance 6x GeForce™ GTX 1080 Tivcpu-24_memory-72g_nvidia-gtx-1080ti-62472 GiB80 GiB6
GPU Instance 7x GeForce™ GTX 1080 Tivcpu-28_memory-84g_nvidia-gtx-1080ti-72884 GiB80 GiB7
GPU Instance 8x GeForce™ GTX 1080 Tivcpu-32_memory-96g_nvidia-gtx-1080ti-83296 GiB80 GiB8

CPU Instance (AMD® EPYC™ 2.20-3.35 GHz)

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDisk
CPU Instance 2x vCPUvcpu-2_memory-4g24 GiB80 GiB
CPU Instance 4x vCPUvcpu-4_memory-8g48 GiB80 GiB
CPU Instance 8x vCPUvcpu-8_memory-16g816 GiB80 GiB
CPU Instance 12x vCPUvcpu-12_memory-24g1224 GiB80 GiB
CPU Instance 16x vCPUvcpu-16_memory-32g1632 GiB80 GiB
CPU Instance 20x vCPUvcpu-20_memory-40g2040 GiB80 GiB
CPU Instance 24x vCPUvcpu-24_memory-48g2448 GiB80 GiB
Legacy Instance types

NVIDIA® GeForce™ RTX 3090

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3090vcpu-4_memory-24g_disk-80g_nvidia3090-1424 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3090vcpu-8_memory-48g_disk-80g_nvidia3090-2848 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3090vcpu-12_memory-72g_disk-80g_nvidia3090-31272 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3090vcpu-16_memory-96g_disk-80g_nvidia3090-41696 GiB80 GiB4
GPU Instance 5x GeForce™ RTX 3090vcpu-20_memory-120g_disk-80g_nvidia3090-520120 GiB80 GiB5
GPU Instance 6x GeForce™ RTX 3090vcpu-24_memory-144g_disk-80g_nvidia3090-624144 GiB80 GiB6
GPU Instance 7x GeForce™ RTX 3090vcpu-28_memory-168g_disk-80g_nvidia3090-728168 GiB80 GiB7
GPU Instance 8x GeForce™ RTX 3090vcpu-32_memory-192g_disk-80g_nvidia3090-832192 GiB80 GiB8

NVIDIA® GeForce™ RTX 3090 (Optimized CPU & Memory)

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3090vcpu-8_memory-48g_disk-80g_nvidia3090-1848 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3090vcpu-16_memory-96g_disk-80g_nvidia3090-21696 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3090vcpu-24_memory-144g_disk-80g_nvidia3090-324144 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3090vcpu-32_memory-192g_disk-80g_nvidia3090-432192 GiB80 GiB4

NVIDIA® GeForce™ RTX 3080

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3080vcpu-4_memory-12g_disk-80g_nvidia3080-1412 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3080vcpu-8_memory-24g_disk-80g_nvidia3080-2824 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3080vcpu-12_memory-36g_disk-80g_nvidia3080-31236 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3080vcpu-16_memory-48g_disk-80g_nvidia3080-41648 GiB80 GiB4
GPU Instance 5x GeForce™ RTX 3080vcpu-20_memory-60g_disk-80g_nvidia3080-52060 GiB80 GiB5
GPU Instance 6x GeForce™ RTX 3080vcpu-24_memory-72g_disk-80g_nvidia3080-62472 GiB80 GiB6
GPU Instance 7x GeForce™ RTX 3080vcpu-28_memory-84g_disk-80g_nvidia3080-72884 GiB80 GiB7
GPU Instance 8x GeForce™ RTX 3080vcpu-32_memory-96g_disk-80g_nvidia3080-83296 GiB80 GiB8

NVIDIA® GeForce™ RTX 3080 (Optimized CPU & Memory)

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ RTX 3080vcpu-8_memory-32g_disk-80g_nvidia3080-1832 GiB80 GiB1
GPU Instance 2x GeForce™ RTX 3080vcpu-16_memory-64g_disk-80g_nvidia3080-21664 GiB80 GiB2
GPU Instance 3x GeForce™ RTX 3080vcpu-24_memory-96g_disk-80g_nvidia3080-32496 GiB80 GiB3
GPU Instance 4x GeForce™ RTX 3080vcpu-32_memory-128g_disk-80g_nvidia3080-432128 GiB80 GiB4

NVIDIA® GeForce™ GTX 1080 Ti

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDiskGPUs
GPU Instance 1x GeForce™ GTX 1080 Tivcpu-4_memory-12g_disk-80g_nvidia1080ti-1412 GiB80 GiB1
GPU Instance 2x GeForce™ GTX 1080 Tivcpu-8_memory-24g_disk-80g_nvidia1080ti-2824 GiB80 GiB2
GPU Instance 3x GeForce™ GTX 1080 Tivcpu-12_memory-36g_disk-80g_nvidia1080ti-31236 GiB80 GiB3
GPU Instance 4x GeForce™ GTX 1080 Tivcpu-16_memory-48g_disk-80g_nvidia1080ti-41648 GiB80 GiB4
GPU Instance 5x GeForce™ GTX 1080 Tivcpu-20_memory-60g_disk-80g_nvidia1080ti-52060 GiB80 GiB5
GPU Instance 6x GeForce™ GTX 1080 Tivcpu-24_memory-72g_disk-80g_nvidia1080ti-62472 GiB80 GiB6
GPU Instance 7x GeForce™ GTX 1080 Tivcpu-28_memory-84g_disk-80g_nvidia1080ti-72884 GiB80 GiB7
GPU Instance 8x GeForce™ GTX 1080 Tivcpu-32_memory-96g_disk-80g_nvidia1080ti-83296 GiB80 GiB8

CPU Instance (AMD® EPYC™ 2.20-3.35 GHz)

Instance Type (Product Name)API Instance Type IdentifiervCPUsMemoryDisk
CPU Instance 2x vCPUvcpu-2_memory-4g_disk-80g24 GiB80 GiB
CPU Instance 4x vCPUvcpu-4_memory-8g_disk-80g48 GiB80 GiB
CPU Instance 8x vCPUvcpu-8_memory-16g_disk-80g816 GiB80 GiB
CPU Instance 12x vCPUvcpu-12_memory-24g_disk-80g1224 GiB80 GiB
CPU Instance 16x vCPUvcpu-16_memory-32g_disk-80g1632 GiB80 GiB
CPU Instance 20x vCPUvcpu-20_memory-40g_disk-80g2040 GiB80 GiB
CPU Instance 24x vCPUvcpu-24_memory-48g_disk-80g2448 GiB80 GiB

Instance Schema

  • id String - A unique identifier for each instance. This is automatically generated.
  • name String - The human-readable name set for the instance.
  • hostname String - The instance host name.
  • dns_name String - The instance DNS name.
  • type String - The instance type (eg. vcpu-8_memory-32g_nvidia-rtx-3080-1).
  • region String - The region identifier this instance exists in (eg. ARC-IS-HAF-1).
  • placement_option String - The placement option identifier (eg. AUTO).
  • image Object - The instance base image object.
  • floating_ip Object - The floating IP attached to the instance.
  • ssh_keys Array - The instance's ssh keys.
  • security_groups Array - The instance's security groups.
  • volumes Array - The instance's volumes.
  • is_protected String - The instance termination protection flag.
  • status String - The instance status. Possible values are creating, pending_payment, active, stopping, stopped, starting, resetting, error and deleting.
  • private_ip String - The instance private ip. It may take some time to be assigned after the instance is created.
  • public_ip String - The instance public ip. It may take some time to be assigned after the instance is created.
  • public_ip_type String Optional - static or dynamic. When set to static, the instance's public IP will not change between start and stop actions. Defaults to dynamic. Only available for legacy projects. Use the floating_ip field instead.
  • disk_size Integer - The storage size of the instance's boot volume given in GiB (Min: 80GiB).
  • created_at String - A time value given in ISO8601 combined date and time format that represents when the instance was created.
  • updated_at String - A time value given in ISO8601 combined date and time format that represents when the instance was updated.

For legacy projects and accounts there is an additional status enqueued as well as other undocumented statuses. These can include but are not limited to copying, build, restarting, shutoff, updating and unknown.

Create an Instance

Please Note: Creating an instance results in costs according to Genesis Cloud's pricing. You can see all your billed resources in the billing dashboard.

To create a new instance, send a request to:

POST /compute/v1/instances (HTTP 201 - Created)

The attribute values that must be set to successfully create an instance are:

Body parameters

  • name String Required - The human-readable name set for the instance.

  • hostname String Required - The hostname of your instance.

  • type String Required - The instance type identifier, see API instance type identifiers.

  • region String Required - The region identifier in which this instance should be created in, see Regions.

  • placement_option String Optional - The placement option identifier in which instances are physically located relative to each other within a zone. Defaults to AUTO.

  • image String Required - The image id, image slug or snapshot id. The image version can also specified together with the image slug in this format <image-slug>:<version>, see image schema.

  • floating_ip String Optional - The id of the floating IP to attach to the instance.

  • ssh_keys Array Required - An array of ssh key ids. This should not be provided if password authentication method is desired.

  • volumes Array Optional - An array of volume ids. Please Note: These should be ids for valid volumes with a status of available, see volume schema.

  • password String Optional - The password to access the instance. Your password must have a minimum length of 16 characters. Please Note: Only one of ssh_keys or password can be provided. Password is less secure - we recommend you use an SSH key-pair instead.

  • security_groups Array Optional - An array of security group ids. Please Note: If no value is specified, the instance will be created with the standard security group. You can override this behavior by passing an array of security group ids. Passing the empty array will result in an instance without any security groups.

  • is_protected Boolean Optional - Specifies if the instance is termination protected. When set to true, it's not possible to destroy the instance until it's switched to false. Set to true automatically for long-term billed instances. Defaults to false.

  • public_ip_type String Optional - static or dynamic. When set to static, the instance's public IP will not change between start and stop actions. Defaults to dynamic. Only available for legacy projects. Use the floating_ip field instead.

  • disk_size Integer Optional - The storage size of the instance's boot volume given in GiB (Min: 80GiB). If the field is not set, the default is 80GiB.

  • metadata Object Optional - Option to provide metadata.

    • A startup_script is a plain text bash script or 'cloud-config' file that will be executed after the first instance boot. It is limited to 64 KiB in size. You can use it to configure your instance, e.g. installing the NVIDIA GPU driver. Learn more about startup scripts and installing the GPU driver.

    • Provide custom user_data in a variety of formats. You can use it for example to provide a cloud-config file via the "text/cloud-config" type. The filename is optional, but it can be useful when debugging inside the instance.

      User data Schema

      • type String
      • filename String (optional)
      • content String

For legacy projects and accounts, the only supported metadata field is startup_script.

{
"name": "name",
"hostname": "hostname",
"type": "vcpu-8_memory-48g_nvidia-rtx-3090-2",
"region": "ARC-IS-HAF-1",
"image": "7b1644e2-d97d-4725-a927-0028bc60bc28",
"floating_ip": "db1bf06d-528d-4fac-96d8-390798f83388",
"ssh_keys": ["45bcd3ac-fccd-4eea-a812-21f01d665464"],
"metadata": {
"startup_script": "#!/bin/bash\nsudo apt update && sudo apt install iperf3"
},
"disk_size": 128
}

Response body

A Instance will be created using the provided information. The response body will contain a JSON object with standard attributes for your new Instance, see Instance Schema:

{
"instance": {
"id": "9e8ce501-d692-402c-8fca-5a8f5d8ddd57",
"name": "name",
"hostname": "hostname",
"type": "vcpu-8_memory-48g_nvidia-rtx-3090-2",
"region": "ARC-IS-HAF-1",
"image": {
"id": "ac26fa2b-c6d5-47a7-bc4e-5a219797e70f",
"name": "Ubuntu 20.04"
},
"floating_ip": {
"id": "db1bf06d-528d-4fac-96d8-390798f83388",
"name": "<floating_ip_name>"
},
"ssh_keys": [
{
"id": "45bcd3ac-fccd-4eea-a812-21f01d665464",
"name": "ssh-key-name"
}
],
"security_groups": [
{
"id": "fd537d69-9db7-4a44-83b8-96f79d10071a",
"name": "standard"
}
],
"volumes": [
{
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume_name>"
}
],
"is_protected": false,
"status": "active",
"private_ip": "192.168.10.124",
"public_ip": "198.51.100.127",
"disk_size": 128,
"created_at": "2020-03-23T10:09:29.152Z",
"updated_at": "2020-03-23T10:10:28.797Z"
}
}

From a snapshot

If you want to create an instance from a given snapshot you can pass the snapshot id as the image property. Check how you can create snapshots here.

List all Instances

To list all the instances, send a GET request to /compute/v1/instances.

GET /compute/v1/instances (HTTP 200 - OK)

Query parameters

  • per_page Integer Optional - A positive integer lower or equal to 100 to select the number of items to return (default: 50).
  • page Integer Optional - A positive integer to choose the page to return.

Response body

The response will be a JSON object with pagination details and a key called instances. This will be set to an array of instance objects, each of which will contain the instance object, see Instance Schema:

{
"instances": [
{
"id": "9e8ce501-d692-402c-8fca-5a8f5d8ddd57",
"name": "name",
"hostname": "hostname",
"type": "vcpu-4_memory-12g_nvidia-rtx-3080-1",
"region": "ARC-IS-HAF-1",
"image": {
"id": "ac26fa2b-c6d5-47a7-bc4e-5a219797e70f",
"name": "Ubuntu 20.04"
},
"floating_ip": null,
"ssh_keys": [
{
"id": "45bcd3ac-fccd-4eea-a812-21f01d665464",
"name": "ssh-key-name"
}
],
"security_groups": [
{
"id": "fd537d69-9db7-4a44-83b8-96f79d10071a",
"name": "standard"
},
{
"id": "00faf681-6f59-4c94-8523-28903f13da47",
"name": "default"
}
],
"volumes": [
{
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume_name>"
}
],
"is_protected": false,
"status": "active",
"private_ip": "192.168.10.124",
"public_ip": "198.51.100.127",
"disk_size": 128,
"created_at": "2020-03-23T10:09:29.152Z",
"updated_at": "2020-03-23T10:10:28.797Z"
}
],
"total_count": 1,
"page": 1,
"per_page": 50
}

Get Instance

Get details of an instance with the given ID.

GET /compute/v1/instances/{instance_id} (HTTP 200 - OK)

Path parameters:

  • instance_id String - Instance id

Response body

The response will be a JSON object that contains the instance attributes, see Instance Schema:

{
"instance": {
"id": "9e8ce501-d692-402c-8fca-5a8f5d8ddd57",
"name": "name",
"hostname": "hostname",
"type": "vcpu-4_memory-12g_nvidia-rtx-3080-1",
"region": "ARC-IS-HAF-1",
"image": {
"id": "ac26fa2b-c6d5-47a7-bc4e-5a219797e70f",
"name": "Ubuntu 20.04"
},
"floating_ip": null,
"ssh_keys": [
{
"id": "45bcd3ac-fccd-4eea-a812-21f01d665464",
"name": "ssh-key-name"
}
],
"security_groups": [
{
"id": "fd537d69-9db7-4a44-83b8-96f79d10071a",
"name": "standard"
},
{
"id": "00faf681-6f59-4c94-8523-28903f13da47",
"name": "default"
}
],
"volumes": [
{
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume_name>"
}
],
"is_protected": false,
"status": "active",
"private_ip": "192.168.10.124",
"public_ip": "198.51.100.127",
"disk_size": 128,
"created_at": "2020-03-23T10:09:29.152Z",
"updated_at": "2020-03-23T10:10:28.797Z"
}
}

Destroy an instance

Destroy an instance with the given ID. The data on the boot disk will be lost. Attached volumes are not affected. The billing will stop as soon as you request the instance destroy.

DELETE /compute/v1/instances/{instance_id}  (HTTP 204 - No content)

Path parameters:

  • instance_id String - Instance id

Snapshot an Instance

Takes a snapshot of the instance.

POST /compute/v1/instances/{instance_id}/snapshots (HTTP 201 - Created)

Path parameters:

  • instance_id String - Instance id

Body parameters

  • name String Required - The snapshot name.
{
"name": "name"
}

Response body

The response will be a JSON object that contains the snapshot attributes, see Snapshot Schema:

{
"snapshot": {
"id": "ca73c941-7bd7-4d05-98d3-485e7980638b",
"name": "snapshot",
"region": "ARC-IS-HAF-1",
"status": "created",
"resource_id": "<instance-id>",
"created_at": "2020-03-30T13:39:44.540Z"
}
}

List Snapshots of an Instance

Lists all snapshots that were taken of this instance.

GET /compute/v1/instances/{instance_id}/snapshots (HTTP 200 - OK)

Path parameters:

  • instance_id String - Instance id

Response body

The response will be a JSON object with pagination details and a key called snapshots. This will be set to an array of instance snapshot objects, each of which will contain the instance snapshot object, see Snapshot Schema:

{
"snapshots": [
{
"id": "ff942497-62f6-4a9d-8dc4-3766ebc2b8a2",
"name": "snapshot name",
"size": 128,
"region": "ARC-IS-HAF-1",
"status": "created",
"resource_id": "<snapshotted-resource-id>",
"created_at": "2020-04-06T10:47:46.786Z"
}
],
"total_count": 1,
"page": 1,
"per_page": 50
}

Attach/Detach Security Groups from an Instance

Attaching/Detaching a security group to an instance is possible by passing the full list of security groups IDs. This means, in order to add one additional security group you need to pass the list of current security groups plus the security group to be added. If no value is passed, the current list of security groups will be kept. Passing the empty array will detach all security groups.

PATCH /compute/v1/instances/{instance_id} (HTTP 200 - OK)

Path parameters:

  • instance_id String - Instance id.

Body parameters

  • security_groups Array Required - The list of security group IDs.
{
"security_groups": ["fd537d69-9db7-4a44-83b8-96f79d10071a", "00faf681-6f59-4c94-8523-28903f13da47"]
}

Response body

The response will be a JSON object that represents the instance object, see Instance Schema:

{
"instance": {
"id": "9e8ce501-d692-402c-8fca-5a8f5d8ddd57",
"name": "name",
"hostname": "hostname",
"type": "vcpu-8_memory-48g_nvidia-rtx-3090-2",
"region": "ARC-IS-HAF-1",
"image": {
"id": "ac26fa2b-c6d5-47a7-bc4e-5a219797e70f",
"name": "Ubuntu 20.04"
},
"floating_ip": null,
"ssh_keys": [
{
"id": "45bcd3ac-fccd-4eea-a812-21f01d665464",
"name": "ssh-key-name"
}
],
"security_groups": [
{
"id": "fd537d69-9db7-4a44-83b8-96f79d10071a",
"name": "standard"
},
{
"id": "00faf681-6f59-4c94-8523-28903f13da47",
"name": "example sg"
}
],
"volumes": [
{
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume_name>"
}
],
"is_protected": false,
"status": "active",
"private_ip": "192.168.10.124",
"public_ip": "198.51.100.127",
"disk_size": 128,
"created_at": "2020-03-23T10:09:29.152Z",
"updated_at": "2020-03-23T10:10:28.797Z"
}
}

Attach/Detach Volumes from an Instance

Attach/Detach a volume to an instance is possible by passing the full list of volumes IDs. This means, in order to add one additional volume you need to pass the list of current volumes plus the volume to be added.

PATCH /compute/v1/instances/{instance_id} (HTTP 200 - OK)

Path parameters:

  • instance_id String - Instance id.

Body parameters

  • volumes Array Required - The list of volume IDs.
{
"volumes": ["0580fb4c-de74-4b83-8bdb-1fd87d89f827"]
}

Response body

The response will be a JSON object that represents the instance object, see Instance Schema:

{
"instance": {
"id": "9e8ce501-d692-402c-8fca-5a8f5d8ddd57",
"name": "name",
"hostname": "hostname",
"type": "vcpu-8_memory-48g_nvidia-rtx-3090-2",
"region": "ARC-IS-HAF-1",
"image": {
"id": "ac26fa2b-c6d5-47a7-bc4e-5a219797e70f",
"name": "Ubuntu 20.04"
},
"floating_ip": null,
"ssh_keys": [
{
"id": "45bcd3ac-fccd-4eea-a812-21f01d665464",
"name": "ssh-key-name"
}
],
"security_groups": [
{
"id": "fd537d69-9db7-4a44-83b8-96f79d10071a",
"name": "standard"
},
{
"id": "00faf681-6f59-4c94-8523-28903f13da47",
"name": "example sg"
}
],
"volumes": [
{
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume_name>"
}
],
"is_protected": false,
"status": "active",
"private_ip": "192.168.10.124",
"public_ip": "198.51.100.127",
"disk_size": 128,
"created_at": "2020-03-23T10:09:29.152Z",
"updated_at": "2020-03-23T10:10:28.797Z"
}
}

Update an Instance

Update the details of an Instance. You can update the instance's name and/or the is_protected flag. You can patch the instance by sending in the request only the properties you want to update.

PATCH /compute/v1/instances/{instance_id} (HTTP 200 - OK)

Path parameters:

  • instance_id String - Instance id.

Body parameters

  • name String Optional - The new name of the instance. The hostname is not affected.
  • is_protected Boolean Optional - Specifies if the instance is termination protected.
  • disk_size Integer Optional - The new storage size of the instance's boot volume given in GiB. Please note that the disk size can only be increased.
{
"name": "My Genesis Cloud instance",
"is_protected": true,
"disk_size": 256
}

Response body

The response will be a JSON object that represents the instance object, see Instance Schema:

{
"instance": {
"id": "9e8ce501-d692-402c-8fca-5a8f5d8ddd57",
"name": "My Genesis Cloud instance",
"hostname": "hostname",
"type": "vcpu-8_memory-48g_nvidia-rtx-3090-2",
"region": "ARC-IS-HAF-1",
"image": {
"id": "ac26fa2b-c6d5-47a7-bc4e-5a219797e70f",
"name": "Ubuntu 20.04"
},
"floating_ip": null,
"ssh_keys": [
{
"id": "45bcd3ac-fccd-4eea-a812-21f01d665464",
"name": "ssh-key-name"
}
],
"security_groups": [
{
"id": "fd537d69-9db7-4a44-83b8-96f79d10071a",
"name": "standard"
},
{
"id": "00faf681-6f59-4c94-8523-28903f13da47",
"name": "example sg"
}
],
"volumes": [
{
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume_name>"
}
],
"is_protected": true,
"status": "active",
"private_ip": "192.168.10.124",
"public_ip": "198.51.100.127",
"disk_size": 256,
"created_at": "2020-03-23T10:09:29.152Z",
"updated_at": "2020-03-23T10:10:28.797Z"
}
}

Get Instance actions

List all actions that can currently be performed on a instance.

GET /compute/v1/instances/{instance_id}/actions (HTTP 200 - OK)

Path parameters:

  • instance_id String - Instance id

Response body

The response will be a JSON object that contains the instance actions:

  • actions Array - List all actions that can currently be performed on a instance.
{
"actions": ["reset", "stop"]
}

Perform action

The action to perform on the instance.

POST /compute/v1/instances/{instance_id}/actions (HTTP 204 - No Content)

Body parameters

  • action String Required - The action to perform on the instance. Possible values: start, stop or reset.
{
"action": "reset"
}

Examples (cURL)

# Create a new instance
curl -H "Authorization: Bearer $TOKEN" \
-X POST "https://api.genesiscloud.com/compute/v1/instances" \
-H "Content-Type: application/json" \
--data-raw '{
"name": "name",
"hostname": "hostname",
"type": "vcpu-4_memory-12g_nvidia-rtx-3080-1",
"image": "ac26fa2b-c6d5-47a7-bc4e-5a219797e70f",
"ssh_keys": ["45bcd3ac-fccd-4eea-a812-21f01d665464"]
}'
# List all instances of an account
curl -H "Authorization: Bearer $TOKEN" \
"https://api.genesiscloud.com/compute/v1/instances"
# Get instance by id
curl -H "Authorization: Bearer $TOKEN" \
"https://api.genesiscloud.com/compute/v1/instances/<instance_id>"
# Destroy a instance
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE "https://api.genesiscloud.com/compute/v1/instances/<instance_id>"
# Snapshot an instance
curl -H "Authorization: Bearer $TOKEN" \
-X POST "https://api.genesiscloud.com/compute/v1/instances/<instance_id>/snapshots" \
-H "Content-Type: application/json" \
--data-raw '{
"name": "snapshot-name"
}'
# List all Snapshots of an instance
curl -H "Authorization: Bearer $TOKEN" \
"https://api.genesiscloud.com/compute/v1/instances/<instance_id>/snapshots"
# Update the security groups of an instance
curl -H "Authorization: Bearer $TOKEN" \
-X PATCH "https://api.genesiscloud.com/compute/v1/instances/<instance_id>" \
-H "Content-Type: application/json" \
--data-raw '{
"security_groups": ["fd537d69-9db7-4a44-83b8-96f79d10071a"]
}'
# Update the volumes of an instance
curl -H "Authorization: Bearer $TOKEN" \
-X PATCH "https://api.genesiscloud.com/compute/v1/instances/<instance_id>" \
-H "Content-Type: application/json" \
--data-raw '{
"volumes": ["0580fb4c-de74-4b83-8bdb-1fd87d89f827"]
}'
# Get instance actions
curl -H "Authorization: Bearer $TOKEN" \
"https://api.genesiscloud.com/compute/v1/instances/<instance_id>/actions"
# Perform a reset action
curl -H "Authorization: Bearer $TOKEN" \
-X POST "https://api.genesiscloud.com/compute/v1/instances/<instance_id>/actions" \
-H "Content-Type: application/json" \
--data-raw '{
"action": "reset"
}'