Block Storage
Exoscale’s Block Storage offers persistent externally attached volumes for your Compute instances.
create-block-storage-snapshot
Create a block storage snapshot
POST /block-storage/{id}:create-snapshotPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
labels | object | no | Resource labels |
name | string | no | Snapshot name |
Example
{
"labels": {},
"name": "string"
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for create-block-storage-snapshot: golang | Python | Java
CLI: exo api create-block-storage-snapshot
get-block-storage-snapshot
Retrieve block storage snapshot details
GET /block-storage-snapshot/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
block-storage-volume | object | Target block storage volume schema details |
created-at | string | Snapshot creation date |
id | string | Snapshot ID |
labels | object | Resource labels |
name | string | Snapshot name |
size | integer | Snapshot size |
state | string | Snapshot state Allowed values: partially-destroyed, destroying, creating, created, promoting, error, destroyed, allocated. |
volume-size | integer | Original Volume size |
Example output
{
"block-storage-volume": {
"id": "string"
},
"created-at": "2024-01-01T12:00:00Z",
"id": "string",
"labels": {},
"name": "string",
"size": 0,
"state": "partially-destroyed",
"volume-size": 0
}SDK reference for get-block-storage-snapshot: golang | Python | Java
CLI: exo api get-block-storage-snapshot
update-block-storage-snapshot
Update block storage volume snapshot
PUT /block-storage-snapshot/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
labels | object | no | Resource labels |
name | string | no | Snapshot name |
Example
{
"labels": {},
"name": "string"
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for update-block-storage-snapshot: golang | Python | Java
CLI: exo api update-block-storage-snapshot
delete-block-storage-snapshot
Delete a block storage snapshot, data will be unrecoverable
DELETE /block-storage-snapshot/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for delete-block-storage-snapshot: golang | Python | Java
CLI: exo api delete-block-storage-snapshot
create-block-storage-volume
Create a block storage volume
POST /block-storageRequest body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
block-storage-snapshot | object | no | Target block storage snapshot schema details |
labels | object | no | Resource labels |
name | string | no | Volume name |
size | integer | no | Volume size in GiB. When a snapshot ID is supplied, this defaults to the size of the source volume, but can be set to a larger value. |
Example
{
"block-storage-snapshot": {
"id": "string"
},
"labels": {},
"name": "string",
"size": 0
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for create-block-storage-volume: golang | Python | Java
CLI: exo api create-block-storage-volume
get-block-storage-volume
Retrieve block storage volume details
GET /block-storage/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
block-storage-snapshots | array[object] | Volume snapshots, if any schema details |
blocksize | integer | Volume block size |
created-at | string | Volume creation date |
id | string | Volume ID |
instance | object | Target Instance schema details |
labels | object | Resource labels |
name | string | Volume name |
size | integer | Volume size |
state | string | Volume state Allowed values: snapshotting, deleted, creating, detached, deleting, attaching, error, attached, detaching. |
Example output
{
"block-storage-snapshots": [
{
"id": "string"
}
],
"blocksize": 0,
"created-at": "2024-01-01T12:00:00Z",
"id": "string",
"instance": {
"id": "string"
},
"labels": {},
"name": "string",
"size": 0,
"state": "snapshotting"
}SDK reference for get-block-storage-volume: golang | Python | Java
CLI: exo api get-block-storage-volume
resize-block-storage-volume
Resize a block storage volume
PUT /block-storage/{id}:resize-volumeThis operation resizes a Block storage volume. Note: the volume can only grow, cannot be shrunk. Only detached volumes or volumes attached to stopped instances can be resized.
Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
size | integer | yes | Volume size in GiB |
Example
{
"size": 0
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
block-storage-snapshots | array[object] | Volume snapshots, if any schema details |
blocksize | integer | Volume block size |
created-at | string | Volume creation date |
id | string | Volume ID |
instance | object | Target Instance schema details |
labels | object | Resource labels |
name | string | Volume name |
size | integer | Volume size |
state | string | Volume state Allowed values: snapshotting, deleted, creating, detached, deleting, attaching, error, attached, detaching. |
Example output
{
"block-storage-snapshots": [
{
"id": "string"
}
],
"blocksize": 0,
"created-at": "2024-01-01T12:00:00Z",
"id": "string",
"instance": {
"id": "string"
},
"labels": {},
"name": "string",
"size": 0,
"state": "snapshotting"
}SDK reference for resize-block-storage-volume: golang | Python | Java
CLI: exo api resize-block-storage-volume
detach-block-storage-volume
Detach block storage volume
PUT /block-storage/{id}:detachPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for detach-block-storage-volume: golang | Python | Java
CLI: exo api detach-block-storage-volume
update-block-storage-volume
Update block storage volume
PUT /block-storage/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
labels | object | no | Resource labels |
name | string | no | Volume name |
Example
{
"labels": {},
"name": "string"
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for update-block-storage-volume: golang | Python | Java
CLI: exo api update-block-storage-volume
delete-block-storage-volume
Delete a block storage volume, data will be unrecoverable
DELETE /block-storage/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for delete-block-storage-volume: golang | Python | Java
CLI: exo api delete-block-storage-volume
Other Operations
list-block-storage-snapshots
List block storage snapshots
GET /block-storage-snapshotResponses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
block-storage-snapshots | array[object] | schema details |
Example output
{
"block-storage-snapshots": [
{
"block-storage-volume": {
"id": "string"
},
"created-at": "2024-01-01T12:00:00Z",
"id": "string",
"labels": {},
"name": "string",
"size": 0,
"state": "partially-destroyed",
"volume-size": 0
}
]
}SDK reference for list-block-storage-snapshots: golang | Python | Java
CLI: exo api list-block-storage-snapshots
attach-block-storage-volume-to-instance
Attach block storage volume to an instance
PUT /block-storage/{id}:attachPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
instance | object | yes | Target Instance schema details |
Example
{
"instance": {
"id": "string"
}
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for attach-block-storage-volume-to-instance: golang | Python | Java
CLI: exo api attach-block-storage-volume-to-instance
list-block-storage-volumes
List block storage volumes
GET /block-storageQuery parameters
| Name | In | Required | Description |
|---|---|---|---|
instance-id | query | no |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
block-storage-volumes | array[object] | schema details |
Example output
{
"block-storage-volumes": [
{
"block-storage-snapshots": [
{
"id": "string"
}
],
"blocksize": 0,
"created-at": "2024-01-01T12:00:00Z",
"id": "string",
"instance": {
"id": "string"
},
"labels": {},
"name": "string",
"size": 0,
"state": "snapshotting"
}
]
}SDK reference for list-block-storage-volumes: golang | Python | Java
CLI: exo api list-block-storage-volumes