volumes
Creates, updates, deletes, gets or lists a volumes resource.
Overview​
| Name | volumes |
| Type | Resource |
| Id | ovh.cloud_storage.volumes |
Fields​
The following fields are returned by SELECT queries:
- get
- list
successful operation
| Name | Datatype | Description |
|---|---|---|
id | string | Volume id |
name | string | Volume name |
attached_to | array | Volume attached to instances id (wire: attachedTo) |
availability_zone | string | Availability zone of the volume (wire: availabilityZone) |
bootable | boolean | Volume bootable |
creation_date | string (date-time) | Volume creation date (wire: creationDate) |
description | string | Volume description |
plan_code | string | Order plan code (wire: planCode) |
region | string | Volume region |
size | integer | Volume size (in GB) |
status | string | Volume status (attaching, available, awaiting-transfer, backing-up, creating, deleted, deleting, detaching, downloading, error, error_backing-up, error_deleting, error_extending, error_restoring, extending, in-use, maintenance, reserved, restoring-backup, retyping, snapshotting, uploading) |
type | string | Volume type (classic, classic-luks, classic-multiattach, high-speed, high-speed-gen2, high-speed-gen2-luks, high-speed-luks) |
Volume
| Name | Datatype | Description |
|---|---|---|
id | string | Volume id |
name | string | Volume name |
attached_to | array | Volume attached to instances id (wire: attachedTo) |
availability_zone | string | Availability zone of the volume (wire: availabilityZone) |
bootable | boolean | Volume bootable |
creation_date | string (date-time) | Volume creation date (wire: creationDate) |
description | string | Volume description |
plan_code | string | Order plan code (wire: planCode) |
region | string | Volume region |
size | integer | Volume size (in GB) |
status | string | Volume status (attaching, available, awaiting-transfer, backing-up, creating, deleted, deleting, detaching, downloading, error, error_backing-up, error_deleting, error_extending, error_restoring, extending, in-use, maintenance, reserved, restoring-backup, retyping, snapshotting, uploading) |
type | string | Volume type (classic, classic-luks, classic-multiattach, high-speed, high-speed-gen2, high-speed-gen2-luks, high-speed-luks) |
Methods​
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
get | select | volume_id, service_name | Get volume details | |
list | select | service_name | region | Get volumes |
create | insert | service_name, region, size, type | Create a volume | |
update | update | volume_id, service_name | Update a volume | |
delete | delete | volume_id, service_name | Delete a volume | |
attach | exec | volumeId, service_name, instanceId | Attach a volume on an instance | |
detach | exec | volumeId, service_name, instanceId | Detach a volume from an instance | |
snapshot | exec | volumeId, service_name | Snapshot a volume | |
upsize | exec | volumeId, service_name, size | Extend a volume |
Parameters​
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
api_host | string | The OVHcloud API host. Selected by OVH_ENDPOINT (ovh-eu, ovh-ca or ovh-us; default ovh-eu). (default: api.eu.ovhcloud.com, x-stackQL-envVarSelector: {"envVar":"OVH_ENDPOINT","default":"ovh-eu","values":{"ovh-eu":"api.eu.ovhcloud.com","ovh-ca":"api.ca.ovhcloud.com","ovh-us":"api.us.ovhcloud.com"}}) |
service_name | string | The Public Cloud project ID. Resolved from OVH_CLOUD_PROJECT_SERVICE when set. |
volumeId | string | Volume ID |
volume_id | string | Volume ID (wire: volumeId) |
region | string | Volume region |
SELECT examples​
- get
- list
Get volume details
SELECT
id,
name,
attached_to,
availability_zone,
bootable,
creation_date,
description,
plan_code,
region,
size,
status,
type
FROM ovh.cloud_storage.volumes
WHERE volume_id = '{{ volume_id }}' -- required
AND service_name = '{{ service_name }}' -- required unless OVH_CLOUD_PROJECT_SERVICE is set
;
Get volumes
SELECT
id,
name,
attached_to,
availability_zone,
bootable,
creation_date,
description,
plan_code,
region,
size,
status,
type
FROM ovh.cloud_storage.volumes
WHERE service_name = '{{ service_name }}' -- required unless OVH_CLOUD_PROJECT_SERVICE is set
AND region = '{{ region }}'
;
INSERT examples​
- create
- Manifest
Create a volume
INSERT INTO ovh.cloud_storage.volumes (
availability_zone,
description,
image_id,
name,
region,
size,
snapshot_id,
type,
service_name
)
SELECT
'{{ availability_zone }}',
'{{ description }}',
'{{ image_id }}',
'{{ name }}',
'{{ region }}' /* required */,
{{ size }} /* required */,
'{{ snapshot_id }}',
'{{ type }}' /* required */,
'{{ service_name }}'
RETURNING
id,
name,
attached_to,
availability_zone,
bootable,
creation_date,
description,
plan_code,
region,
size,
status,
type
;
# Description fields are for documentation purposes
- name: volumes
props:
- name: service_name
value: "{{ service_name }}"
description: Required parameter for the volumes resource.
- name: availability_zone
value: "{{ availability_zone }}"
description: |
Availability zone of the volume (required for 3AZ regions, forbidden for classic type)
- name: description
value: "{{ description }}"
description: |
Volume description
- name: image_id
value: "{{ image_id }}"
description: |
Id of image to create a bootable volume
- name: name
value: "{{ name }}"
description: |
Volume name
- name: region
value: "{{ region }}"
description: |
Volume region
- name: size
value: {{ size }}
description: |
Volume size (in GiB)
- name: snapshot_id
value: "{{ snapshot_id }}"
description: |
Source snapshot id
- name: type
value: "{{ type }}"
description: |
Volume type
valid_values: ['classic', 'classic-luks', 'classic-multiattach', 'high-speed', 'high-speed-gen2', 'high-speed-gen2-luks', 'high-speed-luks']
UPDATE examples​
- update
Update a volume
UPDATE ovh.cloud_storage.volumes
SET
description = '{{ description }}',
name = '{{ name }}'
WHERE
volume_id = '{{ volume_id }}' --required
AND service_name = '{{ service_name }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
RETURNING
id,
name,
attached_to,
availability_zone,
bootable,
creation_date,
description,
plan_code,
region,
size,
status,
type;
DELETE examples​
- delete
Delete a volume
DELETE FROM ovh.cloud_storage.volumes
WHERE volume_id = '{{ volume_id }}' --required
AND service_name = '{{ service_name }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
;
Lifecycle Methods​
EXEC variables use wire (API) names.
- attach
- detach
- snapshot
- upsize
Attach a volume on an instance
EXEC ovh.cloud_storage.volumes.attach
@volumeId='{{ volumeId }}' --required,
@service_name='{{ service_name }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
@@json=
'{
"instanceId": "{{ instanceId }}"
}'
;
Detach a volume from an instance
EXEC ovh.cloud_storage.volumes.detach
@volumeId='{{ volumeId }}' --required,
@service_name='{{ service_name }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
@@json=
'{
"instanceId": "{{ instanceId }}"
}'
;
Snapshot a volume
EXEC ovh.cloud_storage.volumes.snapshot
@volumeId='{{ volumeId }}' --required,
@service_name='{{ service_name }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
@@json=
'{
"description": "{{ description }}",
"name": "{{ name }}"
}'
;
Extend a volume
EXEC ovh.cloud_storage.volumes.upsize
@volumeId='{{ volumeId }}' --required,
@service_name='{{ service_name }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
@@json=
'{
"size": {{ size }}
}'
;