Instance
Instances are the virtual machines at the core of the Exoscale Compute service.
create-instance
Create a Compute instance
POST /instanceRequest body
application/jsonapplication-consistent-snapshot-enabled(boolean): Enable application-consistent snapshot for the instanceanti-affinity-groups(array[object]): Instance Anti-affinity Groups - schema detailspublic-ip-assignment(string)labels(object)auto-start(boolean): Start Instance on creation (default: true)security-groups(array[object]): Instance Security Groups - schema detailsname(string): Instance nameinstance-type(required) (object): Compute instance type - schema detailstemplate(required) (object): Instance template - schema detailssecureboot-enabled(boolean): Enable secure bootssh-key(object): SSH key - schema detailsuser-data(string): Instance Cloud-init user-data (base64 encoded)tpm-enabled(boolean): Enable Trusted Platform Module (TPM)deploy-target(object): Deploy target - schema detailsipv6-enabled(boolean): Enable IPv6. DEPRECATED: usepublic-ip-assignments.disk-size(required) (integer): Instance disk size in GiBssh-keys(array[object]): Instance SSH Keys - schema details
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for create-instance: golang | Python | Java
CLI: exo api create-instance
get-instance
Retrieve Compute instance details
GET /instance/{id}Path parameters
idinpath(required)
Responses
200: 200application/jsonapplication-consistent-snapshot-enabled(boolean): Indicates if the instance will take application-consistent snapshotsanti-affinity-groups(array[object]): Instance Anti-affinity Groups - schema detailspublic-ip-assignment(string)labels(object)security-groups(array[object]): Instance Security Groups - schema detailselastic-ips(array[object]): Instance Elastic IPs - schema detailsname(string): Instance nameinstance-type(object): Compute instance type - schema detailsprivate-networks(array[object]): Instance Private Networks - schema detailstemplate(object): Instance template - schema detailsstate(string)secureboot-enabled(boolean): Indicates if the instance has secure boot enabledssh-key(object): SSH key - schema detailsuser-data(string): Instance Cloud-init user-data (base64 encoded)mac-address(string): Instance MAC addressmanager(object): Resource manager - schema detailstpm-enabled(boolean): Indicates if the instance has tpm enableddeploy-target(object): Deploy target - schema detailsipv6-address(string): Instance IPv6 addressid(string): Instance IDsnapshots(array[object]): Instance Snapshots - schema detailsdisk-size(integer): Instance disk size in GiBssh-keys(array[object]): Instance SSH Keys - schema detailscreated-at(string): Instance creation datepublic-ip(string): Instance public IPv4 address
SDK reference for get-instance: golang | Python | Java
CLI: exo api get-instance
reset-instance
Reset a Compute instance to a base/target template
PUT /instance/{id}:resetThis operation re-installs a Compute instance to a base template. If target template is provided it will be used to recreated instance from. Warning: the operation wipes all data stored on the disk.
Path parameters
idinpath(required)
Request body
application/jsontemplate(object): Instance template - schema detailsdisk-size(integer): Instance disk size in GiB
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for reset-instance: golang | Python | Java
CLI: exo api reset-instance
start-instance
Start a Compute instance
PUT /instance/{id}:startThis operation starts a virtual machine, potentially using a rescue profile if specified
Path parameters
idinpath(required)
Request body
application/jsonrescue-profile(string): Boot in Rescue Mode, using named profile (supported: netboot, netboot-efi)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for start-instance: golang | Python | Java
CLI: exo api start-instance
scale-instance
Scale a Compute instance to a new Instance Type
PUT /instance/{id}:scaleThis operation changes the Compute instance’s type. Note: the new Instance Type must be within the same family (e.g. a standard instance cannot be scaled to gpu2 or storage).
Path parameters
idinpath(required)
Request body
application/jsoninstance-type(required) (object): Compute instance type - schema details
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for scale-instance: golang | Python | Java
CLI: exo api scale-instance
stop-instance
Stop a Compute instance
PUT /instance/{id}:stopPath parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for stop-instance: golang | Python | Java
CLI: exo api stop-instance
reboot-instance
Reboot a Compute instance
PUT /instance/{id}:rebootPath parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for reboot-instance: golang | Python | Java
CLI: exo api reboot-instance
update-instance
Update a Compute instance
PUT /instance/{id}Path parameters
idinpath(required)
Request body
application/jsonname(string): Instance nameuser-data(string): Instance Cloud-init user-data (base64 encoded)public-ip-assignment(string)labels(object)application-consistent-snapshot-enabled(boolean): Enable/Disable Application Consistent Snapshot for Instance
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for update-instance: golang | Python | Java
CLI: exo api update-instance
delete-instance
Delete a Compute instance
DELETE /instance/{id}Path parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for delete-instance: golang | Python | Java
CLI: exo api delete-instance
reveal-instance-password
Reveal the password used during instance creation or the latest password reset.
GET /instance/{id}:passwordReveal the password used during instance creation or the latest password reset.
This is only available for VMs created against templates having the password-enabled
property set to true.
Passwords are transiently stored for at most 24 hours and intended to be retrieved shortly after
creation or resets.
Path parameters
idinpath(required)
Responses
200: 200application/jsonpassword(string): Password
SDK reference for reveal-instance-password: golang | Python | Java
CLI: exo api reveal-instance-password
reset-instance-password
Reset a compute instance password
PUT /instance/{id}:reset-passwordPath parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for reset-instance-password: golang | Python | Java
CLI: exo api reset-instance-password
remove-instance-protection
Remove instance destruction protection
PUT /instance/{id}:remove-protectionPath parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for remove-instance-protection: golang | Python | Java
CLI: exo api remove-instance-protection
add-instance-protection
Set instance destruction protection
PUT /instance/{id}:add-protectionPath parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for add-instance-protection: golang | Python | Java
CLI: exo api add-instance-protection
Other Operations
get-console-proxy-url
Retrieve signed url valid for 60 seconds to connect via console-proxy websocket to VM VNC console.
GET /console/{id}Path parameters
idinpath(required)
Responses
200: 200application/jsonurl(string)host(string)path(string)
SDK reference for get-console-proxy-url: golang | Python | Java
CLI: exo api get-console-proxy-url
resize-instance-disk
Resize a Compute instance disk
PUT /instance/{id}:resize-diskThis operation resizes a Compute instance’s disk volume. Note: the disk can only grow, cannot be shrunk.
Path parameters
idinpath(required)
Request body
application/jsondisk-size(required) (integer): Instance disk size in GiB
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for resize-instance-disk: golang | Python | Java
CLI: exo api resize-instance-disk
reset-instance-field
Reset Instance field
DELETE /instance/{id}/{field}Path parameters
idinpath(required)fieldinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for reset-instance-field: golang | Python | Java
CLI: exo api reset-instance-field
revert-instance-to-snapshot
Revert a snapshot for an instance
POST /instance/{instance-id}:revert-snapshotThis operation reverts the snapshot to the Compute instance volume, restoring stored data as it was at the time of the snapshot. The Compute instance must be previously stopped.
Path parameters
instance-idinpath(required)
Request body
application/jsonid(required) (string): Snapshot ID
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for revert-instance-to-snapshot: golang | Python | Java
CLI: exo api revert-instance-to-snapshot
list-instances
List Compute instances
GET /instanceQuery parameters
manager-idinquery(optional)manager-typeinquery(optional)ip-addressinquery(optional)
Responses
200: 200application/jsoninstances(array[object]) - schema details
SDK reference for list-instances: golang | Python | Java
CLI: exo api list-instances
create-snapshot
Create a Snapshot of a Compute instance
POST /instance/{id}:create-snapshotPath parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for create-snapshot: golang | Python | Java
CLI: exo api create-snapshot
enable-tpm
Enable tpm for the instance.
POST /instance/{id}:enable-tpmPath parameters
idinpath(required)
Responses
200: 200application/jsonid(string): Operation IDreason(string): Operation failure reasonreference(object): Related resource reference - schema detailsmessage(string): Operation messagestate(string): Operation status
SDK reference for enable-tpm: golang | Python | Java
CLI: exo api enable-tpm