Block Storage API V2 (DEPRECATED)

GET
/

List Api Versions

Lists information for all Block Storage API versions.

Normal response codes: 200,300

Error response codes: computeFault(400, 500), serviceUnavailable(503), badRequest(400), unauthorized(401), forbidden(403), badMethod(405), itemNotFound(404)

Request

Response

Example List Api Versions: JSON request

{
    "versions": [
        {
            "status": "SUPPORTED",
            "updated": "2014-06-28T12:20:21Z",
            "links": [
                {
                    "href": "https://docs.openstack.org/",
                    "type": "text/html",
                    "rel": "describedby"
                },
                {
                    "href": "http://10.0.2.15:8776/v2/",
                    "rel": "self"
                }
            ],
            "min_version": "",
            "version": "",
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.volume+json;version=1"
                }
            ],
            "id": "v2.0"
        },
        {
            "status": "CURRENT",
            "updated": "2016-02-08T12:20:21Z",
            "links": [
                {
                    "href": "https://docs.openstack.org/",
                    "type": "text/html",
                    "rel": "describedby"
                },
                {
                    "href": "http://10.0.2.15:8776/v3/",
                    "rel": "self"
                }
            ],
            "min_version": "3.0",
            "version": "{Current_Max_Version}",
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.volume+json;version=1"
                }
            ],
            "id": "v3.0"
        }
    ]
}

Limits (limits)

Shows absolute limits for a project.

An absolute limit value of -1 indicates that the absolute limit for the item is infinite.

GET
/v2/{project_id}/limits

Show absolute limits

Shows absolute limits for a project.

An absolute limit value of -1 indicates that the absolute limit for the item is infinite.

Normal response codes: 200

Error response codes: forbidden(403)

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

Response Parameters

Name

In

Type

Description

totalSnapshotsUsed

body

integer

The total number of snapshots used.

maxTotalBackups

body

integer

The maximum number of backups.

maxTotalVolumeGigabytes

body

integer

The maximum total amount of volumes, in gibibytes (GiB).

limits

body

object

A list of limit objects.

maxTotalSnapshots

body

integer

The maximum number of snapshots.

maxTotalBackupGigabytes

body

integer

The maximum total amount of backups, in gibibytes (GiB).

totalBackupGigabytesUsed

body

integer

The total number of backups gibibytes (GiB) used.

maxTotalVolumes

body

integer

The maximum number of volumes.

totalVolumesUsed

body

integer

The total number of volumes used.

rate

body

array

Rate-limit volume copy bandwidth, used to mitigate slow down of data access from the instances.

totalBackupsUsed

body

integer

The total number of backups used.

totalGigabytesUsed

body

integer

The total number of gibibytes (GiB) used.

absolute

body

object

An absolute limits object.

Response Example

{
    "limits": {
        "rate": [],
        "absolute": {
            "totalSnapshotsUsed": 0,
            "maxTotalBackups": 10,
            "maxTotalVolumeGigabytes": 1000,
            "maxTotalSnapshots": 10,
            "maxTotalBackupGigabytes": 1000,
            "totalBackupGigabytesUsed": 0,
            "maxTotalVolumes": 10,
            "totalVolumesUsed": 0,
            "totalBackupsUsed": 0,
            "totalGigabytesUsed": 0
        }
    }
}

Quota sets extension (os-quota-sets)

Administrators only, depending on policy settings.

Shows, updates, and deletes quotas for a project.

GET
/v2/{admin_project_id}/os-quota-sets/{project_id}

Show quotas

Shows quotas for a project.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

admin_project_id

path

string

The UUID of the administrative project.

usage (Optional)

query

boolean

Set to usage=true to show quota usage. Default is false.

Response Parameters

Name

In

Type

Description

injected_file_content_bytes

body

integer

The number of bytes of content that are allowed for each injected file.

metadata_items

body

integer

The number of metadata items that are allowed for each instance.

reserved (Optional)

body

integer

Reserved volume size. Visible only if you set the usage=true query parameter.

in_use (Optional)

body

string

The in use data size. Visible only if you set the usage=true query parameter.

ram

body

integer

The amount of instance RAM in megabytes that are allowed for each project.

floating_ips

body

integer

The number of floating IP addresses that are allowed for each project.

key_pairs

body

integer

The number of key pairs that are allowed for each user.

injected_file_path_bytes

body

integer

The number of bytes that are allowed for each injected file path.

instances

body

integer

The number of instances that are allowed for each project.

security_group_rules (Optional)

body

integer

The number of rules that are allowed for each security group.

injected_files

body

integer

The number of injected files that are allowed for each project.

quota_set

body

object

A quota_set object.

cores

body

integer

The number of instance cores that are allowed for each project.

fixed_ips

body

integer

The number of fixed IP addresses that are allowed for each project. Must be equal to or greater than the number of allowed instances.

id

body

string

The UUID of the project.

security_groups

body

integer

The number of security groups that are allowed for each project.

Response Example

{
    "quota_set": {
        "gigabytes": 5,
        "snapshots": 10,
        "volumes": 20
    }
}
GET
/v2/{admin_project_id}/os-quota-sets/{project_id}/defaults

Get default quotas

Gets default quotas for a project.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

admin_project_id

path

string

The UUID of the administrative project.

Response Parameters

Name

In

Type

Description

injected_file_content_bytes

body

integer

The number of bytes of content that are allowed for each injected file.

metadata_items

body

integer

The number of metadata items that are allowed for each instance.

reserved (Optional)

body

integer

Reserved volume size. Visible only if you set the usage=true query parameter.

in_use (Optional)

body

string

The in use data size. Visible only if you set the usage=true query parameter.

ram

body

integer

The amount of instance RAM in megabytes that are allowed for each project.

floating_ips

body

integer

The number of floating IP addresses that are allowed for each project.

key_pairs

body

integer

The number of key pairs that are allowed for each user.

injected_file_path_bytes

body

integer

The number of bytes that are allowed for each injected file path.

instances

body

integer

The number of instances that are allowed for each project.

security_group_rules (Optional)

body

integer

The number of rules that are allowed for each security group.

injected_files

body

integer

The number of injected files that are allowed for each project.

quota_set

body

object

A quota_set object.

cores

body

integer

The number of instance cores that are allowed for each project.

fixed_ips

body

integer

The number of fixed IP addresses that are allowed for each project. Must be equal to or greater than the number of allowed instances.

id

body

string

The UUID of the project.

security_groups

body

integer

The number of security groups that are allowed for each project.

Response Example

{
    "quota_set": {
        "gigabytes": 5,
        "snapshots": 10,
        "volumes": 20
    }
}

Volume type access (volumes)

Private volume type access to project.

By default, volumes types are public. To create a private volume type, set the is_public boolean field to false at volume type creation time. To control access to a private volume type, user needs to add a project to or remove a project from the volume type. Private volume types without projects are only accessible by users with the administrative role and context.

GET
/v2/{project_id}/types/{volume_type}/os-volume-type-access

List private volume type access details

Lists project IDs that have access to private volume type.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_type

path

string

The ID of Volume Type to be accessed by project.

Response Parameters

Name

In

Type

Description

project_id

body

string

The UUID of the project.

Response Example

{
    "volume_type_access": {
        "volume_type_id": "3c67e124-39ad-4ace-a507-8bb7bf510c26",
        "project_id": "f270b245cb11498ca4031deb7e141cfa"
    }
}

API extensions (extensions)

GET
/v2/{project_id}/extensions

List API extensions

Lists Block Storage API extensions.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

Response Parameters

Name

In

Type

Description

updated

body

string

The date and time stamp when the extension was last updated.

description (Optional)

body

string

The backup description or null.

links

body

array

Links for the volume transfer.

namespace

body

string

Link associated to the extension.

alias

body

string

The alias for the extension. For example, "FOXNSOX", "os- availability-zone", "os-extended-quotas", "os- share-unmanage" or "os-used-limits."

name

body

string

The name of the Volume Transfer.

Response Example

{
    "extensions": [
        {
            "updated": "2013-04-18T00:00:00+00:00",
            "name": "SchedulerHints",
            "links": [],
            "namespace": "https://docs.openstack.org/block-service/ext/scheduler-hints/api/v2",
            "alias": "OS-SCH-HNT",
            "description": "Pass arbitrary key/value pairs to the scheduler."
        },
        {
            "updated": "2011-06-29T00:00:00+00:00",
            "name": "Hosts",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/hosts/api/v1.1",
            "alias": "os-hosts",
            "description": "Admin-only host administration."
        },
        {
            "updated": "2011-11-03T00:00:00+00:00",
            "name": "VolumeTenantAttribute",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume_tenant_attribute/api/v1",
            "alias": "os-vol-tenant-attr",
            "description": "Expose the internal project_id as an attribute of a volume."
        },
        {
            "updated": "2011-08-08T00:00:00+00:00",
            "name": "Quotas",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/quotas-sets/api/v1.1",
            "alias": "os-quota-sets",
            "description": "Quota management support."
        },
        {
            "updated": "2011-08-24T00:00:00+00:00",
            "name": "TypesManage",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/types-manage/api/v1",
            "alias": "os-types-manage",
            "description": "Types manage support."
        },
        {
            "updated": "2013-07-10T00:00:00+00:00",
            "name": "VolumeEncryptionMetadata",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/os-volume-encryption-metadata/api/v1",
            "alias": "os-volume-encryption-metadata",
            "description": "Volume encryption metadata retrieval support."
        },
        {
            "updated": "2012-12-12T00:00:00+00:00",
            "name": "Backups",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/backups/api/v1",
            "alias": "backups",
            "description": "Backups support."
        },
        {
            "updated": "2013-07-16T00:00:00+00:00",
            "name": "SnapshotActions",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/snapshot-actions/api/v1.1",
            "alias": "os-snapshot-actions",
            "description": "Enable snapshot manager actions."
        },
        {
            "updated": "2012-05-31T00:00:00+00:00",
            "name": "VolumeActions",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume-actions/api/v1.1",
            "alias": "os-volume-actions",
            "description": "Enable volume actions\n    "
        },
        {
            "updated": "2013-10-03T00:00:00+00:00",
            "name": "UsedLimits",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/used-limits/api/v1.1",
            "alias": "os-used-limits",
            "description": "Provide data on limited resources that are being used."
        },
        {
            "updated": "2012-05-31T00:00:00+00:00",
            "name": "VolumeUnmanage",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume-unmanage/api/v1.1",
            "alias": "os-volume-unmanage",
            "description": "Enable volume unmanage operation."
        },
        {
            "updated": "2011-11-03T00:00:00+00:00",
            "name": "VolumeHostAttribute",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume_host_attribute/api/v1",
            "alias": "os-vol-host-attr",
            "description": "Expose host as an attribute of a volume."
        },
        {
            "updated": "2013-07-01T00:00:00+00:00",
            "name": "VolumeTypeEncryption",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume-type-encryption/api/v1",
            "alias": "encryption",
            "description": "Encryption support for volume types."
        },
        {
            "updated": "2013-06-27T00:00:00+00:00",
            "name": "AvailabilityZones",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/os-availability-zone/api/v1",
            "alias": "os-availability-zone",
            "description": "Describe Availability Zones."
        },
        {
            "updated": "2013-08-02T00:00:00+00:00",
            "name": "Qos_specs_manage",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/qos-specs/api/v1",
            "alias": "qos-specs",
            "description": "QoS specs support."
        },
        {
            "updated": "2011-08-24T00:00:00+00:00",
            "name": "TypesExtraSpecs",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/types-extra-specs/api/v1",
            "alias": "os-types-extra-specs",
            "description": "Type extra specs support."
        },
        {
            "updated": "2013-08-08T00:00:00+00:00",
            "name": "VolumeMigStatusAttribute",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume_mig_status_attribute/api/v1",
            "alias": "os-vol-mig-status-attr",
            "description": "Expose migration_status as an attribute of a volume."
        },
        {
            "updated": "2012-08-13T00:00:00+00:00",
            "name": "CreateVolumeExtension",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/image-create/api/v1",
            "alias": "os-image-create",
            "description": "Allow creating a volume from an image in the Create Volume API."
        },
        {
            "updated": "2014-01-10T00:00:00-00:00",
            "name": "ExtendedServices",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/extended_services/api/v2",
            "alias": "os-extended-services",
            "description": "Extended services support."
        },
        {
            "updated": "2012-06-19T00:00:00+00:00",
            "name": "ExtendedSnapshotAttributes",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/extended_snapshot_attributes/api/v1",
            "alias": "os-extended-snapshot-attributes",
            "description": "Extended SnapshotAttributes support."
        },
        {
            "updated": "2012-12-07T00:00:00+00:00",
            "name": "VolumeImageMetadata",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume_image_metadata/api/v1",
            "alias": "os-vol-image-meta",
            "description": "Show image metadata associated with the volume."
        },
        {
            "updated": "2012-03-12T00:00:00+00:00",
            "name": "QuotaClasses",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/quota-classes-sets/api/v1.1",
            "alias": "os-quota-class-sets",
            "description": "Quota classes management support."
        },
        {
            "updated": "2013-05-29T00:00:00+00:00",
            "name": "VolumeTransfer",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/volume-transfer/api/v1.1",
            "alias": "os-volume-transfer",
            "description": "Volume transfer management support."
        },
        {
            "updated": "2014-02-10T00:00:00+00:00",
            "name": "VolumeManage",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/os-volume-manage/api/v1",
            "alias": "os-volume-manage",
            "description": "Allows existing backend storage to be 'managed' by Cinder."
        },
        {
            "updated": "2012-08-25T00:00:00+00:00",
            "name": "AdminActions",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/admin-actions/api/v1.1",
            "alias": "os-admin-actions",
            "description": "Enable admin actions."
        },
        {
            "updated": "2012-10-28T00:00:00-00:00",
            "name": "Services",
            "links": [],
            "namespace": "https://docs.openstack.org/volume/ext/services/api/v2",
            "alias": "os-services",
            "description": "Services support."
        }
    ]
}

Volume types (types)

GET
/v2/{project_id}/types/{volume_type_id}

Show volume type details for v2

Shows details for a volume type.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_type_id

path

string

The UUID for an existing volume type.

Response Parameters

Name

In

Type

Description

volume_type

body

object

A volume_type object.

is_public

body

boolean

Whether the volume type is publicly visible.

extra_specs (Optional)

body

object

A key and value pair that contains additional specifications that are associated with the volume type. Examples include capabilities, capacity, compression, and so on, depending on the storage driver in use.

description

body

string

The volume type description.

name

body

string

The name of the volume type.

id

body

string

The UUID of the volume type.

os-volume-type-access:is_public

body

boolean

Whether the volume type is publicly visible.

qos_specs_id (Optional)

body

string

The QoS specifications ID.

Response Example

{
    "volume_type": {
        "id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
        "name": "vol-type-001",
        "description": "volume type 001",
        "is_public": true,
        "extra_specs": {
            "capabilities": "gpu"
        }
        "qos_specs_id": null,
        "os-volume-type-access:is_public": true
    }
}
GET
/v2/{project_id}/types

List all volume types for v2

Lists volume types.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

sort_key (Optional)

query

string

Sorts by an attribute. A valid value is name, status, container_format, disk_format, size, id, created_at, or updated_at. Default is created_at. The API uses the natural sorting direction of the sort_key attribute value.

sort_dir (Optional)

query

string

Sorts by one or more sets of attribute and sort direction combinations. If you omit the sort direction in a set, default is desc.

limit (Optional)

query

integer

Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.

offset (Optional)

query

integer

Used in conjunction with limit to return a slice of items. offset is where to start in the list.

marker (Optional)

query

string

The ID of the last-seen item. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.

Response Parameters

Name

In

Type

Description

volume_types

body

array

The list of volume types. In an environment with multiple-storage back ends, the scheduler determines where to send the volume based on the volume type. For information about how to use volume types to create multiple- storage back ends, see Configure multiple-storage back ends.

extra_specs

body

object

A set of key and value pairs that contains the specifications for a volume type.

name

body

string

The name of the Volume Transfer.

volume_type (Optional)

path

string

The ID of Volume Type to be accessed by project.

Response Example

{
    "volume_types": [
        {
            "extra_specs": {
                "capabilities": "gpu"
            },
            "id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
            "name": "SSD"
        },
        {
            "extra_specs": {},
            "id": "8eb69a46-df97-4e41-9586-9a40a7533803",
            "name": "SATA"
        }
    ]
}

API versions

GET
/v2/

Show API v2 details

Shows details for Block Storage API v2.

Normal response codes: 200

Request

Response Parameters

Name

In

Type

Description

location

body

string

Full URL to a service or server.

Response Example

{
    "versions": [
        {
            "status": "DEPRECATED",
            "updated": "2017-02-25T12:00:00Z",
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.volume+json;version=2"
                }
            ],
            "id": "v2.0",
            "links": [
                {
                    "href": "https://docs.openstack.org/",
                    "type": "text/html",
                    "rel": "describedby"
                },
                {
                    "href": "http://23.253.248.171:8776/v2/",
                    "rel": "self"
                }
            ],
            "min_version": "",
            "version": ""
        }
    ]
}

Volume actions (volumes, action)

Extends the size of, resets statuses for, sets image metadata for, and removes image metadata from a volume. Attaches a volume to a server, detaches a volume from a server, and removes a volume from Block Storage management without actually removing the back-end storage object associated with it.

POST
/v2/{project_id}/volumes/{volume_id}/action

Extend volume size

Extends the size of a volume to a requested size, in gibibytes (GiB). Specify the os-extend action in the request body.

Preconditions

  • Volume status must be available.

  • Sufficient amount of storage must exist to extend the volume.

  • The user quota must have sufficient volume storage.

Troubleshooting

  • An error_extending volume status indicates that the request failed. Ensure that you meet the preconditions and retry the request. If the request fails again, investigate the storage back end.

Normal response codes: 202

Request

Name

In

Type

Description

os-extend

body

object

The os-extend action.

new_size

body

integer

The new size of the volume, in gibibytes (GiB).

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Request Example

{
    "os-extend": {
        "new_size": 3
    }
}
POST
/v2/{project_id}/volumes/{volume_id}/action

Attach volume to server

Attaches a volume to a server. Specify the os-attach action in the request body.

Preconditions

  • Volume status must be available.

  • You should set instance_uuid or host_name.

Normal response codes: 202

Request

Name

In

Type

Description

instance_uuid (Optional)

body

string

The UUID of the attaching instance.

mountpoint

body

string

The attaching mount point.

host_name (Optional)

body

string

The name of the attaching host.

os-attach

body

object

The os-attach action.

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Request Example

{
    "os-attach": {
        "instance_uuid": "95D9EF50-507D-11E5-B970-0800200C9A66",
        "mountpoint": "/dev/vdc"
    }
}
POST
/v2/{project_id}/volumes/{volume_id}/action

Detach volume from a server

Detaches a volume from a server. Specify the os-detach action in the request body.

Preconditions

  • Volume status must be in-use.

Normal response codes: 202

Request

Name

In

Type

Description

attachment_id (Optional)

body

string

The interface ID.

os-detach

body

object

The os-detach action.

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Request Example

{
    "os-detach": {
        "attachment_id": "d8777f54-84cf-4809-a679-468ffed56cf1"
    }
}
POST
/v2/{project_id}/volumes/{volume_id}/action

Update volume bootable status

Update the bootable status for a volume, mark it as a bootable volume. Specify the os-set_bootable action in the request body.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

os-set_bootable

body

object

The os-set_bootable action.

bootable

body

boolean

Enables or disables the bootable attribute. You can boot an instance from a bootable volume.

Request Example

{
    "os-set_bootable": {
        "bootable": "True"
    }
}

Volumes (volumes)

A volume is a detachable block storage device similar to a USB hard drive. You can attach a volume to one instance at a time.

The snapshot_id and source_volid parameters specify the ID of the snapshot or volume from which this volume originates. If the volume was not created from a snapshot or source volume, these values are null.

When you create, list, update, or delete volumes, the possible status values are:

Volume statuses

Status

Description

creating

The volume is being created.

available

The volume is ready to attach to an instance.

attaching

The volume is attaching to an instance.

detaching

The volume is detaching from an instance.

in-use

The volume is attached to an instance.

maintenance

The volume is locked and being migrated.

deleting

The volume is being deleted.

awaiting-transfer

The volume is awaiting for transfer.

error

A volume creation error occurred.

error_deleting

A volume deletion error occurred.

backing-up

The volume is being backed up.

restoring-backup

A backup is being restored to the volume.

error_backing-up

A backup error occurred.

error_restoring

A backup restoration error occurred.

error_extending

An error occurred while attempting to extend a volume.

downloading

The volume is downloading an image.

uploading

The volume is being uploaded to an image.

retyping

The volume is changing type to another volume type.

extending

The volume is being extended.

GET
/v2/{project_id}/volumes/detail

List volumes with details

Lists all Block Storage volumes, with details, that the project can access.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

all_tenants (Optional)

query

string

Shows details for all projects. Admin only.

sort (Optional)

query

string

Comma-separated list of sort keys and optional sort directions in the form of < key > [: < direction > ]. A valid direction is asc (ascending) or desc (descending).

limit (Optional)

query

integer

Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.

offset (Optional)

query

integer

Used in conjunction with limit to return a slice of items. offset is where to start in the list.

marker (Optional)

query

string

The ID of the last-seen item. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.

Response Parameters

Name

In

Type

Description

migration_status

body

string

The volume migration status.

attachments

body

array

Instance attachment information. If this volume is attached to a server instance, the attachments list includes the UUID of the attached server, an attachment UUID, the name of the attached host, if any, the volume UUID, the device, and the device UUID. Otherwise, this list is empty.

links

body

array

Links for the volume transfer.

availability_zone (Optional)

body

string

The name of the availability zone.

os-vol-host-attr:host

body

string

Current back-end of the volume. Host format is host@backend#pool.

encrypted

body

boolean

If true, this volume is encrypted.

updated_at

body

string

The date and time when the resource was updated.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

If the updated_at date and time stamp is not set, its value is null.

os-volume-replication:extended_status (Optional)

body

string

The volume replication status managed by the driver of backend storage.

replication_status

body

string

The volume replication status.

snapshot_id (Optional)

body

string

To create a volume from an existing snapshot, specify the UUID of the volume snapshot. The volume is created in same availability zone and with same size as the snapshot.

id

body

string

The UUID of the volume transfer.

size

body

integer

The size of the volume, in gibibytes (GiB).

user_id

body

string

The UUID of the user.

os-vol-tenant-attr:tenant_id

body

string

The project ID which the volume belongs to.

os-vol-mig-status-attr:migstat

body

string

The status of this volume migration (None means that a migration is not currently in progress).

metadata

body

object

One or more metadata key and value pairs for the snapshot, if any.

status

body

string

The volume status.

volume_image_metadata (Optional)

body

object

List of image metadata entries. Only included for volumes that were created from an image, or from a snapshot of a volume originally created from an image.

description (Optional)

body

string

The backup description or null.

multiattach

body

boolean

If true, this volume can attach to more than one instance.

source_volid (Optional)

body

string

The UUID of the source volume. The API creates a new volume with the same size as the source volume.

consistencygroup_id

body

string

The UUID of the consistency group.

os-vol-mig-status-attr:name_id

body

string

The volume ID that this volume name on the back- end is based on.

name

body

string

The name of the Volume Transfer.

bootable

body

string

Enables or disables the bootable attribute. You can boot an instance from a bootable volume.

created_at

body

string

The date and time when the resource was created.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

os-volume-replication:driver_data (Optional)

body

string

The name of the volume replication driver.

volumes

body

array

A list of volume objects.

volume_type (Optional)

path

string

The ID of Volume Type to be accessed by project.

Response Example

{
    "volumes": [
        {
            "migration_status": null,
            "attachments": [
                {
                    "server_id": "f4fda93b-06e0-4743-8117-bc8bcecd651b",
                    "attachment_id": "3b4db356-253d-4fab-bfa0-e3626c0b8405",
                    "host_name": null,
                    "volume_id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
                    "device": "/dev/vdb",
                    "id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38"
                }
            ],
            "links": [
                {
                    "href": "http://23.253.248.171:8776/v2/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
                    "rel": "self"
                },
                {
                    "href": "http://23.253.248.171:8776/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
                    "rel": "bookmark"
                }
            ],
            "availability_zone": "nova",
            "os-vol-host-attr:host": "difleming@lvmdriver-1#lvmdriver-1",
            "encrypted": false,
            "os-volume-replication:extended_status": null,
            "replication_status": "disabled",
            "snapshot_id": null,
            "id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
            "size": 2,
            "user_id": "32779452fcd34ae1a53a797ac8a1e064",
            "os-vol-tenant-attr:tenant_id": "bab7d5c60cd041a0a36f7c4b6e1dd978",
            "os-vol-mig-status-attr:migstat": null,
            "metadata": {
                "readonly": false,
                "attached_mode": "rw"
            },
            "status": "in-use",
            "description": null,
            "multiattach": true,
            "os-volume-replication:driver_data": null,
            "source_volid": null,
            "consistencygroup_id": null,
            "os-vol-mig-status-attr:name_id": null,
            "name": "test-volume-attachments",
            "bootable": "false",
            "created_at": "2015-11-29T03:01:44.000000",
            "volume_type": "lvmdriver-1"
        },
        {
            "migration_status": null,
            "attachments": [],
            "links": [
                {
                    "href": "http://23.253.248.171:8776/v2/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/173f7b48-c4c1-4e70-9acc-086b39073506",
                    "rel": "self"
                },
                {
                    "href": "http://23.253.248.171:8776/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/173f7b48-c4c1-4e70-9acc-086b39073506",
                    "rel": "bookmark"
                }
            ],
            "availability_zone": "nova",
            "os-vol-host-attr:host": "difleming@lvmdriver-1#lvmdriver-1",
            "encrypted": false,
            "os-volume-replication:extended_status": null,
            "replication_status": "disabled",
            "snapshot_id": null,
            "id": "173f7b48-c4c1-4e70-9acc-086b39073506",
            "size": 1,
            "user_id": "32779452fcd34ae1a53a797ac8a1e064",
            "os-vol-tenant-attr:tenant_id": "bab7d5c60cd041a0a36f7c4b6e1dd978",
            "os-vol-mig-status-attr:migstat": null,
            "metadata": {},
            "status": "available",
            "volume_image_metadata": {
                "kernel_id": "8a55f5f1-78f7-4477-8168-977d8519342c",
                "checksum": "eb9139e4942121f22bbc2afc0400b2a4",
                "min_ram": "0",
                "ramdisk_id": "5f6bdf8a-92db-4988-865b-60bdd808d9ef",
                "disk_format": "ami",
                "image_name": "cirros-0.3.4-x86_64-uec",
                "image_id": "b48c53e1-9a96-4a5a-a630-2e74ec54ddcc",
                "container_format": "ami",
                "min_disk": "0",
                "size": "25165824"
            },
            "description": "",
            "multiattach": false,
            "os-volume-replication:driver_data": null,
            "source_volid": null,
            "consistencygroup_id": null,
            "os-vol-mig-status-attr:name_id": null,
            "name": "test-volume",
            "bootable": "true",
            "created_at": "2015-11-29T02:25:18.000000",
            "volume_type": "lvmdriver-1"
        }
    ]
}
POST
/v2/{project_id}/volumes

Create volume

Creates a volume.

To create a bootable volume, include the UUID of the image from which you want to create the volume in the imageRef attribute in the request body.

Preconditions

  • You must have enough volume storage quota remaining to create a volume of size requested.

Asynchronous Postconditions

  • With correct permissions, you can see the volume status as available through API calls.

  • With correct access, you can see the created volume in the storage system that OpenStack Block Storage manages.

Troubleshooting

  • If volume status remains creating or shows another error status, the request failed. Ensure you meet the preconditions then investigate the storage back end.

  • Volume is not created in the storage system that OpenStack Block Storage manages.

  • The storage node needs enough free storage space to match the size of the volume creation request.

Normal response codes: 202

Request

Name

In

Type

Description

size

body

integer

The size of the volume, in gibibytes (GiB).

description

body

string

The volume description.

imageRef (Optional)

body

string

The UUID of the image from which you want to create the volume. Required to create a bootable volume.

multiattach (Optional)

body

boolean

To enable this volume to attach to more than one server, set this value to true. Default is false. Note that support for multiattach volumes depends on the volume type being used.

availability_zone (Optional)

body

string

The name of the availability zone.

source_volid (Optional)

body

string

The UUID of the source volume. The API creates a new volume with the same size as the source volume.

name

body

string

The volume name.

volume

body

object

A volume object.

consistencygroup_id (Optional)

body

string

The UUID of the consistency group.

volume_type (Optional)

body

string

The volume type. To create an environment with multiple-storage back ends, you must specify a volume type. Block Storage volume back ends are spawned as children to cinder- volume, and they are keyed from a unique queue. They are named cinder- volume.HOST.BACKEND. For example, cinder- volume.ubuntu.lvmdriver. When a volume is created, the scheduler chooses an appropriate back end to handle the request based on the volume type. Default is None. For information about how to use volume types to create multiple- storage back ends, see Configure multiple-storage back ends.

snapshot_id (Optional)

body

string

To create a volume from an existing snapshot, specify the UUID of the volume snapshot. The volume is created in same availability zone and with same size as the snapshot.

OS-SCH-HNT:scheduler_hints (Optional)

body

object

The dictionary of data to send to the scheduler.

source_replica (Optional)

body

string

The UUID of the replication volume to clone. This was for legacy replication functionality and is no longer supported.

metadata (Optional)

body

object

One or more metadata key and value pairs that are associated with the volume.

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

Request Example

{
    "volume": {
        "size": 10,
        "availability_zone": null,
        "source_volid": null,
        "description": null,
        "multiattach": false,
        "snapshot_id": null,
        "name": null,
        "imageRef": null,
        "volume_type": null,
        "metadata": {},
        "consistencygroup_id": null
    },
    "OS-SCH-HNT:scheduler_hints": {
        "same_host": [
            "a0cf03a5-d921-4877-bb5c-86d26cf818e1",
            "8c19174f-4220-44f0-824a-cd1eeef10287"
        ]
    }
}

Response Parameters

Name

In

Type

Description

migration_status

body

string

The volume migration status.

attachments

body

array

Instance attachment information. If this volume is attached to a server instance, the attachments list includes the UUID of the attached server, an attachment UUID, the name of the attached host, if any, the volume UUID, the device, and the device UUID. Otherwise, this list is empty.

links

body

array

Links for the volume transfer.

availability_zone (Optional)

body

string

The name of the availability zone.

encrypted

body

boolean

If true, this volume is encrypted.

updated_at

body

string

The date and time when the resource was updated.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

If the updated_at date and time stamp is not set, its value is null.

replication_status

body

string

The volume replication status.

snapshot_id (Optional)

body

string

To create a volume from an existing snapshot, specify the UUID of the volume snapshot. The volume is created in same availability zone and with same size as the snapshot.

id

body

string

The UUID of the volume transfer.

size

body

integer

The size of the volume, in gibibytes (GiB).

user_id

body

string

The UUID of the user.

metadata

body

object

One or more metadata key and value pairs for the snapshot, if any.

status

body

string

The volume status.

description (Optional)

body

string

The backup description or null.

multiattach

body

boolean

If true, this volume can attach to more than one instance.

source_volid (Optional)

body

string

The UUID of the source volume. The API creates a new volume with the same size as the source volume.

volume

body

object

A volume object.

consistencygroup_id

body

string

The UUID of the consistency group.

name

body

string

The name of the Volume Transfer.

bootable

body

string

Enables or disables the bootable attribute. You can boot an instance from a bootable volume.

created_at

body

string

The date and time when the resource was created.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

volume_type (Optional)

path

string

The ID of Volume Type to be accessed by project.

Response Example

{
    "volume": {
        "status": "creating",
        "migration_status": null,
        "user_id": "0eea4eabcf184061a3b6db1e0daaf010",
        "attachments": [],
        "links": [
            {
                "href": "http://23.253.248.171:8776/v2/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
                "rel": "self"
            },
            {
                "href": "http://23.253.248.171:8776/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
                "rel": "bookmark"
            }
        ],
        "availability_zone": "nova",
        "bootable": "false",
        "encrypted": false,
        "created_at": "2015-11-29T03:01:44.000000",
        "description": null,
        "updated_at": null,
        "volume_type": "lvmdriver-1",
        "name": "test-volume-attachments",
        "replication_status": "disabled",
        "consistencygroup_id": null,
        "source_volid": null,
        "snapshot_id": null,
        "multiattach": false,
        "metadata": {},
        "id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
        "size": 2
    }
}
GET
/v2/{project_id}/volumes

List volumes

Lists summary information for all Block Storage volumes that the project can access.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

all_tenants (Optional)

query

string

Shows details for all projects. Admin only.

sort (Optional)

query

string

Comma-separated list of sort keys and optional sort directions in the form of < key > [: < direction > ]. A valid direction is asc (ascending) or desc (descending).

limit (Optional)

query

integer

Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.

offset (Optional)

query

integer

Used in conjunction with limit to return a slice of items. offset is where to start in the list.

marker (Optional)

query

string

The ID of the last-seen item. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.

Response Parameters

Name

In

Type

Description

volumes

body

array

A list of volume objects.

id

body

string

The UUID of the volume transfer.

links

body

array

Links for the volume transfer.

name

body

string

The name of the Volume Transfer.

Response Example

{
    "volumes": [
        {
            "id": "45baf976-c20a-4894-a7c3-c94b7376bf55",
            "links": [
                {
                    "href": "http://localhost:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/45baf976-c20a-4894-a7c3-c94b7376bf55",
                    "rel": "self"
                },
                {
                    "href": "http://localhost:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/45baf976-c20a-4894-a7c3-c94b7376bf55",
                    "rel": "bookmark"
                }
            ],
            "name": "vol-004"
        },
        {
            "id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
            "links": [
                {
                    "href": "http://localhost:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
                    "rel": "self"
                },
                {
                    "href": "http://localhost:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
                    "rel": "bookmark"
                }
            ],
            "name": "vol-003"
        }
    ]
}
GET
/v2/{project_id}/volumes/{volume_id}

Show volume details

Shows details for a volume.

Preconditions

  • The volume must exist.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Response Parameters

Name

In

Type

Description

migration_status

body

string

The volume migration status.

attachments

body

array

Instance attachment information. If this volume is attached to a server instance, the attachments list includes the UUID of the attached server, an attachment UUID, the name of the attached host, if any, the volume UUID, the device, and the device UUID. Otherwise, this list is empty.

links

body

array

Links for the volume transfer.

availability_zone (Optional)

body

string

The name of the availability zone.

os-vol-host-attr:host

body

string

Current back-end of the volume. Host format is host@backend#pool.

encrypted

body

boolean

If true, this volume is encrypted.

updated_at

body

string

The date and time when the resource was updated.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

If the updated_at date and time stamp is not set, its value is null.

os-volume-replication:extended_status (Optional)

body

string

The volume replication status managed by the driver of backend storage.

replication_status

body

string

The volume replication status.

snapshot_id (Optional)

body

string

To create a volume from an existing snapshot, specify the UUID of the volume snapshot. The volume is created in same availability zone and with same size as the snapshot.

id

body

string

The UUID of the volume transfer.

size

body

integer

The size of the volume, in gibibytes (GiB).

user_id

body

string

The UUID of the user.

os-vol-tenant-attr:tenant_id

body

string

The project ID which the volume belongs to.

os-vol-mig-status-attr:migstat

body

string

The status of this volume migration (None means that a migration is not currently in progress).

metadata

body

object

One or more metadata key and value pairs for the snapshot, if any.

status

body

string

The volume status.

volume_image_metadata (Optional)

body

object

List of image metadata entries. Only included for volumes that were created from an image, or from a snapshot of a volume originally created from an image.

description (Optional)

body

string

The backup description or null.

multiattach

body

boolean

If true, this volume can attach to more than one instance.

source_volid (Optional)

body

string

The UUID of the source volume. The API creates a new volume with the same size as the source volume.

volume

body

object

A volume object.

consistencygroup_id

body

string

The UUID of the consistency group.

os-vol-mig-status-attr:name_id

body

string

The volume ID that this volume name on the back- end is based on.

name

body

string

The name of the Volume Transfer.

bootable

body

string

Enables or disables the bootable attribute. You can boot an instance from a bootable volume.

created_at

body

string

The date and time when the resource was created.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

os-volume-replication:driver_data (Optional)

body

string

The name of the volume replication driver.

volume_type (Optional)

path

string

The ID of Volume Type to be accessed by project.

Response Example

{
    "volume": {
        "status": "available",
        "attachments": [],
        "links": [
            {
                "href": "http://localhost:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
                "rel": "self"
            },
            {
                "href": "http://localhost:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
                "rel": "bookmark"
            }
        ],
        "availability_zone": "nova",
        "bootable": "false",
        "os-vol-host-attr:host": "ip-10-168-107-25",
        "source_volid": null,
        "snapshot_id": null,
        "id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
        "description": "Super volume.",
        "name": "vol-002",
        "created_at": "2013-02-25T02:40:21.000000",
        "volume_type": "None",
        "os-vol-tenant-attr:tenant_id": "0c2eba2c5af04d3f9e9d0d410b371fde",
        "size": 1,
        "os-volume-replication:driver_data": null,
        "os-volume-replication:extended_status": null,
        "metadata": {
            "contents": "not junk"
        }
    }
}
PUT
/v2/{project_id}/volumes/{volume_id}

Update volume

Updates a volume.

Normal response codes: 200

Request

Name

In

Type

Description

volume

body

object

A volume object.

description (Optional)

body

string

The backup description or null.

name

body

string

The name of the Volume Transfer.

metadata (Optional)

body

object

One or more metadata key and value pairs that are associated with the volume.

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Request Example

{
    "volume": {
        "name": "vol-003",
        "description": "This is yet, another volume."
    }
}

Response Parameters

Name

In

Type

Description

migration_status

body

string

The volume migration status.

attachments

body

array

Instance attachment information. If this volume is attached to a server instance, the attachments list includes the UUID of the attached server, an attachment UUID, the name of the attached host, if any, the volume UUID, the device, and the device UUID. Otherwise, this list is empty.

links

body

array

Links for the volume transfer.

availability_zone (Optional)

body

string

The name of the availability zone.

encrypted

body

boolean

If true, this volume is encrypted.

updated_at

body

string

The date and time when the resource was updated.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

If the updated_at date and time stamp is not set, its value is null.

replication_status

body

string

The volume replication status.

snapshot_id (Optional)

body

string

To create a volume from an existing snapshot, specify the UUID of the volume snapshot. The volume is created in same availability zone and with same size as the snapshot.

id

body

string

The UUID of the volume transfer.

size

body

integer

The size of the volume, in gibibytes (GiB).

user_id

body

string

The UUID of the user.

metadata

body

object

One or more metadata key and value pairs that are associated with the volume.

status

body

string

The volume status.

description (Optional)

body

string

The backup description or null.

multiattach

body

boolean

If true, this volume can attach to more than one instance.

source_volid (Optional)

body

string

The UUID of the source volume. The API creates a new volume with the same size as the source volume.

volume

body

object

A volume object.

consistencygroup_id

body

string

The UUID of the consistency group.

name

body

string

The name of the Volume Transfer.

bootable

body

string

Enables or disables the bootable attribute. You can boot an instance from a bootable volume.

created_at

body

string

The date and time when the resource was created.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

volume_type (Optional)

path

string

The ID of Volume Type to be accessed by project.

Response Example

{
    "volume": {
        "status": "available",
        "migration_status": null,
        "user_id": "0eea4eabcf184061a3b6db1e0daaf010",
        "attachments": [],
        "links": [
            {
                "href": "http://localhost:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
                "rel": "self"
            },
            {
                "href": "http://localhost:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
                "rel": "bookmark"
            }
        ],
        "availability_zone": "nova",
        "bootable": "false",
        "encrypted": false,
        "created_at": "2015-11-29T03:01:44.000000",
        "description": "This is yet, another volume.",
        "updated_at": null,
        "volume_type": "lvmdriver-1",
        "name": "vol-003",
        "replication_status": "disabled",
        "consistencygroup_id": null,
        "source_volid": null,
        "snapshot_id": null,
        "multiattach": false,
        "metadata": {
            "contents": "not junk"
        },
        "id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
        "size": 1
    }
}
DELETE
/v2/{project_id}/volumes/{volume_id}

Delete volume

Deletes a volume.

Preconditions

  • Volume status must be available, in-use, error, or error_restoring.

  • You cannot already have a snapshot of the volume.

  • You cannot delete a volume that is in a migration.

Asynchronous Postconditions

  • The volume is deleted in volume index.

  • The volume managed by OpenStack Block Storage is deleted in storage node.

Troubleshooting

  • If volume status remains in deleting or becomes error_deleting the request failed. Ensure you meet the preconditions then investigate the storage back end.

  • The volume managed by OpenStack Block Storage is not deleted from the storage system.

Normal response codes: 202

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

cascade (Optional)

path

boolean

Remove any snapshots along with the volume. Default=False.

POST
/v2/{project_id}/volumes/{volume_id}/metadata

Create volume metadata

Creates or replaces metadata for a volume. Does not modify items that are not in the request.

Normal response codes: 202

Request

Name

In

Type

Description

metadata

body

object

One or more metadata key and value pairs that are associated with the volume.

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Request Example

{
    "metadata": {
        "name": "metadata0"
    }
}

Response Parameters

Name

In

Type

Description

metadata

body

object

One or more metadata key and value pairs that are associated with the volume.

Response Example

{
    "metadata": {
        "name": "metadata0"
    }
}
GET
/v2/{project_id}/volumes/{volume_id}/metadata

Show volume metadata

Shows metadata for a volume.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Response Parameters

Name

In

Type

Description

metadata

body

object

One or more metadata key and value pairs that are associated with the volume.

Response Example

{
    "metadata": {}
}
PUT
/v2/{project_id}/volumes/{volume_id}/metadata

Update volume metadata

Replaces all the volume's metadata with the key-value pairs in the request.

Normal response codes: 200

Request

Name

In

Type

Description

metadata

body

object

One or more metadata key and value pairs that are associated with the volume.

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

Request Example

{
    "metadata": {
        "name": "metadata1"
    }
}

Response Parameters

Name

In

Type

Description

metadata

body

object

One or more metadata key and value pairs that are associated with the volume.

Response Example

{
    "metadata": {
        "name": "metadata1"
    }
}
GET
/v2/{project_id}/volumes/{volume_id}/metadata/{key}

Show volume metadata for a specific key

Shows metadata for a volume for a specific key.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

key

path

string

The metadata key name for the metadata that you want to see.

Response Parameters

Name

In

Type

Description

metadata

body

object

One or more metadata key and value pairs that are associated with the volume.

Response Example

{
    "metadata": {}
}
DELETE
/v2/{project_id}/volumes/{volume_id}/metadata/{key}

Delete volume metadata

Deletes metadata for a volume.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

key

path

string

The metadata key name for the metadata that you want to remove.

PUT
/v2/{project_id}/volumes/{volume_id}/metadata/{key}

Update volume metadata for a specific key

Update metadata for a volume for a specific key.

Normal response codes: 200

Request

Name

In

Type

Description

project_id

path

string

The UUID of the project in a multi-tenancy cloud.

volume_id

path

string

The UUID of the volume.

key

path

string

The metadata key name for the metadata that you want to update.

meta

body

object

The metadata key and value pair for the volume.

Request Example

{
  "meta": {
    "name": "new_name"
  }
}

Response Parameters

Name

In

Type

Description

meta

body

object

The metadata key and value pair for the volume.

Response Example

{
  "meta": {
    "name": "new_name"
  }
}