Volumes
Volume Schema
id
String - A unique identifier for each volume. This is automatically generated.name
String - The human-readable name for the volume.description
String - The human-readable description for the volume.size
BigInt (String) - The storage size of this volume given in GiB.region
String - The identifier for the region this volume exists in (eg.ARC-IS-HAF-1
).type
String - The storage type of the volume. Possible values arehdd
andssd
. Thessd
type is currently available only inNORD-NO-KRS-1
region.instances
Array - The attached instances.status
String - The volume status. Possible values arecreating
,created
,pending_delete
,deleting
.created_at
String - A time value given in ISO8601 combined date and time format that represents when the volume was created.updated_at
String - A time value given in ISO8601 combined date and time format that represents when the volume was updated.
For legacy projects and accounts the created
status is split into available
and in-use
. Also an additional error
status exists.
Create a Volume
To create a new volume, send a request to:
POST /compute/v1/volumes (HTTP 201 - Created)
The attribute values that must be set to successfully create a volume are:
Body parameters
name
String Required - The human-readable name set for the volume.description
String Required - The human-readable description set for the volume.size
BigInt Required - The storage size of this volume given in GiB (Min: 1GiB).region
String Required - The identifier for the region in which this volume should be created in, see Regions.type
String Optional - The storage type of this volume. Defaults tohdd
, see Volume Schema.
{
"name": "<volume name>",
"description": "<volume description>",
"size": 50,
"region": "ARC-IS-HAF-1",
"type": "hdd"
}
Response body
The volume will be created using the provided information. The response body will contain a JSON object with standard attributes for your new volume, see Volume Schema:
{
"volume": {
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume name>",
"description": "<volume description>",
"size": 50,
"region": "ARC-IS-HAF-1",
"type": "hdd",
"instances": [],
"status": "created",
"created_at": "2020-07-28T07:53:11.177Z"
}
}
List Volumes
Lists all volumes of an account.
GET /compute/v1/volumes (HTTP 200 - OK)
Query parameters
per_page
Integer Optional - A positive integer lower than 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 volumes
.
This will be set to an array of volume objects, each of which will contain the volume object, see Volume Schema:
{
"volumes": [
{
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume name>",
"description": "<volume description>",
"size": 50,
"region": "ARC-IS-HAF-1",
"type": "hdd",
"instances": [
{
"id": "4c177746-3565-4fa3-872c-d8c6863c285b",
"name": "<instance-name>"
}
],
"status": "created",
"created_at": "2020-07-28T07:53:11.177Z"
}
],
"total_count": 1,
"page": 1,
"per_page": 50
}
Get Volume
Get details of one volume with a given ID.
GET /compute/v1/volumes/<volume_id> (HTTP 200 - OK)
Path parameters:
volume_id
String - volume id
Response body
The response will be a JSON object that contains the volume
attributes, see Volume Schema:
{
"volume": {
"id": "0580fb4c-de74-4b83-8bdb-1fd87d89f827",
"name": "<volume name>",
"description": "<volume description>",
"size": 1,
"region": "ARC-IS-HAF-1",
"type": "hdd",
"instances": [
{
"id": "4c177746-3565-4fa3-872c-d8c6863c285b",
"name": "<instance-name>"
}
],
"status": "created",
"created_at": "2020-07-28T07:53:11.177Z"
}
}
Delete a Volume
Delete a volume with the given ID
DELETE /compute/v1/volumes/<volume_id> (HTTP 204 - No content)
Path parameters:
volume_id
String - volume id
Examples (cURL)
# Create a new volume
curl -H "Authorization: Bearer $TOKEN" \
-X POST "https://api.genesiscloud.com/compute/v1/volumes" \
-H "Content-Type: application/json" \
--data-raw '{
"name": "name",
"description": "description",
"size": 1,
"region": "ARC-IS-HAF-1",
"type": "hdd"
}'
# List all volumes
curl -H "Authorization: Bearer $TOKEN" \
"https://api.genesiscloud.com/compute/v1/volumes"
# Get a volume by id
curl -H "Authorization: Bearer $TOKEN" \
"https://api.genesiscloud.com/compute/v1/volumes/<volume_id>"
# Delete a volume by id
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE "https://api.genesiscloud.com/compute/v1/volumes/<volume_id>"