Skip to content

API: Compute

Generated from the API's OpenAPI schema. Paths are relative to https://cloud.tebibhost.com. Authentication, errors, pagination and idempotency are on the API overview.

GET/api/v1/projects/{project_id}/images

List Images (listImages)

IAM action: compute:DescribeImage

ParameterInTypeDescription
project_id requiredpathstring

Responses

  • 200 OK (array of ImageOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)

GET/api/v1/projects/{project_id}/instance-types

List Instance Types (listInstanceTypes)

IAM action: compute:DescribeInstanceType

ParameterInTypeDescription
project_id requiredpathstring

Responses

  • 200 OK (array of InstanceTypeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)

GET/api/v1/projects/{project_id}/snapshot-schedules

List Snapshot Schedules (listSnapshotSchedules)

IAM action: compute:DescribeSnapshotSchedule

ParameterInTypeDescription
project_id requiredpathstring
vm_idquerystring (nullable)
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_SnapshotScheduleOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_SnapshotScheduleOut_
FieldTypeDescription
itemsarray of SnapshotScheduleOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/snapshot-schedules

Create Snapshot Schedule (createSnapshotSchedule)

Snapshot a VM on a schedule and delete its old snapshots (scheduled backups). The caller must also be allowed to snapshot the VM (compute:CreateSnapshot on it); TebibHost's scheduler then takes the snapshots, whoever made the schedule.

IAM action: compute:CreateSnapshotSchedule

ParameterInTypeDescription
project_id requiredpathstring

Request body (JSON, SnapshotScheduleIn)

FieldTypeDescription
cronstring (nullable)For frequency custom: minute hour day-of-month month day-of-week, e.g. 30 2 * * 1-5. At most once an hour: the minute is one number
descriptionstring Default: "".
enabledboolean Default: true.
frequency required"hourly" | "daily" | "weekly" | "custom"hourly (at minute), daily (at hour:minute), weekly (on weekday at hour:minute), or custom (cron)
hourinteger Default: 0.
minuteinteger Default: 0.
name requiredstring
retention_countinteger (nullable)Keep the newest N snapshots this schedule took
retention_daysinteger (nullable)Delete snapshots this schedule took once they are N days old
tagsobject
timezonestringIANA time zone of the times, e.g. Africa/Nairobi Default: "UTC".
vm_id requiredstring
weekdayinteger0 = Sunday, 6 = Saturday Default: 0.

Responses

  • 202 Accepted (SnapshotScheduleOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotScheduleOut
FieldTypeDescription
created_atstring (date-time)
cronstringThe effective cron expression, presets included
descriptionstring
enabledboolean
failuresintegerRuns in a row that didn't succeed
frequencystring
idstring
last_runSnapshotScheduleRunOut (nullable)
missedintegerRuns not taken because the scheduler wasn't running
namestring
next_run_atstring (date-time) (nullable)The next run (UTC); null while disabled
project_idstring
retention_countinteger (nullable)
retention_daysinteger (nullable)
snapshot_countintegerLive snapshots this schedule took
statestring
status_messagestring
tagsobject
timezonestring
trnstring
updated_atstring (date-time)
vm_idstring

GET/api/v1/projects/{project_id}/snapshot-schedules/{schedule_id}

Get Snapshot Schedule (getSnapshotSchedule)

IAM action: compute:DescribeSnapshotSchedule

ParameterInTypeDescription
project_id requiredpathstring
schedule_id requiredpathstring

Responses

  • 200 OK (SnapshotScheduleOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotScheduleOut
FieldTypeDescription
created_atstring (date-time)
cronstringThe effective cron expression, presets included
descriptionstring
enabledboolean
failuresintegerRuns in a row that didn't succeed
frequencystring
idstring
last_runSnapshotScheduleRunOut (nullable)
missedintegerRuns not taken because the scheduler wasn't running
namestring
next_run_atstring (date-time) (nullable)The next run (UTC); null while disabled
project_idstring
retention_countinteger (nullable)
retention_daysinteger (nullable)
snapshot_countintegerLive snapshots this schedule took
statestring
status_messagestring
tagsobject
timezonestring
trnstring
updated_atstring (date-time)
vm_idstring

PATCH/api/v1/projects/{project_id}/snapshot-schedules/{schedule_id}

Update Snapshot Schedule (updateSnapshotSchedule)

Change the schedule or the retention, or turn it off and on. A changed schedule, or one turned on again, starts from now: runs already past are not taken.

IAM action: compute:UpdateSnapshotSchedule

ParameterInTypeDescription
project_id requiredpathstring
schedule_id requiredpathstring

Request body (JSON, SnapshotSchedulePatch)

FieldTypeDescription
clear_retention_countbooleanStop keeping by count (retention_days must then be set) Default: false.
clear_retention_daysbooleanStop keeping by age (retention_count must then be set) Default: false.
cronstring (nullable)
descriptionstring (nullable)
enabledboolean (nullable)
frequency"hourly" | "daily" | "weekly" | "custom" (nullable)
hourinteger (nullable)
minuteinteger (nullable)
retention_countinteger (nullable)
retention_daysinteger (nullable)
tagsobject (nullable)
timezonestring (nullable)
weekdayinteger (nullable)

Responses

  • 200 OK (SnapshotScheduleOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotScheduleOut
FieldTypeDescription
created_atstring (date-time)
cronstringThe effective cron expression, presets included
descriptionstring
enabledboolean
failuresintegerRuns in a row that didn't succeed
frequencystring
idstring
last_runSnapshotScheduleRunOut (nullable)
missedintegerRuns not taken because the scheduler wasn't running
namestring
next_run_atstring (date-time) (nullable)The next run (UTC); null while disabled
project_idstring
retention_countinteger (nullable)
retention_daysinteger (nullable)
snapshot_countintegerLive snapshots this schedule took
statestring
status_messagestring
tagsobject
timezonestring
trnstring
updated_atstring (date-time)
vm_idstring

DELETE/api/v1/projects/{project_id}/snapshot-schedules/{schedule_id}

Delete Snapshot Schedule (deleteSnapshotSchedule)

Stop the schedule. The snapshots it took stay (and bill) until you delete them.

IAM action: compute:DeleteSnapshotSchedule

ParameterInTypeDescription
project_id requiredpathstring
schedule_id requiredpathstring

Responses

  • 202 Accepted (SnapshotScheduleOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotScheduleOut
FieldTypeDescription
created_atstring (date-time)
cronstringThe effective cron expression, presets included
descriptionstring
enabledboolean
failuresintegerRuns in a row that didn't succeed
frequencystring
idstring
last_runSnapshotScheduleRunOut (nullable)
missedintegerRuns not taken because the scheduler wasn't running
namestring
next_run_atstring (date-time) (nullable)The next run (UTC); null while disabled
project_idstring
retention_countinteger (nullable)
retention_daysinteger (nullable)
snapshot_countintegerLive snapshots this schedule took
statestring
status_messagestring
tagsobject
timezonestring
trnstring
updated_atstring (date-time)
vm_idstring

GET/api/v1/projects/{project_id}/snapshots

List Snapshots (listSnapshots)

IAM action: compute:DescribeSnapshot

ParameterInTypeDescription
project_id requiredpathstring
vm_idquerystring (nullable)
schedule_idquerystring (nullable)
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_SnapshotOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_SnapshotOut_
FieldTypeDescription
itemsarray of SnapshotOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/snapshots

Create Snapshot (createSnapshot)

Snapshot every disk of a VM. A running VM with the guest agent gets its filesystems frozen for the moment of the snapshot (application-consistent); otherwise the snapshot is crash-consistent.

IAM action: compute:CreateSnapshot

ParameterInTypeDescription
project_id requiredpathstring

Request body (JSON, SnapshotIn)

FieldTypeDescription
descriptionstring Default: "".
name requiredstring
tagsobject
vm_id requiredstring

Responses

  • 202 Accepted (SnapshotOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotOut
FieldTypeDescription
consistency"application" | "crash" (nullable)application: filesystems were frozen through the guest agent
created_atstring (date-time)
descriptionstring
idstring
namestring
project_idstring
schedule_idstring (nullable)The snapshot schedule that took it; null for a snapshot taken by hand
scheduled_forstring (date-time) (nullable)The schedule's run it was taken for (UTC); null for a snapshot taken by hand
size_gibinteger
statestring
status_messagestring
tagsobject
taken_atstring (date-time) (nullable)
trnstring
updated_atstring (date-time)
vm_idstring
volume_idsarray of string

GET/api/v1/projects/{project_id}/snapshots/{snapshot_id}

Get Snapshot (getSnapshot)

IAM action: compute:DescribeSnapshot

ParameterInTypeDescription
project_id requiredpathstring
snapshot_id requiredpathstring

Responses

  • 200 OK (SnapshotOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotOut
FieldTypeDescription
consistency"application" | "crash" (nullable)application: filesystems were frozen through the guest agent
created_atstring (date-time)
descriptionstring
idstring
namestring
project_idstring
schedule_idstring (nullable)The snapshot schedule that took it; null for a snapshot taken by hand
scheduled_forstring (date-time) (nullable)The schedule's run it was taken for (UTC); null for a snapshot taken by hand
size_gibinteger
statestring
status_messagestring
tagsobject
taken_atstring (date-time) (nullable)
trnstring
updated_atstring (date-time)
vm_idstring
volume_idsarray of string

PATCH/api/v1/projects/{project_id}/snapshots/{snapshot_id}

Update Snapshot (updateSnapshot)

IAM action: compute:UpdateSnapshot

ParameterInTypeDescription
project_id requiredpathstring
snapshot_id requiredpathstring

Request body (JSON, VMPatch)

FieldTypeDescription
descriptionstring (nullable)
tagsobject (nullable)

Responses

  • 200 OK (SnapshotOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotOut
FieldTypeDescription
consistency"application" | "crash" (nullable)application: filesystems were frozen through the guest agent
created_atstring (date-time)
descriptionstring
idstring
namestring
project_idstring
schedule_idstring (nullable)The snapshot schedule that took it; null for a snapshot taken by hand
scheduled_forstring (date-time) (nullable)The schedule's run it was taken for (UTC); null for a snapshot taken by hand
size_gibinteger
statestring
status_messagestring
tagsobject
taken_atstring (date-time) (nullable)
trnstring
updated_atstring (date-time)
vm_idstring
volume_idsarray of string

DELETE/api/v1/projects/{project_id}/snapshots/{snapshot_id}

Delete Snapshot (deleteSnapshot)

IAM action: compute:DeleteSnapshot

ParameterInTypeDescription
project_id requiredpathstring
snapshot_id requiredpathstring

Responses

  • 202 Accepted (SnapshotOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SnapshotOut
FieldTypeDescription
consistency"application" | "crash" (nullable)application: filesystems were frozen through the guest agent
created_atstring (date-time)
descriptionstring
idstring
namestring
project_idstring
schedule_idstring (nullable)The snapshot schedule that took it; null for a snapshot taken by hand
scheduled_forstring (date-time) (nullable)The schedule's run it was taken for (UTC); null for a snapshot taken by hand
size_gibinteger
statestring
status_messagestring
tagsobject
taken_atstring (date-time) (nullable)
trnstring
updated_atstring (date-time)
vm_idstring
volume_idsarray of string

GET/api/v1/projects/{project_id}/ssh-keys

List Ssh Keys (listSshKeys)

IAM action: compute:DescribeSSHKey

ParameterInTypeDescription
project_id requiredpathstring
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_SSHKeyOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_SSHKeyOut_
FieldTypeDescription
itemsarray of SSHKeyOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/ssh-keys

Create Ssh Key (createSshKey)

IAM action: compute:CreateSSHKey

ParameterInTypeDescription
project_id requiredpathstring

Request body (JSON, SSHKeyIn)

FieldTypeDescription
descriptionstring Default: "".
name requiredstring
public_key requiredstring
tagsobject

Responses

  • 202 Accepted (SSHKeyOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SSHKeyOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fingerprintstring
idstring
key_typestring
namestring
project_idstring
public_keystring
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)

GET/api/v1/projects/{project_id}/ssh-keys/{key_id}

Get Ssh Key (getSshKey)

IAM action: compute:DescribeSSHKey

ParameterInTypeDescription
project_id requiredpathstring
key_id requiredpathstring

Responses

  • 200 OK (SSHKeyOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SSHKeyOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fingerprintstring
idstring
key_typestring
namestring
project_idstring
public_keystring
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)

PATCH/api/v1/projects/{project_id}/ssh-keys/{key_id}

Update Ssh Key (updateSshKey)

IAM action: compute:UpdateSSHKey

ParameterInTypeDescription
project_id requiredpathstring
key_id requiredpathstring

Request body (JSON, VMPatch)

FieldTypeDescription
descriptionstring (nullable)
tagsobject (nullable)

Responses

  • 200 OK (SSHKeyOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SSHKeyOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fingerprintstring
idstring
key_typestring
namestring
project_idstring
public_keystring
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)

DELETE/api/v1/projects/{project_id}/ssh-keys/{key_id}

Delete Ssh Key (deleteSshKey)

Removes the key from the project. VMs created with it keep it (cloud-init ran).

IAM action: compute:DeleteSSHKey

ParameterInTypeDescription
project_id requiredpathstring
key_id requiredpathstring

Responses

  • 202 Accepted (SSHKeyOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of SSHKeyOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fingerprintstring
idstring
key_typestring
namestring
project_idstring
public_keystring
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)

GET/api/v1/projects/{project_id}/vms

List Vms (listVms)

IAM action: compute:DescribeVM

ParameterInTypeDescription
project_id requiredpathstring
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_VMOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_VMOut_
FieldTypeDescription
itemsarray of VMOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/vms

Create Vm (createVm)

Create a VM and its boot volume (a clone of the image), started unless asked not to.

IAM action: compute:CreateVM

ParameterInTypeDescription
project_id requiredpathstring

Request body (JSON, VMIn)

FieldTypeDescription
descriptionstring Default: "".
hostnamestring (nullable)Defaults to the name, lowercased, as a DNS label
image requiredstring
instance_type requiredstring
name requiredstring
power_state"running" | "stopped" Default: "running".
root_disk_gibinteger (nullable)Defaults to 20 GiB or the image's minimum, whichever is larger
security_group_idsarray of string (nullable)Defaults to the subnet VPC's default security group
ssh_key_idsarray of string
subnet_idstring (nullable)Defaults to the default VPC's default subnet
tagsobject
user_datastringOptional cloud-init user data (any format: #cloud-config, a script...) Default: "".

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

GET/api/v1/projects/{project_id}/vms/{vm_id}

Get Vm (getVm)

IAM action: compute:DescribeVM

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Responses

  • 200 OK (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

PATCH/api/v1/projects/{project_id}/vms/{vm_id}

Update Vm (updateVm)

IAM action: compute:UpdateVM

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Request body (JSON, VMPatch)

FieldTypeDescription
descriptionstring (nullable)
tagsobject (nullable)

Responses

  • 200 OK (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

DELETE/api/v1/projects/{project_id}/vms/{vm_id}

Delete Vm (deleteVm)

Delete the VM. Volumes with delete_on_termination (the boot disk by default) go with it; the others are detached and kept. Its snapshot schedules are deleted; its snapshots are kept until deleted.

IAM action: compute:DeleteVM

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

GET/api/v1/projects/{project_id}/vms/{vm_id}/activity

VM activity (listVmActivity)

Audit events for this VM (who did what, when), newest first.

IAM action: compute:ListVMActivity

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring
limitqueryinteger
cursorquerystring (nullable)

Responses

  • 200 OK (VMActivityPage)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMActivityPage
FieldTypeDescription
itemsarray of VMActivityEventOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/vms/{vm_id}/console

Create Console Ticket (createConsoleTicket)

A one-time websocket URL for the VM's serial or VNC console, valid for 60 s.

IAM action: compute:ConnectConsole

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Request body (JSON, VMConsoleIn)

FieldTypeDescription
kind"serial" | "vnc" Default: "serial".

Responses

  • 201 Created (VMConsoleOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMConsoleOut
FieldTypeDescription
expires_atstring (date-time)
kindstring
urlstringOpen a websocket to this URL within expires_at

GET/api/v1/projects/{project_id}/vms/{vm_id}/metrics

VM metrics (getVmMetrics)

CPU, memory, network and disk usage over a window. Series are empty (all null) while the VM is stopped. 503 MetricsUnavailable when the metrics store can't answer; retry later.

IAM action: compute:GetVMMetrics

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring
windowquery"1h" | "6h" | "24h" | "7d"

Responses

  • 200 OK (VMMetricsOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMMetricsOut
FieldTypeDescription
endstring (date-time)
memory_bytesinteger
seriesarray of MetricSeriesOut
startstring (date-time)
step_secondsinteger
timestampsarray of integerUnix seconds, shared by every series
vcpusinteger
window"1h" | "6h" | "24h" | "7d"

POST/api/v1/projects/{project_id}/vms/{vm_id}/reboot

Reboot Vm (rebootVm)

IAM action: compute:RebootVM

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Request body (JSON, RebootVMIn)

FieldTypeDescription
hardbooleanPower-cycle instead of asking the guest to reboot (ACPI/guest agent) Default: false.

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

POST/api/v1/projects/{project_id}/vms/{vm_id}/resize

Resize Vm (resizeVm)

Change the instance type of a stopped VM (offline resize, plan: Resize).

IAM action: compute:ResizeVM

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Request body (JSON, ResizeVMIn)

FieldTypeDescription
instance_type requiredstring

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

POST/api/v1/projects/{project_id}/vms/{vm_id}/restore

Restore Vm (restoreVm)

Roll the VM's disks back to a snapshot. The VM must be stopped; it stays stopped.

IAM action: compute:RestoreSnapshot

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Request body (JSON, RestoreVMIn)

FieldTypeDescription
snapshot_id requiredstring

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

PUT/api/v1/projects/{project_id}/vms/{vm_id}/security-groups

Set Vm Security Groups (setVmSecurityGroups)

Replace the VM's security groups (same VPC). Applies to a running VM within seconds.

IAM action: compute:SetVMSecurityGroups

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Request body (JSON, VMSecurityGroupsIn)

FieldTypeDescription
security_group_ids requiredarray of string

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

POST/api/v1/projects/{project_id}/vms/{vm_id}/start

Start Vm (startVm)

Start the VM, also after it was shut down from inside the guest.

IAM action: compute:StartVM

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

POST/api/v1/projects/{project_id}/vms/{vm_id}/stop

Stop Vm (stopVm)

Graceful shutdown (ACPI); KubeVirt powers the VM off if the guest ignores it.

IAM action: compute:StopVM

ParameterInTypeDescription
project_id requiredpathstring
vm_id requiredpathstring

Responses

  • 202 Accepted (VMOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VMOut
FieldTypeDescription
addressesarray of VMAddressOut
boot_volume_idstring (nullable)
created_atstring (date-time)
descriptionstring
desired_power_statestringrunning or stopped, as last requested
guest_agentboolean
guest_osVMGuestOSOut (nullable)
held_reasonstring (nullable)Set while TebibHost holds the VM for abuse review: it can't be started
hostnamestring
idstring
imagestring
instance_typestring
last_actionVMLastActionOut (nullable)
memory_mibinteger
namestring
power_statestringAs observed: running, stopped, starting, stopping, paused, error, unknown
project_idstring
restart_requiredboolean
security_group_idsarray of string
ssh_key_idsarray of string
statestring
status_messagestring
stop_reason"guest" | "abuse" | "balance" | "suspended" (nullable)guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended
subnet_idstring
tagsobject
trnstring
updated_atstring (date-time)
vcpusinteger
volumesarray of VolumeAttachmentOut

GET/api/v1/projects/{project_id}/volumes

List Volumes (listVolumes)

IAM action: compute:DescribeVolume

ParameterInTypeDescription
project_id requiredpathstring
vm_idquerystring (nullable)
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_VolumeOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_VolumeOut_
FieldTypeDescription
itemsarray of VolumeOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/volumes

Create Volume (createVolume)

IAM action: compute:CreateVolume

ParameterInTypeDescription
project_id requiredpathstring

Request body (JSON, VolumeIn)

FieldTypeDescription
delete_on_terminationboolean Default: false.
descriptionstring Default: "".
name requiredstring
size_gib requiredinteger
tagsobject
vm_idstring (nullable)Attach to this VM once created

Responses

  • 202 Accepted (VolumeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VolumeOut
FieldTypeDescription
bootboolean
created_atstring (date-time)
delete_on_terminationboolean
descriptionstring
idstring
namestring
project_idstring
size_gibinteger
source_imagestring (nullable)
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
vm_idstring (nullable)

GET/api/v1/projects/{project_id}/volumes/{volume_id}

Get Volume (getVolume)

IAM action: compute:DescribeVolume

ParameterInTypeDescription
project_id requiredpathstring
volume_id requiredpathstring

Responses

  • 200 OK (VolumeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VolumeOut
FieldTypeDescription
bootboolean
created_atstring (date-time)
delete_on_terminationboolean
descriptionstring
idstring
namestring
project_idstring
size_gibinteger
source_imagestring (nullable)
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
vm_idstring (nullable)

PATCH/api/v1/projects/{project_id}/volumes/{volume_id}

Update Volume (updateVolume)

IAM action: compute:UpdateVolume

ParameterInTypeDescription
project_id requiredpathstring
volume_id requiredpathstring

Request body (JSON, VolumePatch)

FieldTypeDescription
delete_on_terminationboolean (nullable)
descriptionstring (nullable)
tagsobject (nullable)

Responses

  • 200 OK (VolumeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VolumeOut
FieldTypeDescription
bootboolean
created_atstring (date-time)
delete_on_terminationboolean
descriptionstring
idstring
namestring
project_idstring
size_gibinteger
source_imagestring (nullable)
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
vm_idstring (nullable)

DELETE/api/v1/projects/{project_id}/volumes/{volume_id}

Delete Volume (deleteVolume)

IAM action: compute:DeleteVolume

ParameterInTypeDescription
project_id requiredpathstring
volume_id requiredpathstring

Responses

  • 202 Accepted (VolumeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VolumeOut
FieldTypeDescription
bootboolean
created_atstring (date-time)
delete_on_terminationboolean
descriptionstring
idstring
namestring
project_idstring
size_gibinteger
source_imagestring (nullable)
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
vm_idstring (nullable)

POST/api/v1/projects/{project_id}/volumes/{volume_id}/attach

Attach Volume (attachVolume)

IAM action: compute:AttachVolume

ParameterInTypeDescription
project_id requiredpathstring
volume_id requiredpathstring

Request body (JSON, AttachVolumeIn)

FieldTypeDescription
vm_id requiredstring

Responses

  • 202 Accepted (VolumeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VolumeOut
FieldTypeDescription
bootboolean
created_atstring (date-time)
delete_on_terminationboolean
descriptionstring
idstring
namestring
project_idstring
size_gibinteger
source_imagestring (nullable)
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
vm_idstring (nullable)

POST/api/v1/projects/{project_id}/volumes/{volume_id}/detach

Detach Volume (detachVolume)

Unplug a data volume (live if the VM runs). Unmount it in the guest first.

IAM action: compute:DetachVolume

ParameterInTypeDescription
project_id requiredpathstring
volume_id requiredpathstring

Responses

  • 202 Accepted (VolumeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VolumeOut
FieldTypeDescription
bootboolean
created_atstring (date-time)
delete_on_terminationboolean
descriptionstring
idstring
namestring
project_idstring
size_gibinteger
source_imagestring (nullable)
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
vm_idstring (nullable)

POST/api/v1/projects/{project_id}/volumes/{volume_id}/resize

Resize Volume (resizeVolume)

Grow a volume, also while attached to a running VM (the guest sees the new size; grow the partition/filesystem inside it). Volumes never shrink.

IAM action: compute:ResizeVolume

ParameterInTypeDescription
project_id requiredpathstring
volume_id requiredpathstring

Request body (JSON, ResizeVolumeIn)

FieldTypeDescription
size_gib requiredinteger

Responses

  • 202 Accepted (VolumeOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of VolumeOut
FieldTypeDescription
bootboolean
created_atstring (date-time)
delete_on_terminationboolean
descriptionstring
idstring
namestring
project_idstring
size_gibinteger
source_imagestring (nullable)
statestring
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
vm_idstring (nullable)