From 931e2f81612c7fa1a09be896897a6a7407bd1f26 Mon Sep 17 00:00:00 2001 From: "Mark T. Voelker" Date: Sat, 17 Sep 2016 01:12:40 -0400 Subject: [PATCH] Create v3 API Reference The Cinder v3 API was marked CURRENT in Mitaka, but there no API ref was ever created. This is problematic for end users and would hinder the v3 API from being included in DefCore Interoperability Guidelines somewhere down the line (since one of DefCore's Criteria[1] is that a Capability be well documented). This patch creates an API ref for v3. It also adds a header to the v2 index to show that it is SUPPORTED, whereas v3 is CURRENT. [1] http://git.openstack.org/cgit/openstack/defcore/tree/doc/source/process/CoreCriteria.rst#n77 Change-Id: Ia3a8050cd04ad3a487a79d80acf9691feee6182e Closes-Bug: #1616072 --- api-ref/source/index.rst | 1 + api-ref/source/v2/index.rst | 6 +- api-ref/source/v3/api-versions.inc | 32 + api-ref/source/v3/capabilities-v3.inc | 48 + api-ref/source/v3/consistencygroups-v3.inc | 267 +++ api-ref/source/v3/ext-backups-actions-v3.inc | 38 + api-ref/source/v3/ext-backups.inc | 276 +++ api-ref/source/v3/index.rst | 28 + api-ref/source/v3/limits.inc | 57 + api-ref/source/v3/os-cgsnapshots-v3.inc | 179 ++ api-ref/source/v3/os-vol-image-meta-v3.inc | 46 + api-ref/source/v3/os-vol-pool-v3.inc | 50 + api-ref/source/v3/os-vol-transfer-v3.inc | 217 +++ api-ref/source/v3/parameters.yaml | 1620 +++++++++++++++++ api-ref/source/v3/qos-specs-v3-qos-specs.inc | 315 ++++ api-ref/source/v3/quota-sets.inc | 407 +++++ .../backend-capabilities-response.json | 33 + .../v3/samples/backup-create-request.json | 9 + .../v3/samples/backup-create-response.json | 16 + .../samples/backup-force-delete-request.json | 3 + .../backup-record-export-response.json | 6 + .../samples/backup-record-import-request.json | 6 + .../backup-record-import-response.json | 16 + .../v3/samples/backup-restore-request.json | 6 + .../v3/samples/backup-restore-response.json | 6 + .../v3/samples/backup-show-response.json | 27 + .../backups-list-detailed-response.json | 54 + .../v3/samples/backups-list-response.json | 32 + .../samples/cgsnapshots-create-request.json | 10 + .../samples/cgsnapshots-create-response.json | 6 + .../cgsnapshots-list-detailed-response.json | 20 + .../v3/samples/cgsnapshots-list-response.json | 12 + .../v3/samples/cgsnapshots-show-response.json | 10 + ...istency-group-create-from-src-request.json | 11 + .../consistency-group-create-request.json | 8 + .../consistency-group-create-response.json | 11 + .../consistency-group-delete-request.json | 5 + .../consistency-group-show-response.json | 13 + .../consistency-group-show-response.xml | 14 + .../consistency-group-update-request.json | 8 + ...istency-groups-list-detailed-response.json | 26 + ...sistency-groups-list-detailed-response.xml | 25 + .../consistency-groups-list-response.json | 12 + .../v3/samples/extensions-list-response.json | 212 +++ .../v3/samples/extensions-list-response.xml | 165 ++ .../v3/samples/host-attach-request.json | 5 + .../samples/image-metadata-show-request.json | 18 + .../samples/image-metadata-show-response.json | 33 + .../v3/samples/limits-show-response.json | 17 + .../v3/samples/limits-show-response.xml | 17 + .../samples/pools-list-detailed-response.json | 30 + .../source/v3/samples/qos-create-request.json | 7 + .../source/v3/samples/qos-create-request.xml | 2 + .../v3/samples/qos-create-response.json | 21 + .../source/v3/samples/qos-create-response.xml | 9 + .../source/v3/samples/qos-list-response.json | 22 + .../source/v3/samples/qos-list-response.xml | 19 + .../source/v3/samples/qos-show-response.json | 21 + .../source/v3/samples/qos-show-response.xml | 11 + .../source/v3/samples/qos-unset-request.json | 5 + .../source/v3/samples/qos-unset-request.xml | 4 + .../source/v3/samples/qos-unset-response.json | 0 .../source/v3/samples/qos-update-request.json | 5 + .../source/v3/samples/qos-update-request.xml | 2 + .../v3/samples/qos-update-response.json | 5 + .../source/v3/samples/qos-update-response.xml | 4 + .../source/v3/samples/qos_show_response.json | 9 + .../source/v3/samples/qos_show_response.xml | 6 + .../samples/quotas-defaults-show-response.xml | 15 + .../v3/samples/quotas-delete-response.json | 0 .../quotas-show-defaults-response.json | 7 + .../samples/quotas-show-defaults-response.xml | 6 + .../v3/samples/quotas-show-response.json | 7 + .../v3/samples/quotas-show-response.xml | 6 + .../v3/samples/quotas-update-request.json | 5 + .../v3/samples/quotas-update-request.xml | 4 + .../v3/samples/quotas-update-response.json | 5 + .../v3/samples/quotas-update-response.xml | 6 + .../quotas-user-show-detailed-response.json | 19 + .../v3/samples/quotas-user-show-response.json | 7 + .../v3/samples/quotas-user-show-response.xml | 6 + .../v3/samples/snapshot-create-request.json | 8 + .../v3/samples/snapshot-create-request.xml | 5 + .../v3/samples/snapshot-create-response.json | 12 + .../v3/samples/snapshot-create-response.xml | 7 + .../snapshot-metadata-show-response.json | 5 + .../snapshot-metadata-show-response.xml | 4 + .../snapshot-metadata-update-request.json | 5 + .../snapshot-metadata-update-request.xml | 4 + .../snapshot-metadata-update-response.json | 5 + .../snapshot-metadata-update-response.xml | 4 + .../v3/samples/snapshot-show-response.json | 14 + .../v3/samples/snapshot-show-response.xml | 11 + .../v3/samples/snapshot-update-request.json | 6 + .../v3/samples/snapshot-update-request.xml | 4 + .../v3/samples/snapshot-update-response.json | 11 + .../v3/samples/snapshot-update-response.xml | 14 + .../snapshots-list-detailed-response.json | 18 + .../snapshots-list-detailed-response.xml | 16 + .../v3/samples/snapshots-list-response.json | 16 + .../v3/samples/snapshots-list-response.xml | 13 + .../v3/samples/user-quotas-show-response.json | 17 + .../v3/samples/user-quotas-show-response.xml | 15 + .../samples/user-quotas-update-request.json | 6 + .../v3/samples/user-quotas-update-request.xml | 5 + .../samples/user-quotas-update-response.json | 16 + .../samples/user-quotas-update-response.xml | 15 + .../v3/samples/version-show-response.json | 33 + .../v3/samples/version-show-response.xml | 87 + .../v3/samples/version-v3-show-response.json | 88 + .../source/v3/samples/versions-response.json | 76 + .../source/v3/samples/versions-response.xml | 25 + .../v3/samples/volume-attach-request.json | 6 + .../v3/samples/volume-create-request.json | 22 + .../v3/samples/volume-create-request.xml | 5 + .../v3/samples/volume-create-response.json | 34 + .../v3/samples/volume-create-response.xml | 11 + .../v3/samples/volume-extend-request.json | 5 + .../samples/volume-force-detach-request.json | 8 + .../volume-image-metadata-set-request.json | 10 + .../volume-image-metadata-unset-request.json | 5 + .../v3/samples/volume-manage-request.json | 18 + .../v3/samples/volume-manage-response.json | 33 + .../volume-metadata-create-request.json | 5 + .../volume-metadata-create-response.json | 5 + .../volume-metadata-show-response.json | 3 + .../samples/volume-metadata-show-response.xml | 2 + .../volume-metadata-update-request.json | 5 + .../volume-metadata-update-request.xml | 4 + .../volume-metadata-update-response.json | 5 + .../volume-metadata-update-response.xml | 4 + .../v3/samples/volume-show-response.json | 33 + .../v3/samples/volume-show-response.xml | 19 + .../samples/volume-status-reset-request.json | 7 + .../volume-transfer-accept-request.json | 5 + .../volume-transfer-accept-response.json | 17 + .../volume-transfer-create-request.json | 6 + .../volume-transfer-create-response.json | 19 + .../volume-transfer-show-response.json | 18 + ...lume-transfers-list-detailed-response.json | 36 + .../volume-transfers-list-response.json | 34 + .../volume-type-access-add-request.json | 5 + .../volume-type-access-add-request.xml | 4 + .../volume-type-access-delete-request.json | 5 + .../volume-type-access-delete-request.xml | 4 + .../volume-type-access-list-response.json | 6 + .../samples/volume-type-create-request.json | 10 + .../v3/samples/volume-type-show-request.json | 9 + .../v3/samples/volume-type-show-request.xml | 8 + .../v3/samples/volume-type-show-response.json | 11 + .../v3/samples/volume-type-show-response.xml | 9 + .../samples/volume-type-update-request.json | 10 + .../samples/volume-types-list-response.json | 16 + .../v3/samples/volume-types-list-response.xml | 11 + .../v3/samples/volume-unmanage-request.json | 3 + .../v3/samples/volume-update-request.json | 6 + .../v3/samples/volume-update-request.xml | 4 + .../v3/samples/volume-update-response.json | 36 + .../v3/samples/volume-update-response.xml | 13 + .../volumes-list-detailed-response.json | 102 ++ .../volumes-list-detailed-response.xml | 31 + .../v3/samples/volumes-list-response.json | 32 + .../v3/samples/volumes-list-response.xml | 12 + api-ref/source/v3/volume-manage.inc | 50 + api-ref/source/v3/volume-type-access.inc | 103 ++ api-ref/source/v3/volumes-v3-extensions.inc | 52 + api-ref/source/v3/volumes-v3-snapshots.inc | 359 ++++ api-ref/source/v3/volumes-v3-types.inc | 273 +++ api-ref/source/v3/volumes-v3-versions.inc | 67 + .../source/v3/volumes-v3-volumes-actions.inc | 269 +++ api-ref/source/v3/volumes-v3-volumes.inc | 570 ++++++ 171 files changed, 7770 insertions(+), 3 deletions(-) create mode 100644 api-ref/source/v3/api-versions.inc create mode 100644 api-ref/source/v3/capabilities-v3.inc create mode 100644 api-ref/source/v3/consistencygroups-v3.inc create mode 100644 api-ref/source/v3/ext-backups-actions-v3.inc create mode 100644 api-ref/source/v3/ext-backups.inc create mode 100644 api-ref/source/v3/index.rst create mode 100644 api-ref/source/v3/limits.inc create mode 100644 api-ref/source/v3/os-cgsnapshots-v3.inc create mode 100644 api-ref/source/v3/os-vol-image-meta-v3.inc create mode 100644 api-ref/source/v3/os-vol-pool-v3.inc create mode 100644 api-ref/source/v3/os-vol-transfer-v3.inc create mode 100644 api-ref/source/v3/parameters.yaml create mode 100644 api-ref/source/v3/qos-specs-v3-qos-specs.inc create mode 100644 api-ref/source/v3/quota-sets.inc create mode 100644 api-ref/source/v3/samples/backend-capabilities-response.json create mode 100644 api-ref/source/v3/samples/backup-create-request.json create mode 100644 api-ref/source/v3/samples/backup-create-response.json create mode 100644 api-ref/source/v3/samples/backup-force-delete-request.json create mode 100644 api-ref/source/v3/samples/backup-record-export-response.json create mode 100644 api-ref/source/v3/samples/backup-record-import-request.json create mode 100644 api-ref/source/v3/samples/backup-record-import-response.json create mode 100644 api-ref/source/v3/samples/backup-restore-request.json create mode 100644 api-ref/source/v3/samples/backup-restore-response.json create mode 100644 api-ref/source/v3/samples/backup-show-response.json create mode 100644 api-ref/source/v3/samples/backups-list-detailed-response.json create mode 100644 api-ref/source/v3/samples/backups-list-response.json create mode 100644 api-ref/source/v3/samples/cgsnapshots-create-request.json create mode 100644 api-ref/source/v3/samples/cgsnapshots-create-response.json create mode 100644 api-ref/source/v3/samples/cgsnapshots-list-detailed-response.json create mode 100644 api-ref/source/v3/samples/cgsnapshots-list-response.json create mode 100644 api-ref/source/v3/samples/cgsnapshots-show-response.json create mode 100644 api-ref/source/v3/samples/consistency-group-create-from-src-request.json create mode 100644 api-ref/source/v3/samples/consistency-group-create-request.json create mode 100644 api-ref/source/v3/samples/consistency-group-create-response.json create mode 100644 api-ref/source/v3/samples/consistency-group-delete-request.json create mode 100644 api-ref/source/v3/samples/consistency-group-show-response.json create mode 100644 api-ref/source/v3/samples/consistency-group-show-response.xml create mode 100644 api-ref/source/v3/samples/consistency-group-update-request.json create mode 100644 api-ref/source/v3/samples/consistency-groups-list-detailed-response.json create mode 100644 api-ref/source/v3/samples/consistency-groups-list-detailed-response.xml create mode 100644 api-ref/source/v3/samples/consistency-groups-list-response.json create mode 100644 api-ref/source/v3/samples/extensions-list-response.json create mode 100644 api-ref/source/v3/samples/extensions-list-response.xml create mode 100644 api-ref/source/v3/samples/host-attach-request.json create mode 100644 api-ref/source/v3/samples/image-metadata-show-request.json create mode 100644 api-ref/source/v3/samples/image-metadata-show-response.json create mode 100644 api-ref/source/v3/samples/limits-show-response.json create mode 100644 api-ref/source/v3/samples/limits-show-response.xml create mode 100644 api-ref/source/v3/samples/pools-list-detailed-response.json create mode 100644 api-ref/source/v3/samples/qos-create-request.json create mode 100644 api-ref/source/v3/samples/qos-create-request.xml create mode 100644 api-ref/source/v3/samples/qos-create-response.json create mode 100644 api-ref/source/v3/samples/qos-create-response.xml create mode 100644 api-ref/source/v3/samples/qos-list-response.json create mode 100644 api-ref/source/v3/samples/qos-list-response.xml create mode 100644 api-ref/source/v3/samples/qos-show-response.json create mode 100644 api-ref/source/v3/samples/qos-show-response.xml create mode 100644 api-ref/source/v3/samples/qos-unset-request.json create mode 100644 api-ref/source/v3/samples/qos-unset-request.xml create mode 100644 api-ref/source/v3/samples/qos-unset-response.json create mode 100644 api-ref/source/v3/samples/qos-update-request.json create mode 100644 api-ref/source/v3/samples/qos-update-request.xml create mode 100644 api-ref/source/v3/samples/qos-update-response.json create mode 100644 api-ref/source/v3/samples/qos-update-response.xml create mode 100644 api-ref/source/v3/samples/qos_show_response.json create mode 100644 api-ref/source/v3/samples/qos_show_response.xml create mode 100644 api-ref/source/v3/samples/quotas-defaults-show-response.xml create mode 100644 api-ref/source/v3/samples/quotas-delete-response.json create mode 100644 api-ref/source/v3/samples/quotas-show-defaults-response.json create mode 100644 api-ref/source/v3/samples/quotas-show-defaults-response.xml create mode 100644 api-ref/source/v3/samples/quotas-show-response.json create mode 100644 api-ref/source/v3/samples/quotas-show-response.xml create mode 100644 api-ref/source/v3/samples/quotas-update-request.json create mode 100644 api-ref/source/v3/samples/quotas-update-request.xml create mode 100644 api-ref/source/v3/samples/quotas-update-response.json create mode 100644 api-ref/source/v3/samples/quotas-update-response.xml create mode 100644 api-ref/source/v3/samples/quotas-user-show-detailed-response.json create mode 100644 api-ref/source/v3/samples/quotas-user-show-response.json create mode 100644 api-ref/source/v3/samples/quotas-user-show-response.xml create mode 100644 api-ref/source/v3/samples/snapshot-create-request.json create mode 100644 api-ref/source/v3/samples/snapshot-create-request.xml create mode 100644 api-ref/source/v3/samples/snapshot-create-response.json create mode 100644 api-ref/source/v3/samples/snapshot-create-response.xml create mode 100644 api-ref/source/v3/samples/snapshot-metadata-show-response.json create mode 100644 api-ref/source/v3/samples/snapshot-metadata-show-response.xml create mode 100644 api-ref/source/v3/samples/snapshot-metadata-update-request.json create mode 100644 api-ref/source/v3/samples/snapshot-metadata-update-request.xml create mode 100644 api-ref/source/v3/samples/snapshot-metadata-update-response.json create mode 100644 api-ref/source/v3/samples/snapshot-metadata-update-response.xml create mode 100644 api-ref/source/v3/samples/snapshot-show-response.json create mode 100644 api-ref/source/v3/samples/snapshot-show-response.xml create mode 100644 api-ref/source/v3/samples/snapshot-update-request.json create mode 100644 api-ref/source/v3/samples/snapshot-update-request.xml create mode 100644 api-ref/source/v3/samples/snapshot-update-response.json create mode 100644 api-ref/source/v3/samples/snapshot-update-response.xml create mode 100644 api-ref/source/v3/samples/snapshots-list-detailed-response.json create mode 100644 api-ref/source/v3/samples/snapshots-list-detailed-response.xml create mode 100644 api-ref/source/v3/samples/snapshots-list-response.json create mode 100644 api-ref/source/v3/samples/snapshots-list-response.xml create mode 100644 api-ref/source/v3/samples/user-quotas-show-response.json create mode 100644 api-ref/source/v3/samples/user-quotas-show-response.xml create mode 100644 api-ref/source/v3/samples/user-quotas-update-request.json create mode 100644 api-ref/source/v3/samples/user-quotas-update-request.xml create mode 100644 api-ref/source/v3/samples/user-quotas-update-response.json create mode 100644 api-ref/source/v3/samples/user-quotas-update-response.xml create mode 100644 api-ref/source/v3/samples/version-show-response.json create mode 100644 api-ref/source/v3/samples/version-show-response.xml create mode 100644 api-ref/source/v3/samples/version-v3-show-response.json create mode 100644 api-ref/source/v3/samples/versions-response.json create mode 100644 api-ref/source/v3/samples/versions-response.xml create mode 100644 api-ref/source/v3/samples/volume-attach-request.json create mode 100644 api-ref/source/v3/samples/volume-create-request.json create mode 100644 api-ref/source/v3/samples/volume-create-request.xml create mode 100644 api-ref/source/v3/samples/volume-create-response.json create mode 100644 api-ref/source/v3/samples/volume-create-response.xml create mode 100644 api-ref/source/v3/samples/volume-extend-request.json create mode 100644 api-ref/source/v3/samples/volume-force-detach-request.json create mode 100644 api-ref/source/v3/samples/volume-image-metadata-set-request.json create mode 100644 api-ref/source/v3/samples/volume-image-metadata-unset-request.json create mode 100644 api-ref/source/v3/samples/volume-manage-request.json create mode 100644 api-ref/source/v3/samples/volume-manage-response.json create mode 100644 api-ref/source/v3/samples/volume-metadata-create-request.json create mode 100644 api-ref/source/v3/samples/volume-metadata-create-response.json create mode 100644 api-ref/source/v3/samples/volume-metadata-show-response.json create mode 100644 api-ref/source/v3/samples/volume-metadata-show-response.xml create mode 100644 api-ref/source/v3/samples/volume-metadata-update-request.json create mode 100644 api-ref/source/v3/samples/volume-metadata-update-request.xml create mode 100644 api-ref/source/v3/samples/volume-metadata-update-response.json create mode 100644 api-ref/source/v3/samples/volume-metadata-update-response.xml create mode 100644 api-ref/source/v3/samples/volume-show-response.json create mode 100644 api-ref/source/v3/samples/volume-show-response.xml create mode 100644 api-ref/source/v3/samples/volume-status-reset-request.json create mode 100644 api-ref/source/v3/samples/volume-transfer-accept-request.json create mode 100644 api-ref/source/v3/samples/volume-transfer-accept-response.json create mode 100644 api-ref/source/v3/samples/volume-transfer-create-request.json create mode 100644 api-ref/source/v3/samples/volume-transfer-create-response.json create mode 100644 api-ref/source/v3/samples/volume-transfer-show-response.json create mode 100644 api-ref/source/v3/samples/volume-transfers-list-detailed-response.json create mode 100644 api-ref/source/v3/samples/volume-transfers-list-response.json create mode 100644 api-ref/source/v3/samples/volume-type-access-add-request.json create mode 100644 api-ref/source/v3/samples/volume-type-access-add-request.xml create mode 100644 api-ref/source/v3/samples/volume-type-access-delete-request.json create mode 100644 api-ref/source/v3/samples/volume-type-access-delete-request.xml create mode 100644 api-ref/source/v3/samples/volume-type-access-list-response.json create mode 100644 api-ref/source/v3/samples/volume-type-create-request.json create mode 100644 api-ref/source/v3/samples/volume-type-show-request.json create mode 100644 api-ref/source/v3/samples/volume-type-show-request.xml create mode 100644 api-ref/source/v3/samples/volume-type-show-response.json create mode 100644 api-ref/source/v3/samples/volume-type-show-response.xml create mode 100644 api-ref/source/v3/samples/volume-type-update-request.json create mode 100644 api-ref/source/v3/samples/volume-types-list-response.json create mode 100644 api-ref/source/v3/samples/volume-types-list-response.xml create mode 100644 api-ref/source/v3/samples/volume-unmanage-request.json create mode 100644 api-ref/source/v3/samples/volume-update-request.json create mode 100644 api-ref/source/v3/samples/volume-update-request.xml create mode 100644 api-ref/source/v3/samples/volume-update-response.json create mode 100644 api-ref/source/v3/samples/volume-update-response.xml create mode 100644 api-ref/source/v3/samples/volumes-list-detailed-response.json create mode 100644 api-ref/source/v3/samples/volumes-list-detailed-response.xml create mode 100644 api-ref/source/v3/samples/volumes-list-response.json create mode 100644 api-ref/source/v3/samples/volumes-list-response.xml create mode 100644 api-ref/source/v3/volume-manage.inc create mode 100644 api-ref/source/v3/volume-type-access.inc create mode 100644 api-ref/source/v3/volumes-v3-extensions.inc create mode 100644 api-ref/source/v3/volumes-v3-snapshots.inc create mode 100644 api-ref/source/v3/volumes-v3-types.inc create mode 100644 api-ref/source/v3/volumes-v3-versions.inc create mode 100644 api-ref/source/v3/volumes-v3-volumes-actions.inc create mode 100644 api-ref/source/v3/volumes-v3-volumes.inc diff --git a/api-ref/source/index.rst b/api-ref/source/index.rst index 1678a2a2975..196265a25fa 100644 --- a/api-ref/source/index.rst +++ b/api-ref/source/index.rst @@ -9,6 +9,7 @@ Contents: v1/index v2/index + v3/index Indices and tables diff --git a/api-ref/source/v2/index.rst b/api-ref/source/v2/index.rst index 33f17dd81f1..5693ddf0218 100644 --- a/api-ref/source/v2/index.rst +++ b/api-ref/source/v2/index.rst @@ -1,8 +1,8 @@ :tocdepth: 2 -==================== -Block Storage API V2 -==================== +================================ +Block Storage API V2 (SUPPORTED) +================================ .. rest_expand_all:: diff --git a/api-ref/source/v3/api-versions.inc b/api-ref/source/v3/api-versions.inc new file mode 100644 index 00000000000..948ead9c2f3 --- /dev/null +++ b/api-ref/source/v3/api-versions.inc @@ -0,0 +1,32 @@ +.. -*- rst -*- + +List All Api Versions +===================== + +.. rest_method:: GET / + +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** + + +.. literalinclude:: ./samples/versions-response.json + :language: javascript + +**Example List Api Versions: XML request** + + +.. literalinclude:: ./samples/versions-response.xml + :language: javascript diff --git a/api-ref/source/v3/capabilities-v3.inc b/api-ref/source/v3/capabilities-v3.inc new file mode 100644 index 00000000000..84b8cde6127 --- /dev/null +++ b/api-ref/source/v3/capabilities-v3.inc @@ -0,0 +1,48 @@ +.. -*- rst -*- + +================================================= +Capabilities for storage back ends (capabilities) +================================================= + +Shows capabilities for a storage back end. + + +Show all back-end capabilities +============================== + +.. rest_method:: GET /v3/{tenant_id}/capabilities/{hostname} + +Shows capabilities for a storage back end. + + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - hostname: hostname + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - pool_name: pool_name + - description: description + - volume_backend_name: volume_backend_name + - namespace: namespace + - visibility: visibility + - driver_version: driver_version + - vendor_name: vendor_name + - properties: properties + - storage_protocol: storage_protocol + +Response Example +---------------- + +.. literalinclude:: ./samples/backend-capabilities-response.json + :language: javascript diff --git a/api-ref/source/v3/consistencygroups-v3.inc b/api-ref/source/v3/consistencygroups-v3.inc new file mode 100644 index 00000000000..fe6deb5a3fe --- /dev/null +++ b/api-ref/source/v3/consistencygroups-v3.inc @@ -0,0 +1,267 @@ +.. -*- rst -*- + +================== +Consistency groups +================== + +Consistency groups enable you to create snapshots at the exact same +point in time from multiple volumes. For example, a database might +place its tables, logs, and configuration on separate volumes. To +restore this database from a previous point in time, it makes sense +to restore the logs, tables, and configuration together from the +exact same point in time. + +Use the ``policy.json`` file to grant permissions for these actions +to limit roles. + + +List tenant's consistency groups +================================ + +.. rest_method:: GET /v3/{tenant_id}/consistencygroups + +Lists consistency groups. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort_key: sort_key + - sort_dir: sort_dir + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - id: id + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/consistency-groups-list-response.json + :language: javascript + + +Create a consistency group +========================== + +.. rest_method:: POST /v3/{tenant_id}/consistencygroups + +Creates a consistency group. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - description: description_6 + - availability_zone: availability_zone + - volume_types: volume_types_2 + - name: name_15 + +Response +-------- + +.. rest_parameters:: parameters.yaml + + - status: status_1 + - description: description_11 + - availability_zone: availability_zone + - created_at: created_at + - volume_types: volume_types + - name: name_15 + - id: consistencygroup_id_1 + +Request Example +--------------- + +.. literalinclude:: ./samples/consistency-group-create-request.json + :language: javascript + +Response Example +---------------- + +.. literalinclude:: ./samples/consistency-group-create-response.json + :language: javascript + +Show a consistency group's details +================================== + +.. rest_method:: GET /v3/{tenant_id}/consistencygroups/{consistencygroup_id} + +Shows details for a consistency group. + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - consistencygroup_id: consistencygroup_id + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - availability_zone: availability_zone + - created_at: created_at + - volume_types: volume_types + - id: id + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/consistency-group-show-response.json + :language: javascript + + +Create a consistency group from source +====================================== + +.. rest_method:: POST /v3/{tenant_id}/consistencygroups/create_from_src + +Creates a consistency group from source. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - status: status + - user_id: user_id + - description: description + - cgsnapshot_id: cgsnapshot_id + - source_cgid: source_cgid + - project_id: project_id + - name: name + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/consistency-group-create-from-src-request.json + :language: javascript + + +Delete a consistency group +========================== + +.. rest_method:: POST /v3/{tenant_id}/consistencygroups/{consistencygroup_id}/delete + +Deletes a consistency group. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - force: force + - tenant_id: tenant_id + - consistencygroup_id: consistencygroup_id + +Request Example +--------------- + +.. literalinclude:: ./samples/consistency-group-delete-request.json + :language: javascript + + +List consistency groups and details +=================================== + +.. rest_method:: GET /v3/{tenant_id}/consistencygroups/detail + +Lists consistency groups with details. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort_key: sort_key + - sort_dir: sort_dir + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - availability_zone: availability_zone + - created_at: created_at + - volume_types: volume_types + - id: id + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/consistency-groups-list-detailed-response.json + :language: javascript + + +Update a consistency group +========================== + +.. rest_method:: PUT /v3/{tenant_id}/consistencygroups/{consistencygroup_id}/update + +Updates a consistency group. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - remove_volumes: remove_volumes + - description: description + - add_volumes: add_volumes + - name: name + - tenant_id: tenant_id + - consistencygroup_id: consistencygroup_id + +Request Example +--------------- + +.. literalinclude:: ./samples/consistency-group-update-request.json + :language: javascript diff --git a/api-ref/source/v3/ext-backups-actions-v3.inc b/api-ref/source/v3/ext-backups-actions-v3.inc new file mode 100644 index 00000000000..08de5f68199 --- /dev/null +++ b/api-ref/source/v3/ext-backups-actions-v3.inc @@ -0,0 +1,38 @@ +.. -*- rst -*- + +================================ +Backup actions (backups, action) +================================ + +Force-deletes a backup. + + +Force-delete a backup +===================== + +.. rest_method:: POST /v3/{tenant_id}/backups/{backup_id}/action + +Force-deletes a backup. Specify the ``os-force_delete`` action in the request body. + +This operations deletes the backup and any backup data. + +The backup driver returns the ``405`` status code if it does not +support this operation. + +Error response codes:404,405,202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - os-force_delete: os-force_delete + - tenant_id: tenant_id + - backup_id: backup_id + +Request Example +--------------- + +.. literalinclude:: ./samples/backup-force-delete-request.json + :language: javascript diff --git a/api-ref/source/v3/ext-backups.inc b/api-ref/source/v3/ext-backups.inc new file mode 100644 index 00000000000..01d823a722a --- /dev/null +++ b/api-ref/source/v3/ext-backups.inc @@ -0,0 +1,276 @@ +.. -*- rst -*- + +================= +Backups (backups) +================= + +A backup is a full copy of a volume stored in an external service. +The service can be configured. The only supported service is Object +Storage. A backup can subsequently be restored from the external +service to either the same volume that the backup was originally +taken from or to a new volume. Backup and restore operations can +only be carried out on volumes that are in an unattached and +available state. + +When you create, list, or delete backups, these status values are +possible: + +**Backup statuses** + ++-----------------+---------------------------------------------+ +| Status | Description | ++-----------------+---------------------------------------------+ +| creating | The backup is being created. | ++-----------------+---------------------------------------------+ +| available | The backup is ready to restore to a volume. | ++-----------------+---------------------------------------------+ +| deleting | The backup is being deleted. | ++-----------------+---------------------------------------------+ +| error | A backup error occurred. | ++-----------------+---------------------------------------------+ +| restoring | The backup is being restored to a volume. | ++-----------------+---------------------------------------------+ +| error_restoring | A backup restoration error occurred. | ++-----------------+---------------------------------------------+ + + +If an error occurs, you can find more information about the error +in the ``fail_reason`` field for the backup. + + +List backups with detail +======================== + +.. rest_method:: GET /v3/{tenant_id}/backups/detail + +Lists Block Storage backups, with details, to which the tenant has access. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort_key: sort_key + - sort_dir: sort_dir + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - object_count: object_count + - fail_reason: fail_reason + - description: description + - links: links + - availability_zone: availability_zone + - created_at: created_at + - updated_at: updated_at + - name: name + - has_dependent_backups: has_dependent_backups + - volume_id: volume_id + - container: container + - backups: backups + - size: size + - id: id + - is_incremental: is_incremental + +Response Example +---------------- + +.. literalinclude:: ./samples/backups-list-detailed-response.json + :language: javascript + + +Show backup detail +================== + +.. rest_method:: GET /v3/{tenant_id}/backups/{backup_id} + +Shows details for a backup. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - backup_id: backup_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - object_count: object_count + - container: container + - description: description + - links: links + - availability_zone: availability_zone + - created_at: created_at + - updated_at: updated_at + - name: name + - has_dependent_backups: has_dependent_backups + - volume_id: volume_id + - fail_reason: fail_reason + - size: size + - backup: backup + - id: id + - is_incremental: is_incremental + +Response Example +---------------- + +.. literalinclude:: ./samples/backup-show-response.json + :language: javascript + + +Delete a backup +=============== + +.. rest_method:: DELETE /v3/{tenant_id}/backups/{backup_id} + +Deletes a backup. + +Error response codes:204, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - backup_id: backup_id + + +Restore a backup +================ + +.. rest_method:: POST /v3/{tenant_id}/backups/{backup_id}/restore + +Restores a Block Storage backup to an existing or new Block Storage volume. + +You must specify either the UUID or name of the volume. If you +specify both the UUID and name, the UUID takes priority. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - restore: restore + - name: name + - volume_id: volume_id + - tenant_id: tenant_id + - backup_id: backup_id + +Request Example +--------------- + +.. literalinclude:: ./samples/backup-restore-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - restore: restore + - backup_id: backup_id + - volume_id: volume_id + +Create a backup +=============== + +.. rest_method:: POST /v3/{tenant_id}/backups + +Creates a Block Storage backup from a volume. + +Error response codes:202, + +Request +------- + +.. rest_parameters:: parameters.yaml + + - container: container + - description: description + - incremental: incremental + - volume_id: volume_id + - force: force + - backup: backup + - name: name + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/backup-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - backup: backup + - id: id + - links: links + - name: name + +List backups for tenant +======================= + +.. rest_method:: GET /v3/{tenant_id}/backups + +Lists Block Storage backups to which the tenant has access. + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort_key: sort_key + - sort_dir: sort_dir + - limit: limit + - marker: marker + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - backups: backups + - id: id + - links: links + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/backups-list-response.json + :language: javascript diff --git a/api-ref/source/v3/index.rst b/api-ref/source/v3/index.rst new file mode 100644 index 00000000000..7f5dc462c3d --- /dev/null +++ b/api-ref/source/v3/index.rst @@ -0,0 +1,28 @@ +:tocdepth: 2 + +============================== +Block Storage API V3 (CURRENT) +============================== + +.. rest_expand_all:: + +.. include:: api-versions.inc +.. include:: ext-backups.inc +.. include:: ext-backups-actions-v3.inc +.. include:: capabilities-v3.inc +.. include:: os-cgsnapshots-v3.inc +.. include:: consistencygroups-v3.inc +.. include:: limits.inc +.. include:: os-vol-image-meta-v3.inc +.. include:: os-vol-pool-v3.inc +.. include:: os-vol-transfer-v3.inc +.. include:: qos-specs-v3-qos-specs.inc +.. include:: quota-sets.inc +.. include:: volume-manage.inc +.. include:: volume-type-access.inc +.. include:: volumes-v3-extensions.inc +.. include:: volumes-v3-snapshots.inc +.. include:: volumes-v3-types.inc +.. include:: volumes-v3-versions.inc +.. include:: volumes-v3-volumes-actions.inc +.. include:: volumes-v3-volumes.inc diff --git a/api-ref/source/v3/limits.inc b/api-ref/source/v3/limits.inc new file mode 100644 index 00000000000..2d7cba04870 --- /dev/null +++ b/api-ref/source/v3/limits.inc @@ -0,0 +1,57 @@ +.. -*- rst -*- + +=============== +Limits (limits) +=============== + +Shows absolute limits for a tenant. + +An absolute limit value of ``-1`` indicates that the absolute limit +for the item is infinite. + + +Show absolute limits for tenant +=============================== + +.. rest_method:: GET /v3/{tenant_id}/limits + +Shows absolute limits for a tenant. + +An absolute limit value of ``-1`` indicates that the absolute limit +for the item is infinite. + + +Normal response codes: 200 +Error response codes:203, + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - totalSnapshotsUsed: totalSnapshotsUsed + - maxTotalBackups: maxTotalBackups + - maxTotalVolumeGigabytes: maxTotalVolumeGigabytes + - limits: limits + - maxTotalSnapshots: maxTotalSnapshots + - maxTotalBackupGigabytes: maxTotalBackupGigabytes + - totalBackupGigabytesUsed: totalBackupGigabytesUsed + - maxTotalVolumes: maxTotalVolumes + - totalVolumesUsed: totalVolumesUsed + - rate: rate + - totalBackupsUsed: totalBackupsUsed + - totalGigabytesUsed: totalGigabytesUsed + - absolute: absolute + +Response Example +---------------- + +.. literalinclude:: ./samples/limits-show-response.json + :language: javascript diff --git a/api-ref/source/v3/os-cgsnapshots-v3.inc b/api-ref/source/v3/os-cgsnapshots-v3.inc new file mode 100644 index 00000000000..2a97f4949f5 --- /dev/null +++ b/api-ref/source/v3/os-cgsnapshots-v3.inc @@ -0,0 +1,179 @@ +.. -*- rst -*- + +=========================== +Consistency group snapshots +=========================== + +Lists all, lists all with details, shows details for, creates, and +deletes consistency group snapshots. + + +Delete a consistency group snapshot +=================================== + +.. rest_method:: DELETE /v3/{tenant_id}/cgsnapshots/{cgsnapshot_id} + +Deletes a consistency group snapshot. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - cgsnapshot_id: cgsnapshot_id + + +Show consistency group snapshot detail +====================================== + +.. rest_method:: GET /v3/{tenant_id}/cgsnapshots/{cgsnapshot_id} + +Shows details for a consistency group snapshot. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - cgsnapshot_id: cgsnapshot_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - created_at: created_at + - consistencygroup_id: consistencygroup_id + - id: id + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/cgsnapshots-show-response.json + :language: javascript + + +List all consistency group snapshots with details +================================================= + +.. rest_method:: GET /v3/{tenant_id}/cgsnapshots/detail + +Lists all consistency group snapshots with details. + + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - created_at: created_at + - consistencygroup_id: consistencygroup_id + - id: id + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/cgsnapshots-list-detailed-response.json + :language: javascript + +List all consistency group snapshots +==================================== + +.. rest_method:: GET /v3/{tenant_id}/cgsnapshots + +Lists all consistency group snapshots. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - id: id + - name: name + + + +Response Example +---------------- + +.. literalinclude:: ./samples/cgsnapshots-list-response.json + :language: javascript + + + + +Create a consistency group snapshot +=================================== + +.. rest_method:: POST /v3/{tenant_id}/cgsnapshots + +Creates a consistency group snapshot. + +Error response codes:202, + +Request +------- + +.. rest_parameters:: parameters.yaml + + - name: name + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/cgsnapshots-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - created_at: created_at + - consistencygroup_id: consistencygroup_id + - id: id + - name: name diff --git a/api-ref/source/v3/os-vol-image-meta-v3.inc b/api-ref/source/v3/os-vol-image-meta-v3.inc new file mode 100644 index 00000000000..48181bc2b5a --- /dev/null +++ b/api-ref/source/v3/os-vol-image-meta-v3.inc @@ -0,0 +1,46 @@ +.. -*- rst -*- + +=================================================== +Volume image metadata extension (os-vol-image-meta) +=================================================== + +Shows image metadata that is associated with a volume. + + +Show image metadata for a volume +================================ + +.. rest_method:: GET /v3/{tenant_id}/os-vol-image-meta + +Shows image metadata for a volume. + +When the request is made, the caller must specify a reference to an +existing storage volume in the ``ref`` element. Each storage driver +may interpret the existing storage volume reference differently but +should accept a reference structure containing either a ``source- +volume-id`` or ``source-volume-name`` element, if possible. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - description: description + - availability_zone: availability_zone + - bootable: bootable + - volume_type: volume_type + - name: name + - volume: volume + - host: host + - ref: ref + - metadata: metadata + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/image-metadata-show-request.json + :language: javascript diff --git a/api-ref/source/v3/os-vol-pool-v3.inc b/api-ref/source/v3/os-vol-pool-v3.inc new file mode 100644 index 00000000000..20d4704a7d3 --- /dev/null +++ b/api-ref/source/v3/os-vol-pool-v3.inc @@ -0,0 +1,50 @@ +.. -*- rst -*- + +====================== +Back-end storage pools +====================== + +Administrator only. Lists all back-end storage pools that are known +to the scheduler service. + + +List all back-end storage pools +=============================== + +.. rest_method:: GET /v3/{tenant_id}/scheduler-stats/get_pools + +Lists all back-end storage pools. + + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - detail: detail + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - updated: updated + - QoS_support: QoS_support + - name: name + - total_capacity: total_capacity + - volume_backend_name: volume_backend_name + - capabilities: capabilities + - free_capacity: free_capacity + - driver_version: driver_version + - reserved_percentage: reserved_percentage + - storage_protocol: storage_protocol + +Response Example +---------------- + +.. literalinclude:: ./samples/pools-list-detailed-response.json + :language: javascript diff --git a/api-ref/source/v3/os-vol-transfer-v3.inc b/api-ref/source/v3/os-vol-transfer-v3.inc new file mode 100644 index 00000000000..ce30a69fd2d --- /dev/null +++ b/api-ref/source/v3/os-vol-transfer-v3.inc @@ -0,0 +1,217 @@ +.. -*- rst -*- + +=============== +Volume transfer +=============== + +Transfers a volume from one user to another user. + + +Accept a volume transfer +======================== + +.. rest_method:: POST /v3/{tenant_id}/os-volume-transfer/{transfer_id}/accept + +Accepts a volume transfer. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - auth_key: auth_key + - transfer_id: transfer_id + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-transfer-accept-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - volume_id: volume_id + - id: id + - links: links + - name: name + + +Create a volume transfer +======================== + +.. rest_method:: POST /v3/{tenant_id}/os-volume-transfer + +Creates a volume transfer. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - name: name + - volume_id: volume_id + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-transfer-create-request.json + :language: javascript + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - auth_key: auth_key + - links: links + - created_at: created_at + - volume_id: volume_id + - id: id + - name: name + + +List volume transfers for a tenant +================================== + +.. rest_method:: GET /v3/{tenant_id}/os-volume-transfer + +Lists volume transfers. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - volume_id: volume_id + - id: id + - links: links + - name: name + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-transfers-list-response.json + :language: javascript + + +Show volume transfer detail +=========================== + +.. rest_method:: GET /v3/{tenant_id}/os-volume-transfer/{transfer_id} + +Shows details for a volume transfer. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - transfer_id: transfer_id + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - created_at: created_at + - volume_id: volume_id + - id: id + - links: links + - name: name + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-transfer-show-response.json + :language: javascript + + +Delete a volume transfer +======================== + +.. rest_method:: DELETE /v3/{tenant_id}/os-volume-transfer/{transfer_id} + +Deletes a volume transfer. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - transfer_id: transfer_id + - tenant_id: tenant_id + + +List volume transfers and details +================================= + +.. rest_method:: GET /v3/{tenant_id}/os-volume-transfer/detail + +Lists volume transfers, with details. + + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - created_at: created_at + - volume_id: volume_id + - id: id + - links: links + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-transfers-list-detailed-response.json + :language: javascript diff --git a/api-ref/source/v3/parameters.yaml b/api-ref/source/v3/parameters.yaml new file mode 100644 index 00000000000..3844caa8375 --- /dev/null +++ b/api-ref/source/v3/parameters.yaml @@ -0,0 +1,1620 @@ +# variables in header +x-openstack-request-id: + description: > + foo + in: header + required: false + type: string + +# variables in path +admin_tenant_id: + description: | + The UUID of the administrative tenant. + in: path + required: false + type: string +backup_id: + description: | + The UUID for a backup. + in: path + required: false + type: string +cgsnapshot_id_1: + description: | + The ID of the consistency group snapshot. + in: path + required: false + type: string +consistencygroup_id_2: + description: | + The ID of the consistency group. + in: path + required: false + type: string +force_3: + description: | + To delete a QoS specification even if it is in- + use, set to ``true``. Default is ``false``. + in: path + required: false + type: boolean +hostname: + description: | + The name of the host that hosts the storage back + end. + in: path + required: false + type: string +qos_id: + description: | + The ID of the QoS specification. + in: path + required: false + type: string +snapshot_id_1: + description: | + The UUID of the snapshot. + in: path + required: false + type: string +tenant_id: + description: | + The UUID of the tenant in a multi-tenancy cloud. + in: path + required: false + type: string +transfer_id: + description: | + The unique identifier for a volume transfer. + in: path + required: false + type: string +user_id_1: + description: | + The user ID. Specify in the URI as + ``user_id={user_id}``. + in: path + required: false + type: string +volume_id_1: + description: | + The UUID of the volume. + in: path + required: false + type: string +volume_type: + description: | + The ID of Volume Type to be accessed by project. + in: path + required: false + type: string +volume_type_id: + description: | + The UUID for an existing volume type. + in: path + required: false + type: string + +# variables in query +action: + description: | + The action. Valid values are "set" or "unset." + in: query + required: true + type: string +all-tenants: + description: | + Shows details for all tenants. Admin only.. + in: query + required: false + type: string +bootable_query: + description: | + Filters results by bootable status. Default=None. + in: query + required: false + type: boolean +detail: + description: | + Indicates whether to show pool details or only + pool names in the response. Set to ``true`` to show pool details. + Set to ``false`` to show only pool names. Default is ``false``. + in: query + required: false + type: boolean +image-id: + description: | + Creates volume from image ID. Default=None. + in: query + required: false + type: string +limit: + description: | + 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. + in: query + required: false + type: integer +marker: + description: | + 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. + in: query + required: false + type: string +metadata_query: + description: | + Filters results by a metadata key and value pair. + Default=None. + in: query + required: true + type: object +migration_status_query: + description: | + Filters results by a migration status. Default=None. + Admin only. + in: query + required: false + type: string +name_volume: + description: | + Filters results by a name. Default=None. + in: query + required: false + type: string +sort: + description: | + 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). + in: query + required: false + type: string +sort_dir: + description: | + Sorts by one or more sets of attribute and sort + direction combinations. If you omit the sort direction in a set, + default is ``desc``. + in: query + required: false + type: string +sort_key: + description: | + 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. + in: query + required: false + type: string +sort_key_1: + description: | + Sorts by an image 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. + in: query + required: false + type: string +status_query: + description: | + Filters results by a status. Default=None. + in: query + required: false + type: boolean +usage: + description: | + Set to ``usage=true`` to show quota usage. + Default is ``false``. + in: query + required: false + type: boolean + +# variables in body +absolute: + description: | + An ``absolute`` limits object. + in: body + required: true + type: object +add_volumes: + description: | + One or more volume UUIDs, separated by commas, to + add to the volume consistency group. + in: body + required: false + type: string +alias: + description: | + The alias for the extension. For example, + "FOXNSOX", "os- availability-zone", "os-extended-quotas", "os- + share-unmanage" or "os-used-limits." + in: body + required: true + type: string +attach_status: + description: | + The volume attach status. + in: body + required: false + type: string +attachment_id: + description: | + The interface ID. + in: body + required: false + type: string +attachments: + description: | + 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. + in: body + required: true + type: array +auth_key: + description: | + The authentication key for the volume transfer. + in: body + required: true + type: string +availability_zone: + description: | + The name of the availability zone. + in: body + required: false + type: string +availability_zone_1: + description: | + The availability zone. + in: body + required: false + type: string +availability_zone_2: + description: | + The availability zone. + in: body + required: true + type: string +availability_zone_3: + description: | + The availability zone name. + in: body + required: true + type: string +backup: + description: | + A ``backup`` object. + in: body + required: true + type: object +backups: + description: | + A list of ``backup`` objects. + in: body + required: true + type: array +bootable: + description: | + Enables or disables the bootable attribute. You + can boot an instance from a bootable volume. + in: body + required: true + type: boolean +bootable_1: + description: | + Enables or disables the bootable attribute. You + can boot an instance from a bootable volume. + in: body + required: false + type: boolean +capabilities: + description: | + The capabilities for the back end. The value is + either ``null`` or a string value that indicates the capabilities + for each pool. For example, ``total_capacity`` or ``QoS_support``. + in: body + required: true + type: object +cgsnapshot_id: + description: | + The UUID of the consistency group snapshot. + in: body + required: false + type: string +connector: + description: | + The ``connector`` object. + in: body + required: true + type: object +consistencygroup_id: + description: | + The UUID of the consistency group. + in: body + required: true + type: string +consistencygroup_id_1: + description: | + The UUID of the consistency group. + in: body + required: false + type: string +consumer: + description: | + The consumer type. + in: body + required: false + type: string +consumer_1: + description: | + The consumer type. + in: body + required: true + type: string +container: + description: | + The container name or null. + in: body + required: true + type: string +cores: + description: | + The number of instance cores that are allowed for + each tenant. + in: body + required: true + type: integer +created_at: + description: | + 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. + in: body + required: true + type: string +created_at_1: + description: | + Date and time when the volume was created. + in: body + required: true + type: string +description: + description: | + The backup description or null. + in: body + required: true + type: string +description_1: + description: | + The consistency group snapshot description. + in: body + required: true + type: string +description_10: + description: | + The capabilities description. + in: body + required: true + type: string +description_11: + description: | + The consistency group description. + in: body + required: false + type: string +description_2: + description: | + The description of the consistency group. + in: body + required: false + type: string +description_3: + description: | + The description of the consistency group. + in: body + required: true + type: string +description_4: + description: | + A description for the snapshot. Default is + ``None``. + in: body + required: false + type: string +description_5: + description: | + The volume description. + in: body + required: false + type: string +description_6: + description: | + The consistency group description. + in: body + required: true + type: string +description_7: + description: | + The extension description. + in: body + required: true + type: string +description_8: + description: | + A description for the snapshot. + in: body + required: true + type: string +description_9: + description: | + The volume description. + in: body + required: true + type: string +driver_version: + description: | + The driver version. + in: body + required: true + type: string +encrypted: + description: | + If true, this volume is encrypted. + in: body + required: true + type: boolean +extra_specs: + description: | + A set of key and value pairs that contains the + specifications for a volume type. + in: body + required: true + type: object +extra_specs_1: + description: | + 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. + in: body + required: true + type: object +fail_reason: + description: | + If the backup failed, the reason for the failure. + Otherwise, null. + in: body + required: true + type: string +fixed_ips: + description: | + The number of fixed IP addresses that are allowed + for each tenant. Must be equal to or greater than the number of + allowed instances. + in: body + required: true + type: integer +floating_ips: + description: | + The number of floating IP addresses that are + allowed for each tenant. + in: body + required: true + type: integer +force: + description: | + Indicates whether to backup, even if the volume + is attached. Default is ``false``. + in: body + required: false + type: boolean +force_1: + description: | + Indicates whether to snapshot, even if the volume + is attached. Default is ``false``. + in: body + required: false + type: boolean +force_2: + description: | + If set to ``true``, forces deletion of a + consistency group that has a registered volume. + in: body + required: false + type: boolean +free_capacity: + description: | + The amount of free capacity for the back-end + volume, in GBs. A valid value is a string, such as ``unknown``, or + an integer. + in: body + required: true + type: string +has_dependent_backups: + description: | + If this value is ``true``, the backup depends on + other backups. + in: body + required: false + type: boolean +host: + description: | + The OpenStack Block Storage host where the + existing volume resides. + in: body + required: true + type: string +host_name: + description: | + The name of the attaching host. + in: body + required: false + type: string +id: + description: | + The UUID of the volume transfer. + in: body + required: true + type: string +id_1: + description: | + The UUID of the backup. + in: body + required: true + type: string +id_2: + description: | + The UUID of the consistency group snapshot. + in: body + required: true + type: string +id_3: + description: | + The generated ID for the QoS specification. + in: body + required: true + type: string +id_4: + description: | + The snapshot UUID. + in: body + required: true + type: string +id_5: + description: | + The UUID of the volume. + in: body + required: true + type: string +id_6: + description: | + The UUID of the consistency group. + in: body + required: true + type: string +id_7: + description: | + The ID for the quota set. + in: body + required: true + type: integer +imageRef: + description: | + The UUID of the image from which you want to + create the volume. Required to create a bootable volume. + in: body + required: false + type: string +in_use: + description: | + The in use data size. Visible only if you set the + ``usage=true`` query parameter. + in: body + required: false + type: string +incremental: + description: | + The backup mode. A valid value is ``true`` for + incremental backup mode or ``false`` for full backup mode. Default + is ``false``. + in: body + required: false + type: boolean +injected_file_content_bytes: + description: | + The number of bytes of content that are allowed + for each injected file. + in: body + required: true + type: integer +injected_file_path_bytes: + description: | + The number of bytes that are allowed for each + injected file path. + in: body + required: true + type: integer +injected_files: + description: | + The number of injected files that are allowed for + each tenant. + in: body + required: true + type: integer +instance_uuid: + description: | + The UUID of the attaching instance. + in: body + required: false + type: string +instances: + description: | + The number of instances that are allowed for each + tenant. + in: body + required: true + type: integer +is_incremental: + description: | + Indicates whether the backup mode is incremental. + If this value is ``true``, the backup mode is incremental. If this + value is ``false``, the backup mode is full. + in: body + required: false + type: boolean +is_public: + description: + Volume type which is accessible to the public. + in: body + required: false + type: boolean +key: + description: | + The metadata key name for the metadata that you + want to remove. + in: body + required: true + type: string +key_pairs: + description: | + The number of key pairs that are allowed for each + user. + in: body + required: true + type: integer +keys: + description: | + List of Keys. + in: body + required: true + type: array +limits: + description: | + A list of ``limit`` objects. + in: body + required: true + type: object +links: + description: | + Links for the volume transfer. + in: body + required: true + type: array +links_1: + description: | + Links for the backup. + in: body + required: true + type: array +links_2: + description: | + The QoS specification links. + in: body + required: true + type: array +links_3: + description: | + The volume links. + in: body + required: true + type: array +links_4: + description: | + List of links related to the extension. + in: body + required: true + type: array +location: + description: | + Full URL to a service or server. + format: uri + in: body + required: true + type: string +maxTotalBackupGigabytes: + description: | + The maximum total amount of backups, in gibibytes + (GiB). + in: body + required: true + type: integer +maxTotalBackups: + description: | + The maximum number of backups. + in: body + required: true + type: integer +maxTotalSnapshots: + description: | + The maximum number of snapshots. + in: body + required: true + type: integer +maxTotalVolumeGigabytes: + description: | + The maximum total amount of volumes, in gibibytes + (GiB). + in: body + required: true + type: integer +maxTotalVolumes: + description: | + The maximum number of volumes. + in: body + required: true + type: integer +metadata: + description: | + One or more metadata key and value pairs for the + snapshot, if any. + in: body + required: true + type: object +metadata_1: + description: | + A ``metadata`` object. Contains one or more + metadata key and value pairs that are associated with the volume. + in: body + required: true + type: object +metadata_2: + description: | + One or more metadata key and value pairs that are + associated with the volume. + in: body + required: false + type: object +metadata_3: + description: | + One or more metadata key and value pairs that are + associated with the volume. + in: body + required: true + type: object +metadata_4: + description: | + One or more metadata key and value pairs to + associate with the volume. + in: body + required: false + type: string +metadata_5: + description: | + The image metadata to add to the volume as a set + of metadata key and value pairs. + in: body + required: true + type: object +metadata_6: + description: | + One or more metadata key and value pairs to + associate with the volume. + in: body + required: false + type: object +metadata_7: + description: | + One or more metadata key and value pairs for the + snapshot. + in: body + required: false + type: object +metadata_items: + description: | + The number of metadata items that are allowed for + each instance. + in: body + required: true + type: integer +migration_status: + description: | + The volume migration status. + in: body + required: true + type: string +migration_status_1: + description: | + The volume migration status. + in: body + required: false + type: string +mountpoint: + description: | + The attaching mount point. + in: body + required: false + type: string +multiattach: + description: | + To enable this volume to attach to more than one + server, set this value to ``true``. Default is ``false``. + in: body + required: false + type: boolean +multiattach_1: + description: | + If true, this volume can attach to more than one + instance. + in: body + required: true + type: boolean +name: + description: | + The name of the Volume Transfer. + in: body + required: true + type: string +name_1: + description: | + The backup name. + in: body + required: true + type: string +name_10: + description: | + The name of the extension. For example, "Fox In + Socks." + in: body + required: true + type: string +name_11: + description: | + The name of the back-end volume. + in: body + required: true + type: string +name_12: + description: | + The name of the snapshot. + in: body + required: true + type: string +name_13: + description: | + The volume name. + in: body + required: true + type: string +name_14: + description: | + The name of the volume to which you want to + restore a backup. + in: body + required: false + type: string +name_15: + description: | + The consistency group name. + in: body + required: false + type: string +name_2: + description: | + The consistency group snapshot name. + in: body + required: true + type: string +name_3: + description: | + The name of the consistency group. + in: body + required: true + type: string +name_4: + description: | + The name of the QoS specification. + in: body + required: true + type: string +name_5: + description: | + The name of the snapshot. Default is ``None``. + in: body + required: false + type: string +name_6: + description: | + The volume transfer name. + in: body + required: false + type: string +name_7: + description: | + The name of the volume type. + in: body + required: true + type: string +name_8: + description: | + The volume name. + in: body + required: false + type: string +name_9: + description: | + The consistency group name. + in: body + required: true + type: string +namespace: + description: | + Link associated to the extension. + in: body + required: true + type: string +namespace_1: + description: | + The storage namespace, such as + ``OS::Storage::Capabilities::foo``. + in: body + required: true + type: string +new_size: + description: | + The new size of the volume, in gibibytes (GiB). + in: body + required: true + type: integer +object_count: + description: | + The number of objects in the backup. + in: body + required: true + type: integer +os-attach: + description: | + The ``os-attach`` action. + in: body + required: true + type: object +os-extend: + description: | + The ``os-extend`` action. + in: body + required: true + type: object +os-extended-snapshot-attributes:progress: + description: | + A percentage value for the build progress. + in: body + required: true + type: integer +os-extended-snapshot-attributes:project_id: + description: | + The UUID of the owning project. + in: body + required: true + type: string +os-force_delete: + description: | + The ``os-force_delete`` action. + in: body + required: true + type: string +os-force_detach: + description: | + The ``os-force_detach`` action. + in: body + required: true + type: object +os-reset_status: + description: | + The ``os-reset_status`` action. + in: body + required: true + type: object +OS-SCH-HNT:scheduler_hints: + description: | + The dictionary of data to send to the scheduler. + in: body + required: false + type: object +os-set_image_metadata: + description: | + The ``os-set_image_metadata`` action. + in: body + required: true + type: object +os-unmanage: + description: | + The ``os-unmanage`` action. This action removes + the specified volume from Cinder management. + in: body + required: true + type: object +os-unset_image_metadata: + description: | + The ``os-unset_image_metadata`` action. This + action removes the key-value pairs from the image metadata. + in: body + required: true + type: object +os-vol-host-attr:host: + description: | + Current back-end of the volume. + in: body + required: true + type: string +os-vol-mig-status-attr:migstat: + description: | + The status of this volume migration (None means + that a migration is not currently in progress). + in: body + required: true + type: string +os-vol-mig-status-attr:name_id: + description: | + The volume ID that this volume name on the back- + end is based on. + in: body + required: true + type: string +os-vol-tenant-attr:tenant_id: + description: | + The tenant ID which the volume belongs to. + in: body + required: true + type: string +os-volume-replication:driver_data: + description: | + The name of the volume replication driver. + in: body + required: false + type: string +os-volume-replication:extended_status: + description: | + The volume replication status managed by the + driver of backend storage. + in: body + required: false + type: string +os-volume-replication:extended_status_1: + description: | + The status of the volume replication. + in: body + required: false + type: string +pool_name: + description: | + The name of the storage pool. + in: body + required: true + type: string +project: + description: | + The ID of the project. Volume Type access to be + added to this project ID. + in: body + required: true + type: string +project_id: + description: | + The UUID of the project. + in: body + required: true + type: string +project_id_1: + description: | + The Project ID having access to this volume type. + in: body + required: true + type: string +properties: + description: | + The backend volume capabilities list, which is + consisted of cinder standard capabilities and vendor unique + properties. + in: body + required: true + type: object +qos_specs: + description: | + A ``qos_specs`` object. + in: body + required: true + type: object +QoS_support: + description: | + The quality of service (QoS) support. + in: body + required: true + type: boolean +quota_set: + description: | + A ``quota_set`` object. + in: body + required: true + type: object +ram: + description: | + The amount of instance RAM in megabytes that are + allowed for each tenant. + in: body + required: true + type: integer +rate: + description: | + Rate-limit volume copy bandwidth, used to + mitigate slow down of data access from the instances. + in: body + required: true + type: array +ref: + description: | + A reference to the existing volume. The internal + structure of this reference depends on the volume driver + implementation. For details about the required elements in the + structure, see the documentation for the volume driver. + in: body + required: true + type: string +ref_1: + description: | + A reference to the existing volume. The internal + structure of this reference is dependent on the implementation of + the volume driver, see the specific driver's documentation for + details of the required elements in the structure. + in: body + required: true + type: object +remove_volumes: + description: | + One or more volume UUIDs, separated by commas, to + remove from the volume consistency group. + in: body + required: false + type: string +replication_status: + description: | + The volume replication status. + in: body + required: true + type: string +reserved: + description: | + Reserved volume size. Visible only if you set the + ``usage=true`` query parameter. + in: body + required: false + type: integer +reserved_percentage: + description: | + The percentage of the total capacity that is + reserved for the internal use by the back end. + in: body + required: true + type: integer +restore: + description: | + A ``restore`` object. + in: body + required: true + type: object +security_group_rules: + description: | + The number of rules that are allowed for each + security group. + in: body + required: false + type: integer +security_groups: + description: | + The number of security groups that are allowed + for each tenant. + in: body + required: true + type: integer +size: + description: | + The size of the volume, in gibibytes (GiB). + in: body + required: true + type: integer +size_1: + description: | + The size of the backup, in GB. + in: body + required: true + type: integer +snapshot: + description: | + A partial representation of a snapshot used in + the creation process. + in: body + required: true + type: string +snapshot_1: + description: | + A ``snapshot`` object. + in: body + required: true + type: object +snapshot_id: + description: | + 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. + in: body + required: false + type: string +snapshot_id_2: + description: | + The UUID of the source volume snapshot. + in: body + required: true + type: string +snapshot_id_3: + description: | + The UUID of the source volume snapshot. The API + creates a new volume snapshot with the same size as the source + volume snapshot. + in: body + required: true + type: string +source_cgid: + description: | + The UUID of the source consistency group. + in: body + required: false + type: string +source_replica: + description: | + The UUID of the primary volume to clone. + in: body + required: false + type: string +source_volid: + description: | + The UUID of the source volume. The API creates a + new volume with the same size as the source volume. + in: body + required: false + type: string +source_volid_1: + description: | + The UUID of the source volume. + in: body + required: true + type: string +specs: + description: | + A ``specs`` object. + in: body + required: true + type: object +specs_1: + description: | + Specification key and value pairs. + in: body + required: true + type: object +specs_2: + description: | + Specification key and value pairs. + in: body + required: true + type: string +status: + description: | + The ``status`` of the consistency group snapshot. + in: body + required: false + type: string +status_1: + description: | + The status of the consistency group. + in: body + required: true + type: string +status_2: + description: | + The status for the snapshot. + in: body + required: true + type: string +status_3: + description: | + The volume status. + in: body + required: true + type: string +status_4: + description: | + The backup status. Refer to Backup statuses table + for the possible status value. + in: body + required: true + type: string +status_5: + description: | + The consistency group status. A valid value is + ``creating``, ``available``, ``error``, ``deleting``, + ``updating``, or ``invalid``. + in: body + required: true + type: string +status_6: + description: | + The volume status. + in: body + required: false + type: string +storage_protocol: + description: | + The storage back end for the back-end volume. For + example, ``iSCSI`` or ``FC``. + in: body + required: true + type: string +storage_protocol_1: + description: | + The storage protocol, such as Fibre Channel, + iSCSI, NFS, and so on. + in: body + required: true + type: string +total_capacity: + description: | + The total capacity for the back-end volume, in + GBs. A valid value is a string, such as ``unknown``, or an + integer. + in: body + required: true + type: string +totalBackupGigabytesUsed: + description: | + The total number of backups gibibytes (GiB) used. + in: body + required: true + type: integer +totalBackupsUsed: + description: | + The total number of backups used. + in: body + required: true + type: integer +totalGigabytesUsed: + description: | + The total number of gibibytes (GiB) used. + in: body + required: true + type: integer +totalSnapshotsUsed: + description: | + The total number of snapshots used. + in: body + required: true + type: integer +totalVolumesUsed: + description: | + The total number of volumes used. + in: body + required: true + type: integer +updated: + description: | + The date and time stamp when the extension was + last updated. + in: body + required: true + type: string +updated_1: + description: | + The date and time stamp when the API request was + issued. + in: body + required: true + type: string +updated_at: + description: | + 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``. + in: body + required: true + type: string +user_id: + description: | + The UUID of the user. + in: body + required: true + type: string +vendor_name: + description: | + The name of the vendor. + in: body + required: true + type: string +visibility: + description: | + The volume type access. + in: body + required: true + type: string +volume: + description: | + A ``volume`` object. + in: body + required: true + type: object +volume_1: + description: | + A ``volume`` object. + in: body + required: true + type: string +volume_backend_name: + description: | + The name of the back-end volume. + in: body + required: true + type: string +volume_id: + description: | + The UUID of the volume. + in: body + required: true + type: string +volume_id_2: + description: | + The UUID of the volume that you want to back up. + in: body + required: true + type: string +volume_id_3: + description: | + To create a snapshot from an existing volume, + specify the UUID of the existing volume. + in: body + required: true + type: string +volume_id_4: + description: | + The UUID of the volume from which the backup was + created. + in: body + required: true + type: string +volume_id_5: + description: | + If the snapshot was created from a volume, the + volume ID. + in: body + required: true + type: string +volume_id_6: + description: | + The UUID of the volume to which you want to + restore a backup. + in: body + required: false + type: string +volume_type_1: + description: | + A ``volume_type`` object. + in: body + required: true + type: object +volume_type_2: + description: | + 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 + `_. + in: body + required: false + type: string +volume_type_3: + description: | + The volume type. 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 `_. + in: body + required: true + type: string +volume_type_4: + description: | + The associated volume type. + in: body + required: false + type: string +volume_type_5: + description: | + A list of ``volume_type`` objects. + in: body + required: true + type: array +volume_types: + description: | + 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 + `_. + in: body + required: true + type: array +volume_types_2: + description: | + The list of volume types separated by commas. 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 + `_. + in: body + required: true + type: string +volumes: + description: | + A list of ``volume`` objects. + in: body + required: true + type: array diff --git a/api-ref/source/v3/qos-specs-v3-qos-specs.inc b/api-ref/source/v3/qos-specs-v3-qos-specs.inc new file mode 100644 index 00000000000..4989f5f8795 --- /dev/null +++ b/api-ref/source/v3/qos-specs-v3-qos-specs.inc @@ -0,0 +1,315 @@ +.. -*- rst -*- + +=================================================== +Quality of service (QoS) specifications (qos-specs) +=================================================== + +Administrators only, depending on policy settings. + +Creates, lists, shows details for, associates, disassociates, sets +keys, unsets keys, and deletes quality of service (QoS) +specifications. + + +Disassociate a QoS specification from all associations +====================================================== + +.. rest_method:: GET /v3/{tenant_id}/qos-specs/{qos_id}/disassociate_all + +Disassociates a QoS specification from all associations. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - qos_id: qos_id + + +Unset keys in a QoS specification +================================= + +.. rest_method:: PUT /v3/{tenant_id}/qos-specs/{qos_id}/delete_keys + +Unsets keys in a QoS specification. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - keys: keys + - tenant_id: tenant_id + - qos_id: qos_id + +Request Example +--------------- + +.. literalinclude:: ./samples/qos-unset-request.json + :language: javascript + + + +Response Example +---------------- + +.. literalinclude:: ./samples/qos-unset-response.json + :language: javascript + + +Get all associations for a QoS specification +============================================ + +.. rest_method:: GET /v3/{tenant_id}/qos-specs/{qos_id}/associations + +Lists all associations for a QoS specification. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - qos_id: qos_id + + +Response Example +---------------- + +.. literalinclude:: ./samples/qos-show-response.json + :language: javascript + + +Associate QoS specification with a volume type +============================================== + +.. rest_method:: GET /v3/{tenant_id}/qos-specs/{qos_id}/associate + +Associates a QoS specification with a volume type. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - qos_id: qos_id + + +Disassociate QoS specification from a volume type +================================================= + +.. rest_method:: GET /v3/{tenant_id}/qos-specs/{qos_id}/disassociate + +Disassociates a QoS specification from a volume type. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - qos_id: qos_id + + +Show a QoS specification details +================================ + +.. rest_method:: GET /v3/{tenant_id}/qos-specs/{qos_id} + +Shows details for a QoS specification. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,503, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - qos_id: qos_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - name: name + - links: links + - id: id + - qos_specs: qos_specs + - consumer: consumer + - specs: specs + + +Response Example +---------------- + +.. literalinclude:: ./samples/qos-show-response.json + :language: javascript + + +Set keys in a QoS specification +=============================== + +.. rest_method:: PUT /v3/{tenant_id}/qos-specs/{qos_id} + +Sets keys in a QoS specification. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - qos_specs: qos_specs + - specs: specs + - tenant_id: tenant_id + - qos_id: qos_id + +Request Example +--------------- + +.. literalinclude:: ./samples/qos-update-request.json + :language: javascript + + +Response Example +---------------- + +.. literalinclude:: ./samples/qos-update-response.json + :language: javascript + + +Delete a QoS specification +========================== + +.. rest_method:: DELETE /v3/{tenant_id}/qos-specs/{qos_id} + +Deletes a QoS specification. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - qos_id: qos_id + - force: force + + +Create a QoS specification +========================== + +.. rest_method:: POST /v3/{tenant_id}/qos-specs + +Creates a QoS specification. + +Specify one or more key and value pairs in the request body. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - qos_specs: qos_specs + - consumer: consumer + - name: name + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/qos-create-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - name: name + - links: links + - id: id + - qos_specs: qos_specs + - consumer: consumer + - specs: specs + + +List QoS Specifications +======================= + +.. rest_method:: GET /v3/{tenant_id}/qos-specs + +Lists quality of service (QoS) specifications. + + +Normal response codes: 200 +Error response codes:300, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort_key: sort_key + - sort_dir: sort_dir + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - specs: specs + - qos_specs: qos_specs + - consumer: consumer + - id: id + - name: name + + +Response Example +---------------- + +.. literalinclude:: ./samples/qos-list-response.json + :language: javascript diff --git a/api-ref/source/v3/quota-sets.inc b/api-ref/source/v3/quota-sets.inc new file mode 100644 index 00000000000..0b95918db7f --- /dev/null +++ b/api-ref/source/v3/quota-sets.inc @@ -0,0 +1,407 @@ +.. -*- rst -*- + +==================================== +Quota sets extension (os-quota-sets) +==================================== + +Administrators only, depending on policy settings. + +Shows, updates, and deletes quotas for a tenant. + + +Show quotas for a user +====================== + +.. rest_method:: GET /v3/{admin_tenant_id}/os-quota-sets/{tenant_id}/{user_id} + +Enables an admin user to show quotas for a tenant and user. + + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - user_id: user_id + - admin_tenant_id: admin_tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-update-response.json + :language: javascript + + +Update quotas for a user +======================== + +.. rest_method:: PUT /v3/{admin_tenant_id}/os-quota-sets/{tenant_id}/{user_id} + +Updates quotas for a tenant and user. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + - tenant_id: tenant_id + - user_id: user_id + - admin_tenant_id: admin_tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/quotas-update-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-update-response.json + :language: javascript + +Delete quotas for a user +======================== + +.. rest_method:: DELETE /v3/{admin_tenant_id}/os-quota-sets/{tenant_id}/{user_id} + +Deletes quotas for a user so that the quotas revert to default values. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - user_id: user_id + - admin_tenant_id: admin_tenant_id + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-delete-response.json + :language: javascript + + +Show quotas for a tenant +======================== + +.. rest_method:: GET /v3/{admin_tenant_id}/os-quota-sets/{tenant_id} + +Shows quotas for a tenant. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - admin_tenant_id: admin_tenant_id + - usage: usage + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-show-response.json + :language: javascript + +Update quotas for a tenant +========================== + +.. rest_method:: PUT /v3/{admin_tenant_id}/os-quota-sets/{tenant_id} + +Updates quotas for a tenant. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + - tenant_id: tenant_id + - admin_tenant_id: admin_tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/quotas-update-request.json + :language: javascript + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-update-response.json + :language: javascript + +Delete quotas for a tenant +========================== + +.. rest_method:: DELETE /v3/{admin_tenant_id}/os-quota-sets/{tenant_id} + +Deletes quotas for a tenant so the quotas revert to default values. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - admin_tenant_id: admin_tenant_id + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-delete-response.json + :language: javascript + +Show quota details for a user +============================= + +.. rest_method:: GET /v3/{admin_tenant_id}/os-quota-sets/{tenant_id}/detail/{user_id} + +Shows details for quotas for a tenant and user. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - user_id: user_id + - admin_tenant_id: admin_tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-update-response.json + :language: javascript + + +Get default quotas for a tenant +=============================== + +.. rest_method:: GET /v3/{tenant_id}/os-quota-sets/defaults + +Gets default quotas for a tenant. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - injected_file_content_bytes: injected_file_content_bytes + - metadata_items: metadata_items + - reserved: reserved + - in_use: in_use + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - injected_file_path_bytes: injected_file_path_bytes + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - id: id + - security_groups: security_groups + + +Response Example +---------------- + +.. literalinclude:: ./samples/quotas-show-defaults-response.json + :language: javascript diff --git a/api-ref/source/v3/samples/backend-capabilities-response.json b/api-ref/source/v3/samples/backend-capabilities-response.json new file mode 100644 index 00000000000..a72a238156c --- /dev/null +++ b/api-ref/source/v3/samples/backend-capabilities-response.json @@ -0,0 +1,33 @@ +{ + "namespace": "OS::Storage::Capabilities::fake", + "vendor_name": "OpenStack", + "volume_backend_name": "lvm", + "pool_name": "pool", + "driver_version": "2.0.0", + "storage_protocol": "iSCSI", + "display_name": "Capabilities of Cinder LVM driver", + "description": "These are volume type options provided by Cinder LVM driver, blah, blah.", + "visibility": "public", + "properties": { + "compression": { + "title": "Compression", + "description": "Enables compression.", + "type": "boolean" + }, + "qos": { + "title": "QoS", + "description": "Enables QoS.", + "type": "boolean" + }, + "replication": { + "title": "Replication", + "description": "Enables replication.", + "type": "boolean" + }, + "thin_provisioning": { + "title": "Thin Provisioning", + "description": "Sets thin provisioning.", + "type": "boolean" + } + } +} diff --git a/api-ref/source/v3/samples/backup-create-request.json b/api-ref/source/v3/samples/backup-create-request.json new file mode 100644 index 00000000000..c7f8a74d5db --- /dev/null +++ b/api-ref/source/v3/samples/backup-create-request.json @@ -0,0 +1,9 @@ +{ + "backup": { + "container": null, + "description": null, + "name": "backup001", + "volume_id": "64f5d2fb-d836-4063-b7e2-544d5c1ff607", + "incremental": true + } +} diff --git a/api-ref/source/v3/samples/backup-create-response.json b/api-ref/source/v3/samples/backup-create-response.json new file mode 100644 index 00000000000..815327fcd79 --- /dev/null +++ b/api-ref/source/v3/samples/backup-create-response.json @@ -0,0 +1,16 @@ +{ + "backup": { + "id": "deac8b8c-35c9-4c71-acaa-889c2d5d5c8e", + "links": [ + { + "href": "http://localhost:8776/v3/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e", + "rel": "self" + }, + { + "href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e", + "rel": "bookmark" + } + ], + "name": "backup001" + } +} diff --git a/api-ref/source/v3/samples/backup-force-delete-request.json b/api-ref/source/v3/samples/backup-force-delete-request.json new file mode 100644 index 00000000000..5c56464d919 --- /dev/null +++ b/api-ref/source/v3/samples/backup-force-delete-request.json @@ -0,0 +1,3 @@ +{ + "os-force_delete": {} +} diff --git a/api-ref/source/v3/samples/backup-record-export-response.json b/api-ref/source/v3/samples/backup-record-export-response.json new file mode 100644 index 00000000000..8783eeda0ea --- /dev/null +++ b/api-ref/source/v3/samples/backup-record-export-response.json @@ -0,0 +1,6 @@ +{ + "backup-record": { + "backup_service": "cinder.backup.drivers.swift", + "backup_url": "eyJzdGF0" + } +} diff --git a/api-ref/source/v3/samples/backup-record-import-request.json b/api-ref/source/v3/samples/backup-record-import-request.json new file mode 100644 index 00000000000..8783eeda0ea --- /dev/null +++ b/api-ref/source/v3/samples/backup-record-import-request.json @@ -0,0 +1,6 @@ +{ + "backup-record": { + "backup_service": "cinder.backup.drivers.swift", + "backup_url": "eyJzdGF0" + } +} diff --git a/api-ref/source/v3/samples/backup-record-import-response.json b/api-ref/source/v3/samples/backup-record-import-response.json new file mode 100644 index 00000000000..1d6f1798b63 --- /dev/null +++ b/api-ref/source/v3/samples/backup-record-import-response.json @@ -0,0 +1,16 @@ +{ + "backup": { + "id": "deac8b8c-35c9-4c71-acaa-889c2d5d5c8e", + "links": [ + { + "href": "http://localhost:8776/v3/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e", + "rel": "self" + }, + { + "href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e", + "rel": "bookmark" + } + ], + "name": null + } +} diff --git a/api-ref/source/v3/samples/backup-restore-request.json b/api-ref/source/v3/samples/backup-restore-request.json new file mode 100644 index 00000000000..2ccb7e516be --- /dev/null +++ b/api-ref/source/v3/samples/backup-restore-request.json @@ -0,0 +1,6 @@ +{ + "restore": { + "name": "vol-01", + "volume_id": "64f5d2fb-d836-4063-b7e2-544d5c1ff607" + } +} diff --git a/api-ref/source/v3/samples/backup-restore-response.json b/api-ref/source/v3/samples/backup-restore-response.json new file mode 100644 index 00000000000..a344ea56cdc --- /dev/null +++ b/api-ref/source/v3/samples/backup-restore-response.json @@ -0,0 +1,6 @@ +{ + "restore": { + "backup_id": "2ef47aee-8844-490c-804d-2a8efe561c65", + "volume_id": "795114e8-7489-40be-a978-83797f2c1dd3" + } +} diff --git a/api-ref/source/v3/samples/backup-show-response.json b/api-ref/source/v3/samples/backup-show-response.json new file mode 100644 index 00000000000..c4fe0ffc4e5 --- /dev/null +++ b/api-ref/source/v3/samples/backup-show-response.json @@ -0,0 +1,27 @@ +{ + "backup": { + "availability_zone": "az1", + "container": "volumebackups", + "created_at": "2013-04-02T10:35:27.000000", + "description": null, + "fail_reason": null, + "id": "2ef47aee-8844-490c-804d-2a8efe561c65", + "links": [ + { + "href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65", + "rel": "self" + }, + { + "href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65", + "rel": "bookmark" + } + ], + "name": "backup001", + "object_count": 22, + "size": 1, + "status": "available", + "volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6", + "is_incremental": true, + "has_dependent_backups": false + } +} diff --git a/api-ref/source/v3/samples/backups-list-detailed-response.json b/api-ref/source/v3/samples/backups-list-detailed-response.json new file mode 100644 index 00000000000..d729ada6848 --- /dev/null +++ b/api-ref/source/v3/samples/backups-list-detailed-response.json @@ -0,0 +1,54 @@ +{ + "backups": [ + { + "availability_zone": "az1", + "container": "volumebackups", + "created_at": "2013-04-02T10:35:27.000000", + "description": null, + "fail_reason": null, + "id": "2ef47aee-8844-490c-804d-2a8efe561c65", + "links": [ + { + "href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65", + "rel": "self" + }, + { + "href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65", + "rel": "bookmark" + } + ], + "name": "backup001", + "object_count": 22, + "size": 1, + "status": "available", + "volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6", + "is_incremental": true, + "has_dependent_backups": false + }, + { + "availability_zone": "az1", + "container": "volumebackups", + "created_at": "2013-04-02T10:21:48.000000", + "description": null, + "fail_reason": null, + "id": "4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8", + "links": [ + { + "href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8", + "rel": "self" + }, + { + "href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8", + "rel": "bookmark" + } + ], + "name": "backup002", + "object_count": 22, + "size": 1, + "status": "available", + "volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6", + "is_incremental": true, + "has_dependent_backups": false + } + ] +} diff --git a/api-ref/source/v3/samples/backups-list-response.json b/api-ref/source/v3/samples/backups-list-response.json new file mode 100644 index 00000000000..8dd7d785abd --- /dev/null +++ b/api-ref/source/v3/samples/backups-list-response.json @@ -0,0 +1,32 @@ +{ + "backups": [ + { + "id": "2ef47aee-8844-490c-804d-2a8efe561c65", + "links": [ + { + "href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65", + "rel": "self" + }, + { + "href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65", + "rel": "bookmark" + } + ], + "name": "backup001" + }, + { + "id": "4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8", + "links": [ + { + "href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8", + "rel": "self" + }, + { + "href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8", + "rel": "bookmark" + } + ], + "name": "backup002" + } + ] +} diff --git a/api-ref/source/v3/samples/cgsnapshots-create-request.json b/api-ref/source/v3/samples/cgsnapshots-create-request.json new file mode 100644 index 00000000000..36d6f45374e --- /dev/null +++ b/api-ref/source/v3/samples/cgsnapshots-create-request.json @@ -0,0 +1,10 @@ +{ + "cgsnapshot": { + "consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814546", + "name": "firstcg", + "description": "first consistency group", + "user_id": "6f519a48-3183-46cf-a32f-41815f814444", + "project_id": "6f519a48-3183-46cf-a32f-41815f815555", + "status": "creating" + } +} diff --git a/api-ref/source/v3/samples/cgsnapshots-create-response.json b/api-ref/source/v3/samples/cgsnapshots-create-response.json new file mode 100644 index 00000000000..6d24a97f134 --- /dev/null +++ b/api-ref/source/v3/samples/cgsnapshots-create-response.json @@ -0,0 +1,6 @@ +{ + "cgsnapshot": { + "id": "6f519a48-3183-46cf-a32f-41815f816666", + "name": "firstcg" + } +} diff --git a/api-ref/source/v3/samples/cgsnapshots-list-detailed-response.json b/api-ref/source/v3/samples/cgsnapshots-list-detailed-response.json new file mode 100644 index 00000000000..93ad12870a9 --- /dev/null +++ b/api-ref/source/v3/samples/cgsnapshots-list-detailed-response.json @@ -0,0 +1,20 @@ +{ + "cgsnapshots": [ + { + "id": "6f519a48-3183-46cf-a32f-41815f813986", + "consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814444", + "status": "available", + "created_at": "2015-09-16T09:28:52.000000", + "name": "my-cg1", + "description": "my first consistency group" + }, + { + "id": "aed36625-a6d7-4681-ba59-c7ba3d18c148", + "consistencygroup_id": "aed36625-a6d7-4681-ba59-c7ba3d18dddd", + "status": "error", + "created_at": "2015-09-16T09:31:15.000000", + "name": "my-cg2", + "description": "Edited description" + } + ] +} diff --git a/api-ref/source/v3/samples/cgsnapshots-list-response.json b/api-ref/source/v3/samples/cgsnapshots-list-response.json new file mode 100644 index 00000000000..726aa803abb --- /dev/null +++ b/api-ref/source/v3/samples/cgsnapshots-list-response.json @@ -0,0 +1,12 @@ +{ + "cgsnapshots": [ + { + "id": "6f519a48-3183-46cf-a32f-41815f813986", + "name": "my-cg1" + }, + { + "id": "aed36625-a6d7-4681-ba59-c7ba3d18c148", + "name": "my-cg2" + } + ] +} diff --git a/api-ref/source/v3/samples/cgsnapshots-show-response.json b/api-ref/source/v3/samples/cgsnapshots-show-response.json new file mode 100644 index 00000000000..632a5afbad5 --- /dev/null +++ b/api-ref/source/v3/samples/cgsnapshots-show-response.json @@ -0,0 +1,10 @@ +{ + "cgsnapshot": { + "id": "6f519a48-3183-46cf-a32f-41815f813986", + "consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814444", + "status": "available", + "created_at": "2015-09-16T09:28:52.000000", + "name": "my-cg1", + "description": "my first consistency group" + } +} diff --git a/api-ref/source/v3/samples/consistency-group-create-from-src-request.json b/api-ref/source/v3/samples/consistency-group-create-from-src-request.json new file mode 100644 index 00000000000..ad25c5d0221 --- /dev/null +++ b/api-ref/source/v3/samples/consistency-group-create-from-src-request.json @@ -0,0 +1,11 @@ +{ + "consistencygroup-from-src": { + "name": "firstcg", + "description": "first consistency group", + "cgsnapshot_id": "6f519a48-3183-46cf-a32f-41815f813986", + "source_cgid": "6f519a48-3183-46cf-a32f-41815f814546", + "user_id": "6f519a48-3183-46cf-a32f-41815f815555", + "project_id": "6f519a48-3183-46cf-a32f-41815f814444", + "status": "creating" + } +} diff --git a/api-ref/source/v3/samples/consistency-group-create-request.json b/api-ref/source/v3/samples/consistency-group-create-request.json new file mode 100644 index 00000000000..8c9fbc2b050 --- /dev/null +++ b/api-ref/source/v3/samples/consistency-group-create-request.json @@ -0,0 +1,8 @@ +{ + "consistencygroup": { + "name": "firstcg", + "description": "first consistency group", + "volume_types": "type1,type2", + "availability_zone": "az0" + } +} diff --git a/api-ref/source/v3/samples/consistency-group-create-response.json b/api-ref/source/v3/samples/consistency-group-create-response.json new file mode 100644 index 00000000000..15a5ec02a60 --- /dev/null +++ b/api-ref/source/v3/samples/consistency-group-create-response.json @@ -0,0 +1,11 @@ +{ + "consistencygroup": { + "status": "error", + "description": "first consistency group", + "availability_zone": "az0", + "created_at": "2016-08-19T19:32:19.000000", + "volume_types": ["type1", "type2"], + "id": "63d1a274-de38-4384-a97e-475306777027", + "name": "firstcg" + } +} diff --git a/api-ref/source/v3/samples/consistency-group-delete-request.json b/api-ref/source/v3/samples/consistency-group-delete-request.json new file mode 100644 index 00000000000..8ad8745e7bc --- /dev/null +++ b/api-ref/source/v3/samples/consistency-group-delete-request.json @@ -0,0 +1,5 @@ +{ + "consistencygroup": { + "force": false + } +} diff --git a/api-ref/source/v3/samples/consistency-group-show-response.json b/api-ref/source/v3/samples/consistency-group-show-response.json new file mode 100644 index 00000000000..3cbb87d741b --- /dev/null +++ b/api-ref/source/v3/samples/consistency-group-show-response.json @@ -0,0 +1,13 @@ +{ + "consistencygroup": { + "id": "6f519a48-3183-46cf-a32f-41815f813986", + "status": "available", + "availability_zone": "az1", + "created_at": "2015-09-16T09:28:52.000000", + "name": "my-cg1", + "description": "my first consistency group", + "volume_types": [ + "123456" + ] + } +} diff --git a/api-ref/source/v3/samples/consistency-group-show-response.xml b/api-ref/source/v3/samples/consistency-group-show-response.xml new file mode 100644 index 00000000000..a9d2b4dd9ea --- /dev/null +++ b/api-ref/source/v3/samples/consistency-group-show-response.xml @@ -0,0 +1,14 @@ + + + + + "123456" + + + diff --git a/api-ref/source/v3/samples/consistency-group-update-request.json b/api-ref/source/v3/samples/consistency-group-update-request.json new file mode 100644 index 00000000000..94546551611 --- /dev/null +++ b/api-ref/source/v3/samples/consistency-group-update-request.json @@ -0,0 +1,8 @@ +{ + "consistencygroup": { + "name": "my_cg", + "description": "My consistency group", + "add_volumes": "volume-uuid-1,volume-uuid-2", + "remove_volumes": "volume-uuid-8,volume-uuid-9" + } +} diff --git a/api-ref/source/v3/samples/consistency-groups-list-detailed-response.json b/api-ref/source/v3/samples/consistency-groups-list-detailed-response.json new file mode 100644 index 00000000000..618c65882bc --- /dev/null +++ b/api-ref/source/v3/samples/consistency-groups-list-detailed-response.json @@ -0,0 +1,26 @@ +{ + "consistencygroups": [ + { + "id": "6f519a48-3183-46cf-a32f-41815f813986", + "status": "available", + "availability_zone": "az1", + "created_at": "2015-09-16T09:28:52.000000", + "name": "my-cg1", + "description": "my first consistency group", + "volume_types": [ + "123456" + ] + }, + { + "id": "aed36625-a6d7-4681-ba59-c7ba3d18c148", + "status": "error", + "availability_zone": "az2", + "created_at": "2015-09-16T09:31:15.000000", + "name": "my-cg2", + "description": "Edited description", + "volume_types": [ + "234567" + ] + } + ] +} diff --git a/api-ref/source/v3/samples/consistency-groups-list-detailed-response.xml b/api-ref/source/v3/samples/consistency-groups-list-detailed-response.xml new file mode 100644 index 00000000000..bed4f625663 --- /dev/null +++ b/api-ref/source/v3/samples/consistency-groups-list-detailed-response.xml @@ -0,0 +1,25 @@ + + + + + "123456" + + + + + "234567" + + + diff --git a/api-ref/source/v3/samples/consistency-groups-list-response.json b/api-ref/source/v3/samples/consistency-groups-list-response.json new file mode 100644 index 00000000000..a53863f4372 --- /dev/null +++ b/api-ref/source/v3/samples/consistency-groups-list-response.json @@ -0,0 +1,12 @@ +{ + "consistencygroups": [ + { + "id": "6f519a48-3183-46cf-a32f-41815f813986", + "name": "my-cg1" + }, + { + "id": "aed36625-a6d7-4681-ba59-c7ba3d18c148", + "name": "my-cg2" + } + ] +} diff --git a/api-ref/source/v3/samples/extensions-list-response.json b/api-ref/source/v3/samples/extensions-list-response.json new file mode 100644 index 00000000000..9ae83518c36 --- /dev/null +++ b/api-ref/source/v3/samples/extensions-list-response.json @@ -0,0 +1,212 @@ +{ + "extensions": [ + { + "updated": "2013-04-18T00:00:00+00:00", + "name": "SchedulerHints", + "links": [], + "namespace": "http://docs.openstack.org/block-service/ext/scheduler-hints/api/v3", + "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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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 v1 API." + }, + { + "updated": "2014-01-10T00:00:00-00:00", + "name": "ExtendedServices", + "links": [], + "namespace": "http://docs.openstack.org/volume/ext/extended_services/api/v3", + "alias": "os-extended-services", + "description": "Extended services support." + }, + { + "updated": "2012-06-19T00:00:00+00:00", + "name": "ExtendedSnapshotAttributes", + "links": [], + "namespace": "http://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": "http://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": "http://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": "http://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": "http://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": "http://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": "http://docs.openstack.org/volume/ext/services/api/v3", + "alias": "os-services", + "description": "Services support." + } + ] +} diff --git a/api-ref/source/v3/samples/extensions-list-response.xml b/api-ref/source/v3/samples/extensions-list-response.xml new file mode 100644 index 00000000000..969efec6b5c --- /dev/null +++ b/api-ref/source/v3/samples/extensions-list-response.xml @@ -0,0 +1,165 @@ + + + + Pass arbitrary key/value pairs to the + scheduler. + + + Admin-only host administration. + + + Expose the internal project_id as an attribute of + a volume. + + + Quota management support. + + + Types manage support. + + + Volume encryption metadata retrieval + support. + + + Backups support. + + + Enable snapshot manager actions. + + + Enable volume actions + + + Provide data on limited resources that are being + used. + + + Enable volume unmanage operation. + + + Expose host as an attribute of a + volume. + + + Encryption support for volume + types. + + + Describe Availability Zones. + + + QoS specs support. + + + Type extra specs support. + + + Expose migration_status as an attribute of a + volume. + + + Allow creating a volume from an image in the + Create Volume v1 API. + + + Extended services support. + + + Extended SnapshotAttributes + support. + + + Show image metadata associated with the + volume. + + + Quota classes management support. + + + Volume transfer management support. + + + Allows existing back end storage to be 'managed' + by cinder. + + + Enable admin actions. + + + Services support. + + diff --git a/api-ref/source/v3/samples/host-attach-request.json b/api-ref/source/v3/samples/host-attach-request.json new file mode 100644 index 00000000000..01d0644513c --- /dev/null +++ b/api-ref/source/v3/samples/host-attach-request.json @@ -0,0 +1,5 @@ +{ + "os-attach": { + "host_name": "my_host" + } +} diff --git a/api-ref/source/v3/samples/image-metadata-show-request.json b/api-ref/source/v3/samples/image-metadata-show-request.json new file mode 100644 index 00000000000..f84e8261dd9 --- /dev/null +++ b/api-ref/source/v3/samples/image-metadata-show-request.json @@ -0,0 +1,18 @@ +{ + "volume": { + "host": "geraint-VirtualBox", + "ref": { + "source-volume-name": "existingLV", + "source-volume-id": "1234" + }, + "name": "New Volume", + "availability_zone": "az2", + "description": "Volume imported from existingLV", + "volume_type": null, + "bootable": true, + "metadata": { + "key1": "value1", + "key2": "value2" + } + } +} diff --git a/api-ref/source/v3/samples/image-metadata-show-response.json b/api-ref/source/v3/samples/image-metadata-show-response.json new file mode 100644 index 00000000000..a53976b9cba --- /dev/null +++ b/api-ref/source/v3/samples/image-metadata-show-response.json @@ -0,0 +1,33 @@ +{ + "volume": { + "status": "creating", + "user_id": "eae1472b5fc5496998a3d06550929e7e", + "attachments": [], + "links": [ + { + "href": "http://10.0.2.15:8776/v3/87c8522052ca4eed98bc672b4c1a3ddb/volumes/23cf872b-c781-4cd4-847d-5f2ec8cbd91c", + "rel": "self" + }, + { + "href": "http://10.0.2.15:8776/87c8522052ca4eed98bc672b4c1a3ddb/volumes/23cf872b-c781-4cd4-847d-5f2ec8cbd91c", + "rel": "bookmark" + } + ], + "availability_zone": "az2", + "bootable": "false", + "encrypted": "false", + "created_at": "2014-07-18T00:12:54.000000", + "description": "Volume imported from existingLV", + "os-vol-tenant-attr:tenant_id": "87c8522052ca4eed98bc672b4c1a3ddb", + "volume_type": null, + "name": "New Volume", + "source_volid": null, + "snapshot_id": null, + "metadata": { + "key2": "value2", + "key1": "value1" + }, + "id": "23cf872b-c781-4cd4-847d-5f2ec8cbd91c", + "size": 0 + } +} diff --git a/api-ref/source/v3/samples/limits-show-response.json b/api-ref/source/v3/samples/limits-show-response.json new file mode 100644 index 00000000000..38d0ccd3c1b --- /dev/null +++ b/api-ref/source/v3/samples/limits-show-response.json @@ -0,0 +1,17 @@ +{ + "limits": { + "rate": [], + "absolute": { + "totalSnapshotsUsed": 0, + "maxTotalBackups": 10, + "maxTotalVolumeGigabytes": 1000, + "maxTotalSnapshots": 10, + "maxTotalBackupGigabytes": 1000, + "totalBackupGigabytesUsed": 0, + "maxTotalVolumes": 10, + "totalVolumesUsed": 0, + "totalBackupsUsed": 0, + "totalGigabytesUsed": 0 + } + } +} diff --git a/api-ref/source/v3/samples/limits-show-response.xml b/api-ref/source/v3/samples/limits-show-response.xml new file mode 100644 index 00000000000..0f932b074d7 --- /dev/null +++ b/api-ref/source/v3/samples/limits-show-response.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + diff --git a/api-ref/source/v3/samples/pools-list-detailed-response.json b/api-ref/source/v3/samples/pools-list-detailed-response.json new file mode 100644 index 00000000000..3fc28a2992f --- /dev/null +++ b/api-ref/source/v3/samples/pools-list-detailed-response.json @@ -0,0 +1,30 @@ +{ + "pools": [ + { + "name": "pool1", + "capabilities": { + "updated": "2014-10-28T00:00:00-00:00", + "total_capacity": 1024, + "free_capacity": 100, + "volume_backend_name": "pool1", + "reserved_percentage": 0, + "driver_version": "1.0.0", + "storage_protocol": "iSCSI", + "QoS_support": false + } + }, + { + "name": "pool2", + "capabilities": { + "updated": "2014-10-28T00:00:00-00:00", + "total_capacity": 512, + "free_capacity": 200, + "volume_backend_name": "pool2", + "reserved_percentage": 0, + "driver_version": "1.0.1", + "storage_protocol": "iSER", + "QoS_support": true + } + } + ] +} diff --git a/api-ref/source/v3/samples/qos-create-request.json b/api-ref/source/v3/samples/qos-create-request.json new file mode 100644 index 00000000000..c0db909bd69 --- /dev/null +++ b/api-ref/source/v3/samples/qos-create-request.json @@ -0,0 +1,7 @@ +{ + "qos_specs": { + "availability": "100", + "name": "reliability-spec", + "numberOfFailures": "0" + } +} diff --git a/api-ref/source/v3/samples/qos-create-request.xml b/api-ref/source/v3/samples/qos-create-request.xml new file mode 100644 index 00000000000..ac772236cac --- /dev/null +++ b/api-ref/source/v3/samples/qos-create-request.xml @@ -0,0 +1,2 @@ + + diff --git a/api-ref/source/v3/samples/qos-create-response.json b/api-ref/source/v3/samples/qos-create-response.json new file mode 100644 index 00000000000..d743bb5453b --- /dev/null +++ b/api-ref/source/v3/samples/qos-create-response.json @@ -0,0 +1,21 @@ +{ + "qos_specs": { + "specs": { + "numberOfFailures": "0", + "availability": "100" + }, + "consumer": "back-end", + "name": "reliability-spec", + "id": "599ef437-1c99-42ec-9fc6-239d0519fef1" + }, + "links": [ + { + "href": "http://23.253.248.171:8776/v3/bab7d5c60cd041a0a36f7c4b6e1dd978/qos_specs/599ef437-1c99-42ec-9fc6-239d0519fef1", + "rel": "self" + }, + { + "href": "http://23.253.248.171:8776/bab7d5c60cd041a0a36f7c4b6e1dd978/qos_specs/599ef437-1c99-42ec-9fc6-239d0519fef1", + "rel": "bookmark" + } + ] +} diff --git a/api-ref/source/v3/samples/qos-create-response.xml b/api-ref/source/v3/samples/qos-create-response.xml new file mode 100644 index 00000000000..b2393248699 --- /dev/null +++ b/api-ref/source/v3/samples/qos-create-response.xml @@ -0,0 +1,9 @@ + + + + + 0 + 100 + + + diff --git a/api-ref/source/v3/samples/qos-list-response.json b/api-ref/source/v3/samples/qos-list-response.json new file mode 100644 index 00000000000..92f2a6216ed --- /dev/null +++ b/api-ref/source/v3/samples/qos-list-response.json @@ -0,0 +1,22 @@ +{ + "qos_specs": [ + { + "specs": { + "availability": "100", + "numberOfFailures": "0" + }, + "consumer": "back-end", + "name": "reliability-spec", + "id": "0388d6c6-d5d4-42a3-b289-95205c50dd15" + }, + { + "specs": { + "delay": "0", + "throughput": "100" + }, + "consumer": "back-end", + "name": "performance-spec", + "id": "ecfc6e2e-7117-44a4-8eec-f84d04f531a8" + } + ] +} diff --git a/api-ref/source/v3/samples/qos-list-response.xml b/api-ref/source/v3/samples/qos-list-response.xml new file mode 100644 index 00000000000..c77e7847ff3 --- /dev/null +++ b/api-ref/source/v3/samples/qos-list-response.xml @@ -0,0 +1,19 @@ + + + + + 100 + 0 + + + + + 0 + 100 + + + diff --git a/api-ref/source/v3/samples/qos-show-response.json b/api-ref/source/v3/samples/qos-show-response.json new file mode 100644 index 00000000000..6cf22c817d6 --- /dev/null +++ b/api-ref/source/v3/samples/qos-show-response.json @@ -0,0 +1,21 @@ +{ + "qos_specs": { + "specs": { + "availability": "100", + "numberOfFailures": "0" + }, + "consumer": "back-end", + "name": "reliability-spec", + "id": "0388d6c6-d5d4-42a3-b289-95205c50dd15" + }, + "links": [ + { + "href": "http://23.253.228.211:8776/v3/e1cf63117ae74309a5bcc2002a23be8b/qos_specs/0388d6c6-d5d4-42a3-b289-95205c50dd15", + "rel": "self" + }, + { + "href": "http://23.253.228.211:8776/e1cf63117ae74309a5bcc2002a23be8b/qos_specs/0388d6c6-d5d4-42a3-b289-95205c50dd15", + "rel": "bookmark" + } + ] +} diff --git a/api-ref/source/v3/samples/qos-show-response.xml b/api-ref/source/v3/samples/qos-show-response.xml new file mode 100644 index 00000000000..7aee8126ce8 --- /dev/null +++ b/api-ref/source/v3/samples/qos-show-response.xml @@ -0,0 +1,11 @@ + + + + + 100 + 0 + + + diff --git a/api-ref/source/v3/samples/qos-unset-request.json b/api-ref/source/v3/samples/qos-unset-request.json new file mode 100644 index 00000000000..4193b73921a --- /dev/null +++ b/api-ref/source/v3/samples/qos-unset-request.json @@ -0,0 +1,5 @@ +{ + "keys": [ + "key1" + ] +} diff --git a/api-ref/source/v3/samples/qos-unset-request.xml b/api-ref/source/v3/samples/qos-unset-request.xml new file mode 100644 index 00000000000..c6f10f9f37b --- /dev/null +++ b/api-ref/source/v3/samples/qos-unset-request.xml @@ -0,0 +1,4 @@ + + + + diff --git a/api-ref/source/v3/samples/qos-unset-response.json b/api-ref/source/v3/samples/qos-unset-response.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/api-ref/source/v3/samples/qos-update-request.json b/api-ref/source/v3/samples/qos-update-request.json new file mode 100644 index 00000000000..1d398770584 --- /dev/null +++ b/api-ref/source/v3/samples/qos-update-request.json @@ -0,0 +1,5 @@ +{ + "qos_specs": { + "delay": "1" + } +} diff --git a/api-ref/source/v3/samples/qos-update-request.xml b/api-ref/source/v3/samples/qos-update-request.xml new file mode 100644 index 00000000000..78524c7cadb --- /dev/null +++ b/api-ref/source/v3/samples/qos-update-request.xml @@ -0,0 +1,2 @@ + + diff --git a/api-ref/source/v3/samples/qos-update-response.json b/api-ref/source/v3/samples/qos-update-response.json new file mode 100644 index 00000000000..1d398770584 --- /dev/null +++ b/api-ref/source/v3/samples/qos-update-response.json @@ -0,0 +1,5 @@ +{ + "qos_specs": { + "delay": "1" + } +} diff --git a/api-ref/source/v3/samples/qos-update-response.xml b/api-ref/source/v3/samples/qos-update-response.xml new file mode 100644 index 00000000000..ed8dd0578d9 --- /dev/null +++ b/api-ref/source/v3/samples/qos-update-response.xml @@ -0,0 +1,4 @@ + + + + diff --git a/api-ref/source/v3/samples/qos_show_response.json b/api-ref/source/v3/samples/qos_show_response.json new file mode 100644 index 00000000000..4a5d9db6aae --- /dev/null +++ b/api-ref/source/v3/samples/qos_show_response.json @@ -0,0 +1,9 @@ +{ + "qos_associations": [ + { + "association_type": "volume_type", + "name": "reliability-type", + "id": "a12983c2-83bd-4afa-be9f-ad796573ead6" + } + ] +} diff --git a/api-ref/source/v3/samples/qos_show_response.xml b/api-ref/source/v3/samples/qos_show_response.xml new file mode 100644 index 00000000000..e208b8a2085 --- /dev/null +++ b/api-ref/source/v3/samples/qos_show_response.xml @@ -0,0 +1,6 @@ + + + + diff --git a/api-ref/source/v3/samples/quotas-defaults-show-response.xml b/api-ref/source/v3/samples/quotas-defaults-show-response.xml new file mode 100644 index 00000000000..76a9292c137 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-defaults-show-response.xml @@ -0,0 +1,15 @@ + + + 20 + -1 + 10 + 10240 + 255 + 5 + 10 + 100 + 128 + 51200 + 20 + 10 + diff --git a/api-ref/source/v3/samples/quotas-delete-response.json b/api-ref/source/v3/samples/quotas-delete-response.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/api-ref/source/v3/samples/quotas-show-defaults-response.json b/api-ref/source/v3/samples/quotas-show-defaults-response.json new file mode 100644 index 00000000000..6c267112cea --- /dev/null +++ b/api-ref/source/v3/samples/quotas-show-defaults-response.json @@ -0,0 +1,7 @@ +{ + "quota_set": { + "gigabytes": 5, + "snapshots": 10, + "volumes": 20 + } +} diff --git a/api-ref/source/v3/samples/quotas-show-defaults-response.xml b/api-ref/source/v3/samples/quotas-show-defaults-response.xml new file mode 100644 index 00000000000..b63b30b08f7 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-show-defaults-response.xml @@ -0,0 +1,6 @@ + + + 5 + 10 + 20 + diff --git a/api-ref/source/v3/samples/quotas-show-response.json b/api-ref/source/v3/samples/quotas-show-response.json new file mode 100644 index 00000000000..6c267112cea --- /dev/null +++ b/api-ref/source/v3/samples/quotas-show-response.json @@ -0,0 +1,7 @@ +{ + "quota_set": { + "gigabytes": 5, + "snapshots": 10, + "volumes": 20 + } +} diff --git a/api-ref/source/v3/samples/quotas-show-response.xml b/api-ref/source/v3/samples/quotas-show-response.xml new file mode 100644 index 00000000000..b63b30b08f7 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-show-response.xml @@ -0,0 +1,6 @@ + + + 5 + 10 + 20 + diff --git a/api-ref/source/v3/samples/quotas-update-request.json b/api-ref/source/v3/samples/quotas-update-request.json new file mode 100644 index 00000000000..9ab32c11ca5 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-update-request.json @@ -0,0 +1,5 @@ +{ + "quota_set": { + "snapshots": 45 + } +} diff --git a/api-ref/source/v3/samples/quotas-update-request.xml b/api-ref/source/v3/samples/quotas-update-request.xml new file mode 100644 index 00000000000..ccf34efa0ab --- /dev/null +++ b/api-ref/source/v3/samples/quotas-update-request.xml @@ -0,0 +1,4 @@ + + + 45 + diff --git a/api-ref/source/v3/samples/quotas-update-response.json b/api-ref/source/v3/samples/quotas-update-response.json new file mode 100644 index 00000000000..9ab32c11ca5 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-update-response.json @@ -0,0 +1,5 @@ +{ + "quota_set": { + "snapshots": 45 + } +} diff --git a/api-ref/source/v3/samples/quotas-update-response.xml b/api-ref/source/v3/samples/quotas-update-response.xml new file mode 100644 index 00000000000..b63b30b08f7 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-update-response.xml @@ -0,0 +1,6 @@ + + + 5 + 10 + 20 + diff --git a/api-ref/source/v3/samples/quotas-user-show-detailed-response.json b/api-ref/source/v3/samples/quotas-user-show-detailed-response.json new file mode 100644 index 00000000000..79609eb84a3 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-user-show-detailed-response.json @@ -0,0 +1,19 @@ +{ + "quota_set": { + "gigabytes": { + "in_use": 100, + "limit": -1, + "reserved": 0 + }, + "snapshots": { + "in_use": 12, + "limit": -1, + "reserved": 0 + }, + "volumes": { + "in_use": 1, + "limit": -1, + "reserved": 0 + } + } +} diff --git a/api-ref/source/v3/samples/quotas-user-show-response.json b/api-ref/source/v3/samples/quotas-user-show-response.json new file mode 100644 index 00000000000..6c267112cea --- /dev/null +++ b/api-ref/source/v3/samples/quotas-user-show-response.json @@ -0,0 +1,7 @@ +{ + "quota_set": { + "gigabytes": 5, + "snapshots": 10, + "volumes": 20 + } +} diff --git a/api-ref/source/v3/samples/quotas-user-show-response.xml b/api-ref/source/v3/samples/quotas-user-show-response.xml new file mode 100644 index 00000000000..b63b30b08f7 --- /dev/null +++ b/api-ref/source/v3/samples/quotas-user-show-response.xml @@ -0,0 +1,6 @@ + + + 5 + 10 + 20 + diff --git a/api-ref/source/v3/samples/snapshot-create-request.json b/api-ref/source/v3/samples/snapshot-create-request.json new file mode 100644 index 00000000000..3c0fe5d888f --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-create-request.json @@ -0,0 +1,8 @@ +{ + "snapshot": { + "name": "snap-001", + "description": "Daily backup", + "volume_id": "5aa119a8-d25b-45a7-8d1b-88e127885635", + "force": true + } +} diff --git a/api-ref/source/v3/samples/snapshot-create-request.xml b/api-ref/source/v3/samples/snapshot-create-request.xml new file mode 100644 index 00000000000..2b56fde55da --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-create-request.xml @@ -0,0 +1,5 @@ + + diff --git a/api-ref/source/v3/samples/snapshot-create-response.json b/api-ref/source/v3/samples/snapshot-create-response.json new file mode 100644 index 00000000000..d8901e88dec --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-create-response.json @@ -0,0 +1,12 @@ +{ + "snapshot": { + "status": "creating", + "description": "Daily backup", + "created_at": "2013-02-25T03:56:53.081642", + "metadata": {}, + "volume_id": "5aa119a8-d25b-45a7-8d1b-88e127885635", + "size": 1, + "id": "ffa9bc5e-1172-4021-acaf-cdcd78a9584d", + "name": "snap-001" + } +} diff --git a/api-ref/source/v3/samples/snapshot-create-response.xml b/api-ref/source/v3/samples/snapshot-create-response.xml new file mode 100644 index 00000000000..1f72e69934c --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-create-response.xml @@ -0,0 +1,7 @@ + + + + diff --git a/api-ref/source/v3/samples/snapshot-metadata-show-response.json b/api-ref/source/v3/samples/snapshot-metadata-show-response.json new file mode 100644 index 00000000000..cbfe4ef7a8e --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-metadata-show-response.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "name": "test" + } +} diff --git a/api-ref/source/v3/samples/snapshot-metadata-show-response.xml b/api-ref/source/v3/samples/snapshot-metadata-show-response.xml new file mode 100644 index 00000000000..f62f5b6b9c3 --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-metadata-show-response.xml @@ -0,0 +1,4 @@ + + + test + diff --git a/api-ref/source/v3/samples/snapshot-metadata-update-request.json b/api-ref/source/v3/samples/snapshot-metadata-update-request.json new file mode 100644 index 00000000000..4373b0018da --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-metadata-update-request.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "key": "v2" + } +} diff --git a/api-ref/source/v3/samples/snapshot-metadata-update-request.xml b/api-ref/source/v3/samples/snapshot-metadata-update-request.xml new file mode 100644 index 00000000000..ceeb8f0314b --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-metadata-update-request.xml @@ -0,0 +1,4 @@ + + + v2 + diff --git a/api-ref/source/v3/samples/snapshot-metadata-update-response.json b/api-ref/source/v3/samples/snapshot-metadata-update-response.json new file mode 100644 index 00000000000..4373b0018da --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-metadata-update-response.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "key": "v2" + } +} diff --git a/api-ref/source/v3/samples/snapshot-metadata-update-response.xml b/api-ref/source/v3/samples/snapshot-metadata-update-response.xml new file mode 100644 index 00000000000..6d00cdef115 --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-metadata-update-response.xml @@ -0,0 +1,4 @@ + + + v2 + diff --git a/api-ref/source/v3/samples/snapshot-show-response.json b/api-ref/source/v3/samples/snapshot-show-response.json new file mode 100644 index 00000000000..25a8c6c9def --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-show-response.json @@ -0,0 +1,14 @@ +{ + "snapshot": { + "status": "available", + "os-extended-snapshot-attributes:progress": "100%", + "description": "Daily backup", + "created_at": "2013-02-25T04:13:17.000000", + "metadata": {}, + "volume_id": "5aa119a8-d25b-45a7-8d1b-88e127885635", + "os-extended-snapshot-attributes:project_id": "0c2eba2c5af04d3f9e9d0d410b371fde", + "size": 1, + "id": "2bb856e1-b3d8-4432-a858-09e4ce939389", + "name": "snap-001" + } +} diff --git a/api-ref/source/v3/samples/snapshot-show-response.xml b/api-ref/source/v3/samples/snapshot-show-response.xml new file mode 100644 index 00000000000..5863aa554f4 --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-show-response.xml @@ -0,0 +1,11 @@ + + + + diff --git a/api-ref/source/v3/samples/snapshot-update-request.json b/api-ref/source/v3/samples/snapshot-update-request.json new file mode 100644 index 00000000000..0e08957178e --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-update-request.json @@ -0,0 +1,6 @@ +{ + "snapshot": { + "name": "snap-002", + "description": "This is yet, another snapshot." + } +} diff --git a/api-ref/source/v3/samples/snapshot-update-request.xml b/api-ref/source/v3/samples/snapshot-update-request.xml new file mode 100644 index 00000000000..670f6e68231 --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-update-request.xml @@ -0,0 +1,4 @@ + + diff --git a/api-ref/source/v3/samples/snapshot-update-response.json b/api-ref/source/v3/samples/snapshot-update-response.json new file mode 100644 index 00000000000..a2fa2779393 --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-update-response.json @@ -0,0 +1,11 @@ +{ + "snapshot": { + "created_at": "2013-02-20T08:11:34.000000", + "description": "This is yet, another snapshot", + "name": "snap-002", + "id": "4b502fcb-1f26-45f8-9fe5-3b9a0a52eaf2", + "size": 1, + "status": "available", + "volume_id": "2402b902-0b7a-458c-9c07-7435a826f794" + } +} diff --git a/api-ref/source/v3/samples/snapshot-update-response.xml b/api-ref/source/v3/samples/snapshot-update-response.xml new file mode 100644 index 00000000000..1d09541c78c --- /dev/null +++ b/api-ref/source/v3/samples/snapshot-update-response.xml @@ -0,0 +1,14 @@ + + + + diff --git a/api-ref/source/v3/samples/snapshots-list-detailed-response.json b/api-ref/source/v3/samples/snapshots-list-detailed-response.json new file mode 100644 index 00000000000..463b98ec12d --- /dev/null +++ b/api-ref/source/v3/samples/snapshots-list-detailed-response.json @@ -0,0 +1,18 @@ +{ + "snapshots": [ + { + "status": "available", + "metadata": { + "name": "test" + }, + "os-extended-snapshot-attributes:progress": "100%", + "name": "test-volume-snapshot", + "volume_id": "173f7b48-c4c1-4e70-9acc-086b39073506", + "os-extended-snapshot-attributes:project_id": "bab7d5c60cd041a0a36f7c4b6e1dd978", + "created_at": "2015-11-29T02:25:51.000000", + "size": 1, + "id": "b1323cda-8e4b-41c1-afc5-2fc791809c8c", + "description": "volume snapshot" + } + ] +} diff --git a/api-ref/source/v3/samples/snapshots-list-detailed-response.xml b/api-ref/source/v3/samples/snapshots-list-detailed-response.xml new file mode 100644 index 00000000000..2114e0069ca --- /dev/null +++ b/api-ref/source/v3/samples/snapshots-list-detailed-response.xml @@ -0,0 +1,16 @@ + + + + + test + + + diff --git a/api-ref/source/v3/samples/snapshots-list-response.json b/api-ref/source/v3/samples/snapshots-list-response.json new file mode 100644 index 00000000000..8d7e4973acb --- /dev/null +++ b/api-ref/source/v3/samples/snapshots-list-response.json @@ -0,0 +1,16 @@ +{ + "snapshots": [ + { + "status": "available", + "metadata": { + "name": "test" + }, + "name": "test-volume-snapshot", + "volume_id": "173f7b48-c4c1-4e70-9acc-086b39073506", + "created_at": "2015-11-29T02:25:51.000000", + "size": 1, + "id": "b1323cda-8e4b-41c1-afc5-2fc791809c8c", + "description": "volume snapshot" + } + ] +} diff --git a/api-ref/source/v3/samples/snapshots-list-response.xml b/api-ref/source/v3/samples/snapshots-list-response.xml new file mode 100644 index 00000000000..654189455fb --- /dev/null +++ b/api-ref/source/v3/samples/snapshots-list-response.xml @@ -0,0 +1,13 @@ + + + + + test + + + diff --git a/api-ref/source/v3/samples/user-quotas-show-response.json b/api-ref/source/v3/samples/user-quotas-show-response.json new file mode 100644 index 00000000000..239c64d23d4 --- /dev/null +++ b/api-ref/source/v3/samples/user-quotas-show-response.json @@ -0,0 +1,17 @@ +{ + "quota_set": { + "cores": 20, + "fixed_ips": -1, + "floating_ips": 10, + "id": "fake_tenant", + "injected_file_content_bytes": 10240, + "injected_file_path_bytes": 255, + "injected_files": 5, + "instances": 10, + "key_pairs": 100, + "metadata_items": 128, + "ram": 51200, + "security_group_rules": 20, + "security_groups": 10 + } +} diff --git a/api-ref/source/v3/samples/user-quotas-show-response.xml b/api-ref/source/v3/samples/user-quotas-show-response.xml new file mode 100644 index 00000000000..76a9292c137 --- /dev/null +++ b/api-ref/source/v3/samples/user-quotas-show-response.xml @@ -0,0 +1,15 @@ + + + 20 + -1 + 10 + 10240 + 255 + 5 + 10 + 100 + 128 + 51200 + 20 + 10 + diff --git a/api-ref/source/v3/samples/user-quotas-update-request.json b/api-ref/source/v3/samples/user-quotas-update-request.json new file mode 100644 index 00000000000..6e5195f9ac8 --- /dev/null +++ b/api-ref/source/v3/samples/user-quotas-update-request.json @@ -0,0 +1,6 @@ +{ + "quota_set": { + "force": true, + "instances": 9 + } +} diff --git a/api-ref/source/v3/samples/user-quotas-update-request.xml b/api-ref/source/v3/samples/user-quotas-update-request.xml new file mode 100644 index 00000000000..dd58ed24d0c --- /dev/null +++ b/api-ref/source/v3/samples/user-quotas-update-request.xml @@ -0,0 +1,5 @@ + + + true + 9 + diff --git a/api-ref/source/v3/samples/user-quotas-update-response.json b/api-ref/source/v3/samples/user-quotas-update-response.json new file mode 100644 index 00000000000..5539332927e --- /dev/null +++ b/api-ref/source/v3/samples/user-quotas-update-response.json @@ -0,0 +1,16 @@ +{ + "quota_set": { + "cores": 20, + "floating_ips": 10, + "fixed_ips": -1, + "injected_file_content_bytes": 10240, + "injected_file_path_bytes": 255, + "injected_files": 5, + "instances": 9, + "key_pairs": 100, + "metadata_items": 128, + "ram": 51200, + "security_group_rules": 20, + "security_groups": 10 + } +} diff --git a/api-ref/source/v3/samples/user-quotas-update-response.xml b/api-ref/source/v3/samples/user-quotas-update-response.xml new file mode 100644 index 00000000000..43c36c7da31 --- /dev/null +++ b/api-ref/source/v3/samples/user-quotas-update-response.xml @@ -0,0 +1,15 @@ + + + 20 + 10 + -1 + 10240 + 255 + 5 + 9 + 100 + 128 + 51200 + 20 + 10 + diff --git a/api-ref/source/v3/samples/version-show-response.json b/api-ref/source/v3/samples/version-show-response.json new file mode 100644 index 00000000000..06ba84d077d --- /dev/null +++ b/api-ref/source/v3/samples/version-show-response.json @@ -0,0 +1,33 @@ +{ + "version": { + "status": "CURRENT", + "updated": "2012-01-04T11:33:21Z", + "media-types": [ + { + "base": "application/xml", + "type": "application/vnd.openstack.volume+xml;version=1" + }, + { + "base": "application/json", + "type": "application/vnd.openstack.volume+json;version=1" + } + ], + "id": "v1.0", + "links": [ + { + "href": "http://23.253.228.211:8776/v1/", + "rel": "self" + }, + { + "href": "http://jorgew.github.com/block-storage-api/content/os-block-storage-1.0.pdf", + "type": "application/pdf", + "rel": "describedby" + }, + { + "href": "http://docs.rackspacecloud.com/servers/api/v1.1/application.wadl", + "type": "application/vnd.sun.wadl+xml", + "rel": "describedby" + } + ] + } +} diff --git a/api-ref/source/v3/samples/version-show-response.xml b/api-ref/source/v3/samples/version-show-response.xml new file mode 100644 index 00000000000..aa42257291a --- /dev/null +++ b/api-ref/source/v3/samples/version-show-response.xml @@ -0,0 +1,87 @@ + + + + v1.0 + + + http://docs.openstack.org/ + describedby + text/html + + + http://23.253.248.171:8776/v1/ + self + + + + + application/json + application/vnd.openstack.volume+json;version=1 + + + application/xml + application/vnd.openstack.volume+xml;version=1 + + + + DEPRECATED + 2014-06-28T12:20:21Z + + + + v2.0 + + + http://docs.openstack.org/ + describedby + text/html + + + http://23.253.248.171:8776/v2/ + self + + + + + application/json + application/vnd.openstack.volume+json;version=1 + + + application/xml + application/vnd.openstack.volume+xml;version=1 + + + + SUPPORTED + 2014-06-28T12:20:21Z + + + + v3.0 + + + http://docs.openstack.org/ + describedby + text/html + + + http://23.253.248.171/v3/ + self + + + + + application/json + application/vnd.openstack.volume+json;version=1 + + + application/xml + application/vnd.openstack.volume+xml;version=1 + + + 3.0 + CURRENT + 2016-02-08T12:20:21Z + 3.0 + + diff --git a/api-ref/source/v3/samples/version-v3-show-response.json b/api-ref/source/v3/samples/version-v3-show-response.json new file mode 100644 index 00000000000..870e484bfd5 --- /dev/null +++ b/api-ref/source/v3/samples/version-v3-show-response.json @@ -0,0 +1,88 @@ +{ + "versions": [ + { + "id": "v1.0", + "links": [ + { + "href": "http://docs.openstack.org/", + "rel": "describedby", + "type": "text/html" + }, + { + "href": "http://23.253.248.171:8776/v1/", + "rel": "self" + } + ], + "media-types": [ + { + "base": "application/json", + "type": "application/vnd.openstack.volume+json;version=1" + }, + { + "base": "application/xml", + "type": "application/vnd.openstack.volume+xml;version=1" + } + ], + "min_version": "", + "status": "DEPRECATED", + "updated": "2014-06-28T12:20:21Z", + "version": "" + }, + { + "id": "v2.0", + "links": [ + { + "href": "http://docs.openstack.org/", + "rel": "describedby", + "type": "text/html" + }, + { + "href": "http://23.253.248.171:8776/v2/", + "rel": "self" + } + ], + "media-types": [ + { + "base": "application/json", + "type": "application/vnd.openstack.volume+json;version=1" + }, + { + "base": "application/xml", + "type": "application/vnd.openstack.volume+xml;version=1" + } + ], + "min_version": "", + "status": "SUPPORTED", + "updated": "2014-06-28T12:20:21Z", + "version": "" + }, + { + "id": "v3.0", + "links": [ + { + "href": "http://docs.openstack.org/", + "rel": "describedby", + "type": "text/html" + }, + { + "href": "http://23.253.248.171:8776/v3/", + "rel": "self" + } + ], + "media-types": [ + { + "base": "application/json", + "type": "application/vnd.openstack.volume+json;version=1" + }, + { + "base": "application/xml", + "type": "application/vnd.openstack.volume+xml;version=1" + } + ], + "min_version": "3.0", + "status": "CURRENT", + "updated": "2016-02-08T12:20:21Z", + "version": "3.0" + } + ] +} diff --git a/api-ref/source/v3/samples/versions-response.json b/api-ref/source/v3/samples/versions-response.json new file mode 100644 index 00000000000..d8a0c6a63c7 --- /dev/null +++ b/api-ref/source/v3/samples/versions-response.json @@ -0,0 +1,76 @@ +{ + "versions": [ + { + "status": "DEPRECATED", + "updated": "2014-06-28T12:20:21Z", + "links": [ + { + "href": "http://docs.openstack.org/", + "type": "text/html", + "rel": "describedby" + }, + { + "href": "http://10.0.2.15:8776/v1/", + "rel": "self" + } + ], + "min_version": "", + "version": "", + "media-types": [ + { + "base": "application/json", + "type": "application/vnd.openstack.volume+json;version=1" + } + ], + "id": "v1.0" + }, + { + "status": "SUPPORTED", + "updated": "2014-06-28T12:20:21Z", + "links": [ + { + "href": "http://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": "http://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" + } + ] +} diff --git a/api-ref/source/v3/samples/versions-response.xml b/api-ref/source/v3/samples/versions-response.xml new file mode 100644 index 00000000000..a09fac7165b --- /dev/null +++ b/api-ref/source/v3/samples/versions-response.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api-ref/source/v3/samples/volume-attach-request.json b/api-ref/source/v3/samples/volume-attach-request.json new file mode 100644 index 00000000000..a779f9fbf71 --- /dev/null +++ b/api-ref/source/v3/samples/volume-attach-request.json @@ -0,0 +1,6 @@ +{ + "os-attach": { + "instance_uuid": "95D9EF50-507D-11E5-B970-0800200C9A66", + "mountpoint": "/dev/vdc" + } +} diff --git a/api-ref/source/v3/samples/volume-create-request.json b/api-ref/source/v3/samples/volume-create-request.json new file mode 100644 index 00000000000..2aab202523f --- /dev/null +++ b/api-ref/source/v3/samples/volume-create-request.json @@ -0,0 +1,22 @@ +{ + "volume": { + "size": 10, + "availability_zone": null, + "source_volid": null, + "description": null, + "multiattach ": false, + "snapshot_id": null, + "name": null, + "imageRef": null, + "volume_type": null, + "metadata": {}, + "source_replica": null, + "consistencygroup_id": null + }, + "OS-SCH-HNT:scheduler_hints": { + "same_host": [ + "a0cf03a5-d921-4877-bb5c-86d26cf818e1", + "8c19174f-4220-44f0-824a-cd1eeef10287" + ] + } +} diff --git a/api-ref/source/v3/samples/volume-create-request.xml b/api-ref/source/v3/samples/volume-create-request.xml new file mode 100644 index 00000000000..5b655e92e9f --- /dev/null +++ b/api-ref/source/v3/samples/volume-create-request.xml @@ -0,0 +1,5 @@ + + diff --git a/api-ref/source/v3/samples/volume-create-response.json b/api-ref/source/v3/samples/volume-create-response.json new file mode 100644 index 00000000000..57441f030a4 --- /dev/null +++ b/api-ref/source/v3/samples/volume-create-response.json @@ -0,0 +1,34 @@ +{ + "volume": { + "status": "creating", + "migration_status": null, + "user_id": "0eea4eabcf184061a3b6db1e0daaf010", + "attachments": [], + "links": [ + { + "href": "http://23.253.248.171:8776/v3/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 + } +} diff --git a/api-ref/source/v3/samples/volume-create-response.xml b/api-ref/source/v3/samples/volume-create-response.xml new file mode 100644 index 00000000000..9be3c5e3943 --- /dev/null +++ b/api-ref/source/v3/samples/volume-create-response.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/api-ref/source/v3/samples/volume-extend-request.json b/api-ref/source/v3/samples/volume-extend-request.json new file mode 100644 index 00000000000..a051cb3cb1c --- /dev/null +++ b/api-ref/source/v3/samples/volume-extend-request.json @@ -0,0 +1,5 @@ +{ + "os-extend": { + "new_size": 3 + } +} diff --git a/api-ref/source/v3/samples/volume-force-detach-request.json b/api-ref/source/v3/samples/volume-force-detach-request.json new file mode 100644 index 00000000000..277849d8cd6 --- /dev/null +++ b/api-ref/source/v3/samples/volume-force-detach-request.json @@ -0,0 +1,8 @@ +{ + "os-force_detach": { + "attachment_id": "d8777f54-84cf-4809-a679-468ffed56cf1", + "connector": { + "initiator": "iqn.2012-07.org.fake:01" + } + } +} diff --git a/api-ref/source/v3/samples/volume-image-metadata-set-request.json b/api-ref/source/v3/samples/volume-image-metadata-set-request.json new file mode 100644 index 00000000000..1f2be3d6efd --- /dev/null +++ b/api-ref/source/v3/samples/volume-image-metadata-set-request.json @@ -0,0 +1,10 @@ +{ + "os-set_image_metadata": { + "metadata": { + "image_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", + "image_name": "image", + "kernel_id": "155d900f-4e14-4e4c-a73d-069cbf4541e6", + "ramdisk_id": "somedisk" + } + } +} diff --git a/api-ref/source/v3/samples/volume-image-metadata-unset-request.json b/api-ref/source/v3/samples/volume-image-metadata-unset-request.json new file mode 100644 index 00000000000..49d3295c5ae --- /dev/null +++ b/api-ref/source/v3/samples/volume-image-metadata-unset-request.json @@ -0,0 +1,5 @@ +{ + "os-unset_image_metadata": { + "key": "ramdisk_id" + } +} diff --git a/api-ref/source/v3/samples/volume-manage-request.json b/api-ref/source/v3/samples/volume-manage-request.json new file mode 100644 index 00000000000..36321478437 --- /dev/null +++ b/api-ref/source/v3/samples/volume-manage-request.json @@ -0,0 +1,18 @@ +{ + "volume": { + "host": "geraint-VirtualBox", + "ref": { + "source-name": "existingLV", + "source-id": "1234" + }, + "name": "New Volume", + "availability_zone": "az2", + "description": "Volume imported from existingLV", + "volume_type": null, + "bootable": true, + "metadata": { + "key1": "value1", + "key2": "value2" + } + } +} diff --git a/api-ref/source/v3/samples/volume-manage-response.json b/api-ref/source/v3/samples/volume-manage-response.json new file mode 100644 index 00000000000..a53976b9cba --- /dev/null +++ b/api-ref/source/v3/samples/volume-manage-response.json @@ -0,0 +1,33 @@ +{ + "volume": { + "status": "creating", + "user_id": "eae1472b5fc5496998a3d06550929e7e", + "attachments": [], + "links": [ + { + "href": "http://10.0.2.15:8776/v3/87c8522052ca4eed98bc672b4c1a3ddb/volumes/23cf872b-c781-4cd4-847d-5f2ec8cbd91c", + "rel": "self" + }, + { + "href": "http://10.0.2.15:8776/87c8522052ca4eed98bc672b4c1a3ddb/volumes/23cf872b-c781-4cd4-847d-5f2ec8cbd91c", + "rel": "bookmark" + } + ], + "availability_zone": "az2", + "bootable": "false", + "encrypted": "false", + "created_at": "2014-07-18T00:12:54.000000", + "description": "Volume imported from existingLV", + "os-vol-tenant-attr:tenant_id": "87c8522052ca4eed98bc672b4c1a3ddb", + "volume_type": null, + "name": "New Volume", + "source_volid": null, + "snapshot_id": null, + "metadata": { + "key2": "value2", + "key1": "value1" + }, + "id": "23cf872b-c781-4cd4-847d-5f2ec8cbd91c", + "size": 0 + } +} diff --git a/api-ref/source/v3/samples/volume-metadata-create-request.json b/api-ref/source/v3/samples/volume-metadata-create-request.json new file mode 100644 index 00000000000..1ff9aae2788 --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-create-request.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "name": "metadata0" + } +} diff --git a/api-ref/source/v3/samples/volume-metadata-create-response.json b/api-ref/source/v3/samples/volume-metadata-create-response.json new file mode 100644 index 00000000000..1ff9aae2788 --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-create-response.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "name": "metadata0" + } +} diff --git a/api-ref/source/v3/samples/volume-metadata-show-response.json b/api-ref/source/v3/samples/volume-metadata-show-response.json new file mode 100644 index 00000000000..5937a866595 --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-show-response.json @@ -0,0 +1,3 @@ +{ + "metadata": {} +} diff --git a/api-ref/source/v3/samples/volume-metadata-show-response.xml b/api-ref/source/v3/samples/volume-metadata-show-response.xml new file mode 100644 index 00000000000..ba106077a94 --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-show-response.xml @@ -0,0 +1,2 @@ + + diff --git a/api-ref/source/v3/samples/volume-metadata-update-request.json b/api-ref/source/v3/samples/volume-metadata-update-request.json new file mode 100644 index 00000000000..4d96ad8484a --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-update-request.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "name": "metadata1" + } +} diff --git a/api-ref/source/v3/samples/volume-metadata-update-request.xml b/api-ref/source/v3/samples/volume-metadata-update-request.xml new file mode 100644 index 00000000000..ceeb8f0314b --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-update-request.xml @@ -0,0 +1,4 @@ + + + v2 + diff --git a/api-ref/source/v3/samples/volume-metadata-update-response.json b/api-ref/source/v3/samples/volume-metadata-update-response.json new file mode 100644 index 00000000000..4d96ad8484a --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-update-response.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "name": "metadata1" + } +} diff --git a/api-ref/source/v3/samples/volume-metadata-update-response.xml b/api-ref/source/v3/samples/volume-metadata-update-response.xml new file mode 100644 index 00000000000..6d00cdef115 --- /dev/null +++ b/api-ref/source/v3/samples/volume-metadata-update-response.xml @@ -0,0 +1,4 @@ + + + v2 + diff --git a/api-ref/source/v3/samples/volume-show-response.json b/api-ref/source/v3/samples/volume-show-response.json new file mode 100644 index 00000000000..c17556186fe --- /dev/null +++ b/api-ref/source/v3/samples/volume-show-response.json @@ -0,0 +1,33 @@ +{ + "volume": { + "status": "available", + "attachments": [], + "links": [ + { + "href": "http://localhost:8776/v3/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" + } + } +} diff --git a/api-ref/source/v3/samples/volume-show-response.xml b/api-ref/source/v3/samples/volume-show-response.xml new file mode 100644 index 00000000000..17632dfcb80 --- /dev/null +++ b/api-ref/source/v3/samples/volume-show-response.xml @@ -0,0 +1,19 @@ + + + + + not junk + + diff --git a/api-ref/source/v3/samples/volume-status-reset-request.json b/api-ref/source/v3/samples/volume-status-reset-request.json new file mode 100644 index 00000000000..506b610190a --- /dev/null +++ b/api-ref/source/v3/samples/volume-status-reset-request.json @@ -0,0 +1,7 @@ +{ + "os-reset_status": { + "status": "available", + "attach_status": "detached", + "migration_status": "migrating" + } +} diff --git a/api-ref/source/v3/samples/volume-transfer-accept-request.json b/api-ref/source/v3/samples/volume-transfer-accept-request.json new file mode 100644 index 00000000000..3399f1e0ca4 --- /dev/null +++ b/api-ref/source/v3/samples/volume-transfer-accept-request.json @@ -0,0 +1,5 @@ +{ + "accept": { + "auth_key": "9266c59563c84664" + } +} diff --git a/api-ref/source/v3/samples/volume-transfer-accept-response.json b/api-ref/source/v3/samples/volume-transfer-accept-response.json new file mode 100644 index 00000000000..ab4604dd149 --- /dev/null +++ b/api-ref/source/v3/samples/volume-transfer-accept-response.json @@ -0,0 +1,17 @@ +{ + "transfer": { + "id": "cac5c677-73a9-4288-bb9c-b2ebfb547377", + "name": "first volume transfer", + "volume_id": "894623a6-e901-4312-aa06-4275e6321cce", + "links": [ + { + "href": "http://localhost/v3/firstproject/volumes/1", + "rel": "self" + }, + { + "href": "http://localhost/firstproject/volumes/1", + "rel": "bookmark" + } + ] + } +} diff --git a/api-ref/source/v3/samples/volume-transfer-create-request.json b/api-ref/source/v3/samples/volume-transfer-create-request.json new file mode 100644 index 00000000000..f517b7498de --- /dev/null +++ b/api-ref/source/v3/samples/volume-transfer-create-request.json @@ -0,0 +1,6 @@ +{ + "transfer": { + "volume_id": "c86b9af4-151d-4ead-b62c-5fb967af0e37", + "name": "first volume" + } +} diff --git a/api-ref/source/v3/samples/volume-transfer-create-response.json b/api-ref/source/v3/samples/volume-transfer-create-response.json new file mode 100644 index 00000000000..7f0e9e2c5d4 --- /dev/null +++ b/api-ref/source/v3/samples/volume-transfer-create-response.json @@ -0,0 +1,19 @@ +{ + "transfer": { + "id": "1a7059f5-8ed7-45b7-8d05-2811e5d09f24", + "created_at": "2015-02-25T03:56:53.081642", + "name": "first volume", + "volume_id": "c86b9af4-151d-4ead-b62c-5fb967af0e37", + "auth_key": "9266c59563c84664", + "links": [ + { + "href": "http://localhost/v3/firstproject/volumes/3", + "rel": "self" + }, + { + "href": "http://localhost/firstproject/volumes/3", + "rel": "bookmark" + } + ] + } +} diff --git a/api-ref/source/v3/samples/volume-transfer-show-response.json b/api-ref/source/v3/samples/volume-transfer-show-response.json new file mode 100644 index 00000000000..366e5472511 --- /dev/null +++ b/api-ref/source/v3/samples/volume-transfer-show-response.json @@ -0,0 +1,18 @@ +{ + "transfer": { + "id": "cac5c677-73a9-4288-bb9c-b2ebfb547377", + "created_at": "2015-02-25T03:56:53.081642", + "name": "first volume transfer", + "volume_id": "894623a6-e901-4312-aa06-4275e6321cce", + "links": [ + { + "href": "http://localhost/v3/firstproject/volumes/1", + "rel": "self" + }, + { + "href": "http://localhost/firstproject/volumes/1", + "rel": "bookmark" + } + ] + } +} diff --git a/api-ref/source/v3/samples/volume-transfers-list-detailed-response.json b/api-ref/source/v3/samples/volume-transfers-list-detailed-response.json new file mode 100644 index 00000000000..52ba78bc022 --- /dev/null +++ b/api-ref/source/v3/samples/volume-transfers-list-detailed-response.json @@ -0,0 +1,36 @@ +{ + "transfers": [ + { + "id": "cac5c677-73a9-4288-bb9c-b2ebfb547377", + "created_at": "2015-02-25T03:56:53.081642", + "name": "first volume transfer", + "volume_id": "894623a6-e901-4312-aa06-4275e6321cce", + "links": [ + { + "href": "http://localhost/v3/firstproject/volumes/1", + "rel": "self" + }, + { + "href": "http://localhost/firstproject/volumes/1", + "rel": "bookmark" + } + ] + }, + { + "id": "f26c0dee-d20d-4e80-8dee-a8d91b9742a1", + "created_at": "2015-03-25T03:56:53.081642", + "name": "second volume transfer", + "volume_id": "673db275-379f-41af-8371-e1652132b4c1", + "links": [ + { + "href": "http://localhost/v3/firstproject/volumes/2", + "rel": "self" + }, + { + "href": "http://localhost/firstproject/volumes/2", + "rel": "bookmark" + } + ] + } + ] +} diff --git a/api-ref/source/v3/samples/volume-transfers-list-response.json b/api-ref/source/v3/samples/volume-transfers-list-response.json new file mode 100644 index 00000000000..66a2db54e5b --- /dev/null +++ b/api-ref/source/v3/samples/volume-transfers-list-response.json @@ -0,0 +1,34 @@ +{ + "transfers": [ + { + "id": "cac5c677-73a9-4288-bb9c-b2ebfb547377", + "name": "first volume transfer", + "volume_id": "894623a6-e901-4312-aa06-4275e6321cce", + "links": [ + { + "href": "http://localhost/v3/firstproject/volumes/1", + "rel": "self" + }, + { + "href": "http://localhost/firstproject/volumes/1", + "rel": "bookmark" + } + ] + }, + { + "id": "f26c0dee-d20d-4e80-8dee-a8d91b9742a1", + "name": "second volume transfer", + "volume_id": "673db275-379f-41af-8371-e1652132b4c1", + "links": [ + { + "href": "http://localhost/v3/firstproject/volumes/2", + "rel": "self" + }, + { + "href": "http://localhost/firstproject/volumes/2", + "rel": "bookmark" + } + ] + } + ] +} diff --git a/api-ref/source/v3/samples/volume-type-access-add-request.json b/api-ref/source/v3/samples/volume-type-access-add-request.json new file mode 100644 index 00000000000..b7481edbbf3 --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-access-add-request.json @@ -0,0 +1,5 @@ +{ + "addProjectAccess": { + "project": "f270b245cb11498ca4031deb7e141cfa" + } +} diff --git a/api-ref/source/v3/samples/volume-type-access-add-request.xml b/api-ref/source/v3/samples/volume-type-access-add-request.xml new file mode 100644 index 00000000000..fdf06a0c2c1 --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-access-add-request.xml @@ -0,0 +1,4 @@ + + + "f270b245cb11498ca4031deb7e141cfa" + diff --git a/api-ref/source/v3/samples/volume-type-access-delete-request.json b/api-ref/source/v3/samples/volume-type-access-delete-request.json new file mode 100644 index 00000000000..144997bfcc0 --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-access-delete-request.json @@ -0,0 +1,5 @@ +{ + "removeProjectAccess": { + "project": "f270b245cb11498ca4031deb7e141cfa" + } +} diff --git a/api-ref/source/v3/samples/volume-type-access-delete-request.xml b/api-ref/source/v3/samples/volume-type-access-delete-request.xml new file mode 100644 index 00000000000..dcde1b2e4e7 --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-access-delete-request.xml @@ -0,0 +1,4 @@ + + + "f270b245cb11498ca4031deb7e141cfa" + diff --git a/api-ref/source/v3/samples/volume-type-access-list-response.json b/api-ref/source/v3/samples/volume-type-access-list-response.json new file mode 100644 index 00000000000..afcffb0810b --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-access-list-response.json @@ -0,0 +1,6 @@ +{ + "volume_type_access": { + "volume_type_id": "3c67e124-39ad-4ace-a507-8bb7bf510c26", + "project_id": "f270b245cb11498ca4031deb7e141cfa" + } +} diff --git a/api-ref/source/v3/samples/volume-type-create-request.json b/api-ref/source/v3/samples/volume-type-create-request.json new file mode 100644 index 00000000000..13d86bfdf5b --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-create-request.json @@ -0,0 +1,10 @@ +{ + "volume_type": { + "name": "vol-type-001", + "description": "volume type 0001", + "os-volume-type-access:is_public": true, + "extra_specs": { + "capabilities": "gpu" + } + } +} diff --git a/api-ref/source/v3/samples/volume-type-show-request.json b/api-ref/source/v3/samples/volume-type-show-request.json new file mode 100644 index 00000000000..a91f2e94d63 --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-show-request.json @@ -0,0 +1,9 @@ +{ + "volume_type": { + "id": "289da7f8-6440-407c-9fb4-7db01ec49164", + "name": "vol-type-001", + "extra_specs": { + "capabilities": "gpu" + } + } +} diff --git a/api-ref/source/v3/samples/volume-type-show-request.xml b/api-ref/source/v3/samples/volume-type-show-request.xml new file mode 100644 index 00000000000..1c4291d08f1 --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-show-request.xml @@ -0,0 +1,8 @@ + + + + gpu + + diff --git a/api-ref/source/v3/samples/volume-type-show-response.json b/api-ref/source/v3/samples/volume-type-show-response.json new file mode 100644 index 00000000000..7a0420f201a --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-show-response.json @@ -0,0 +1,11 @@ +{ + "volume_type": { + "id": "6685584b-1eac-4da6-b5c3-555430cf68ff", + "name": "vol-type-001", + "description": "volume type 001", + "is_public": "true", + "extra_specs": { + "capabilities": "gpu" + } + } +} diff --git a/api-ref/source/v3/samples/volume-type-show-response.xml b/api-ref/source/v3/samples/volume-type-show-response.xml new file mode 100644 index 00000000000..f5935c74a1b --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-show-response.xml @@ -0,0 +1,9 @@ + + + + gpu + + diff --git a/api-ref/source/v3/samples/volume-type-update-request.json b/api-ref/source/v3/samples/volume-type-update-request.json new file mode 100644 index 00000000000..8bdc5befb3b --- /dev/null +++ b/api-ref/source/v3/samples/volume-type-update-request.json @@ -0,0 +1,10 @@ +{ + "volume_type": { + "name": "vol-type-001", + "description": "volume type 0001", + "is_public": true, + "extra_specs": { + "capabilities": "gpu" + } + } +} diff --git a/api-ref/source/v3/samples/volume-types-list-response.json b/api-ref/source/v3/samples/volume-types-list-response.json new file mode 100644 index 00000000000..1d72f923e23 --- /dev/null +++ b/api-ref/source/v3/samples/volume-types-list-response.json @@ -0,0 +1,16 @@ +{ + "volume_types": [ + { + "extra_specs": { + "capabilities": "gpu" + }, + "id": "6685584b-1eac-4da6-b5c3-555430cf68ff", + "name": "SSD" + }, + { + "extra_specs": {}, + "id": "8eb69a46-df97-4e41-9586-9a40a7533803", + "name": "SATA" + } + ] +} diff --git a/api-ref/source/v3/samples/volume-types-list-response.xml b/api-ref/source/v3/samples/volume-types-list-response.xml new file mode 100644 index 00000000000..e227787da51 --- /dev/null +++ b/api-ref/source/v3/samples/volume-types-list-response.xml @@ -0,0 +1,11 @@ + + + + + gpu + + + + diff --git a/api-ref/source/v3/samples/volume-unmanage-request.json b/api-ref/source/v3/samples/volume-unmanage-request.json new file mode 100644 index 00000000000..a75950bb9e0 --- /dev/null +++ b/api-ref/source/v3/samples/volume-unmanage-request.json @@ -0,0 +1,3 @@ +{ + "os-unmanage": {} +} diff --git a/api-ref/source/v3/samples/volume-update-request.json b/api-ref/source/v3/samples/volume-update-request.json new file mode 100644 index 00000000000..8e52dacb6d4 --- /dev/null +++ b/api-ref/source/v3/samples/volume-update-request.json @@ -0,0 +1,6 @@ +{ + "volume": { + "name": "vol-003", + "description": "This is yet, another volume." + } +} diff --git a/api-ref/source/v3/samples/volume-update-request.xml b/api-ref/source/v3/samples/volume-update-request.xml new file mode 100644 index 00000000000..d03ed193032 --- /dev/null +++ b/api-ref/source/v3/samples/volume-update-request.xml @@ -0,0 +1,4 @@ + + diff --git a/api-ref/source/v3/samples/volume-update-response.json b/api-ref/source/v3/samples/volume-update-response.json new file mode 100644 index 00000000000..1fc925e915a --- /dev/null +++ b/api-ref/source/v3/samples/volume-update-response.json @@ -0,0 +1,36 @@ +{ + "volume": { + "status": "available", + "migration_status": null, + "user_id": "0eea4eabcf184061a3b6db1e0daaf010", + "attachments": [], + "links": [ + { + "href": "http://localhost:8776/v3/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 + } +} diff --git a/api-ref/source/v3/samples/volume-update-response.xml b/api-ref/source/v3/samples/volume-update-response.xml new file mode 100644 index 00000000000..0524361acba --- /dev/null +++ b/api-ref/source/v3/samples/volume-update-response.xml @@ -0,0 +1,13 @@ + + + + + not junk + + diff --git a/api-ref/source/v3/samples/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes-list-detailed-response.json new file mode 100644 index 00000000000..28768fd30e9 --- /dev/null +++ b/api-ref/source/v3/samples/volumes-list-detailed-response.json @@ -0,0 +1,102 @@ +{ + "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/v3/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/v3/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" + } + ] +} diff --git a/api-ref/source/v3/samples/volumes-list-detailed-response.xml b/api-ref/source/v3/samples/volumes-list-detailed-response.xml new file mode 100644 index 00000000000..36bbffd0ab8 --- /dev/null +++ b/api-ref/source/v3/samples/volumes-list-detailed-response.xml @@ -0,0 +1,31 @@ + + + + + + junk + + + + + + not junk + + + diff --git a/api-ref/source/v3/samples/volumes-list-response.json b/api-ref/source/v3/samples/volumes-list-response.json new file mode 100644 index 00000000000..eb4ebafa103 --- /dev/null +++ b/api-ref/source/v3/samples/volumes-list-response.json @@ -0,0 +1,32 @@ +{ + "volumes": [ + { + "id": "45baf976-c20a-4894-a7c3-c94b7376bf55", + "links": [ + { + "href": "http://localhost:8776/v3/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/v3/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" + } + ] +} diff --git a/api-ref/source/v3/samples/volumes-list-response.xml b/api-ref/source/v3/samples/volumes-list-response.xml new file mode 100644 index 00000000000..024608615ad --- /dev/null +++ b/api-ref/source/v3/samples/volumes-list-response.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/api-ref/source/v3/volume-manage.inc b/api-ref/source/v3/volume-manage.inc new file mode 100644 index 00000000000..9bd5cb7c622 --- /dev/null +++ b/api-ref/source/v3/volume-manage.inc @@ -0,0 +1,50 @@ +.. -*- rst -*- + +========================================== +Volume manage extension (os-volume-manage) +========================================== + +Creates volumes by using existing storage instead of allocating new +storage. + + +Manage an existing volume +========================= + +.. rest_method:: POST /v3/{tenant_id}/os-volume-manage + +Creates a Block Storage volume by using existing storage rather than allocating new storage. + +The caller must specify a reference to an existing storage volume +in the ref parameter in the request. Although each storage driver +might interpret this reference differently, the driver should +accept a reference structure that contains either a source-id +or source-name element, if possible. + +The API chooses the size of the volume by rounding up the size of +the existing storage volume to the next gibibyte (GiB). + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - description: description + - availability_zone: availability_zone + - bootable: bootable + - volume_type: volume_type + - name: name + - volume: volume + - host: host + - ref: ref + - metadata: metadata + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-manage-request.json + :language: javascript diff --git a/api-ref/source/v3/volume-type-access.inc b/api-ref/source/v3/volume-type-access.inc new file mode 100644 index 00000000000..699c9ad42d2 --- /dev/null +++ b/api-ref/source/v3/volume-type-access.inc @@ -0,0 +1,103 @@ +.. -*- rst -*- + +============================ +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. + + +Add private volume type access to project +========================================= + +.. rest_method:: POST /v3/{tenant_id}/types/{volume_type}/action + +Adds private volume type access to a project. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - project: project + - tenant_id: tenant_id + - volume_type: volume_type + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-type-access-add-request.json + :language: javascript + + +Remove private volume type access from project +============================================== + +.. rest_method:: POST /v3/{tenant_id}/types/{volume_type}/action + +Removes private volume type access from a project. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - project: project + - tenant_id: tenant_id + - volume_type: volume_type + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-type-access-delete-request.json + :language: javascript + + +List private volume type access detail +====================================== + +.. rest_method:: GET /v3/{tenant_id}/types/{volume_type}/os-volume-type-access + +Lists project IDs that have access to private volume type. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - volume_type: volume_type + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - project_id: project_id + + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-access-list-response.json + :language: javascript diff --git a/api-ref/source/v3/volumes-v3-extensions.inc b/api-ref/source/v3/volumes-v3-extensions.inc new file mode 100644 index 00000000000..8b7014f63e4 --- /dev/null +++ b/api-ref/source/v3/volumes-v3-extensions.inc @@ -0,0 +1,52 @@ +.. -*- rst -*- + +=========================== +API extensions (extensions) +=========================== + + + + +List Known API extensions +========================= + +.. rest_method:: GET /v3/{tenant_id}/extensions + +Lists Block Storage API extensions. + + +Normal response codes: 200 +Error response codes:300, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - updated: updated + - description: description + - links: links + - namespace: namespace + - alias: alias + - name: name + + + + +Response Example +---------------- + +.. literalinclude:: ./samples/extensions-list-response.json + :language: javascript + + + diff --git a/api-ref/source/v3/volumes-v3-snapshots.inc b/api-ref/source/v3/volumes-v3-snapshots.inc new file mode 100644 index 00000000000..15edefa22dd --- /dev/null +++ b/api-ref/source/v3/volumes-v3-snapshots.inc @@ -0,0 +1,359 @@ +.. -*- rst -*- + +============================ +Volume snapshots (snapshots) +============================ + +A snapshot is a point-in-time copy of the data that a volume +contains. + +When you create, list, or delete snapshots, these status values are +possible: + +**Snapshot statuses** + ++----------------+-------------------------------------+ +| Status | Description | ++----------------+-------------------------------------+ +| creating | The snapshot is being created. | ++----------------+-------------------------------------+ +| available | The snapshot is ready to use. | ++----------------+-------------------------------------+ +| deleting | The snapshot is being deleted. | ++----------------+-------------------------------------+ +| error | A snapshot creation error occurred. | ++----------------+-------------------------------------+ +| error_deleting | A snapshot deletion error occurred. | ++----------------+-------------------------------------+ + + +List snapshots and details +========================== + +.. rest_method:: GET /v3/{tenant_id}/snapshots/detail + +Lists all Block Storage snapshots, with details, that the tenant can access. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - os-extended-snapshot-attributes:progress: os-extended-snapshot-attributes:progress + - description: description + - created_at: created_at + - name: name + - volume_id: volume_id + - os-extended-snapshot-attributes:project_id: os-extended-snapshot-attributes:project_id + - size: size + - id: id + - metadata: metadata + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshots-list-detailed-response.json + :language: javascript + + +Create a snapshot +================= + +.. rest_method:: POST /v3/{tenant_id}/snapshots + +Creates a volume snapshot, which is a point-in-time, complete copy of a volume. You can create a volume from a snapshot. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - snapshot: snapshot + - volume_id: volume_id + - force: force + - description: description + - name: name + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/snapshot-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - created_at: created_at + - name: name + - snapshot: snapshot + - volume_id: volume_id + - metadata: metadata + - id: id + - size: size + + +List accessible snapshots +========================= + +.. rest_method:: GET /v3/{tenant_id}/snapshots + +Lists all Block Storage snapshots, with summary information, that the tenant can access. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort_key: sort_key + - sort_dir: sort_dir + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - created_at: created_at + - name: name + - volume_id: volume_id + - metadata: metadata + - id: id + - size: size + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshots-list-response.json + :language: javascript + + +Show a snapshot's metadata +========================== + +.. rest_method:: GET /v3/{tenant_id}/snapshots/{snapshot_id}/metadata + +Shows metadata for a snapshot. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - snapshot_id: snapshot_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - os-extended-snapshot-attributes:progress: os-extended-snapshot-attributes:progress + - description: description + - created_at: created_at + - name: name + - snapshot: snapshot + - volume_id: volume_id + - os-extended-snapshot-attributes:project_id: os-extended-snapshot-attributes:project_id + - size: size + - id: id + - metadata: metadata + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshot-metadata-show-response.json + :language: javascript + + +Update a snapshot's metadata +============================ + +.. rest_method:: PUT /v3/{tenant_id}/snapshots/{snapshot_id}/metadata + +Updates metadata for a snapshot. + +Replaces metadata items that match keys. Does not modify items that +are not in the request. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - metadata: metadata + - tenant_id: tenant_id + - snapshot_id: snapshot_id + +Request Example +--------------- + +.. literalinclude:: ./samples/snapshot-metadata-update-request.json + :language: javascript + + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshot-metadata-update-response.json + :language: javascript + + +Show a snapshot's details +========================= + +.. rest_method:: GET /v3/{tenant_id}/snapshots/{snapshot_id} + +Shows details for a snapshot. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - snapshot_id: snapshot_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - os-extended-snapshot-attributes:progress: os-extended-snapshot-attributes:progress + - description: description + - created_at: created_at + - name: name + - snapshot: snapshot + - volume_id: volume_id + - os-extended-snapshot-attributes:project_id: os-extended-snapshot-attributes:project_id + - size: size + - id: id + - metadata: metadata + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshot-show-response.json + :language: javascript + + +Update a snapshot +================= + +.. rest_method:: PUT /v3/{tenant_id}/snapshots/{snapshot_id} + +Updates a snapshot. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - snapshot: snapshot + - description: description + - name: name + - tenant_id: tenant_id + - snapshot_id: snapshot_id + +Request Example +--------------- + +.. literalinclude:: ./samples/snapshot-update-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - status: status + - description: description + - created_at: created_at + - name: name + - snapshot: snapshot + - volume_id: volume_id + - metadata: metadata + - id: id + - size: size + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshot-update-response.json + :language: javascript + + +Delete a snapshot +================= + +.. rest_method:: DELETE /v3/{tenant_id}/snapshots/{snapshot_id} + +Deletes a snapshot. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - snapshot_id: snapshot_id diff --git a/api-ref/source/v3/volumes-v3-types.inc b/api-ref/source/v3/volumes-v3-types.inc new file mode 100644 index 00000000000..1f55c5fac2d --- /dev/null +++ b/api-ref/source/v3/volumes-v3-types.inc @@ -0,0 +1,273 @@ +.. -*- rst -*- + +==================== +Volume types (types) +==================== + + +Update a volume type +==================== + +.. rest_method:: PUT /v3/{tenant_id}/types/{volume_type_id} + +Updates a volume type. + +To create an environment with multiple-storage back ends, you must +specify a volume type. The API spawns Block Storage volume back +ends as children to ``cinder-volume``, and keys them from a unique +queue. The API names the back ends ``cinder-volume.HOST.BACKEND``. +For example, ``cinder-volume.ubuntu.lvmdriver``. When you create a +volume, the scheduler chooses an appropriate back end for the +volume type to handle the request. + +For information about how to use volume types to create multiple- +storage back ends, see `Configure multiple-storage back ends +`_. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - volume_type: volume_type + - volume_type_id: volume_type_id + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-type-update-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - is_public: is_public + - extra_specs: extra_specs + - description: description + - volume_type: volume_type + - name: name + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + + +Update extra specs for volume type +================================== + +.. rest_method:: PUT /v3/{tenant_id}/types/{volume_type_id} + +Updates the extra specifications that are assigned to a volume type. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - extra_specs: extra_specs + - volume_type: volume_type + - volume_type_id: volume_type_id + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-type-update-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - is_public: is_public + - extra_specs: extra_specs + - description: description + - volume_type: volume_type + - name: name + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + + +Show volume type detail +======================= + +.. rest_method:: GET /v3/{tenant_id}/types/{volume_type_id} + +Shows details for a volume type. + + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - volume_type_id: volume_type_id + - tenant_id: tenant_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - is_public: is_public + - extra_specs: extra_specs + - description: description + - volume_type: volume_type + - name: name + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + + +Delete a volume type +==================== + +.. rest_method:: DELETE /v3/{tenant_id}/types/{volume_type_id} + +Deletes a volume type. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - volume_type_id: volume_type_id + - tenant_id: tenant_id + + +List all volume types +===================== + +.. rest_method:: GET /v3/{tenant_id}/types + +Lists volume types. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort_key: sort_key + - sort_dir: sort_dir + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - volume_types: volume_types + - extra_specs: extra_specs + - name: name + - volume_type: volume_type + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-types-list-response.json + :language: javascript + + +Create a volume type +==================== + +.. rest_method:: POST /v3/{tenant_id}/types + +Creates a 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. + +For information about how to use volume types to create multiple- +storage back ends, see `Configure multiple-storage back ends +`_. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - volume_type: volume_type + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-type-create-request.json + :language: javascript + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - is_public: is_public + - extra_specs: extra_specs + - description: description + - volume_type: volume_type + - name: name + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + diff --git a/api-ref/source/v3/volumes-v3-versions.inc b/api-ref/source/v3/volumes-v3-versions.inc new file mode 100644 index 00000000000..b190bc9cf5d --- /dev/null +++ b/api-ref/source/v3/volumes-v3-versions.inc @@ -0,0 +1,67 @@ +.. -*- rst -*- + +============ +API versions +============ + + + + +List Known API versions +======================= + +.. rest_method:: GET / + +Lists information for all Block Storage API versions. + + +Normal response codes: 200 +Error response codes:300, + + +Request +------- + + +Response Example +---------------- + +.. literalinclude:: ./samples/versions-response.json + :language: javascript + + + + +Show API v3 details +=================== + +.. rest_method:: GET /v3 + +Shows details for Block Storage API v3. + + +Normal response codes: 200 +Error response codes:203, + + +Request +------- + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - location: location + + + +Response Example +---------------- + +.. literalinclude:: ./samples/version-v3-show-response.json + :language: javascript + + diff --git a/api-ref/source/v3/volumes-v3-volumes-actions.inc b/api-ref/source/v3/volumes-v3-volumes-actions.inc new file mode 100644 index 00000000000..b26084c09e4 --- /dev/null +++ b/api-ref/source/v3/volumes-v3-volumes-actions.inc @@ -0,0 +1,269 @@ +.. -*- rst -*- + +================================ +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. + + +Extend a volume size +==================== + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/action + +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. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - os-extend: os-extend + - new_size: new_size + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-extend-request.json + :language: javascript + + + + + + + +Reset a volume's statuses +========================= + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/action + +Resets the status, attach status, and migration status for a volume. Specify the ``os-reset_status`` action in the request body. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - status: status + - migration_status: migration_status + - os-reset_status: os-reset_status + - attach_status: attach_status + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-status-reset-request.json + :language: javascript + + + + + + + +Set image metadata for a volume +=============================== + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/action + +Sets the image metadata for a volume. Specify the ``os-set_image_metadata`` action in the request body. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - os-set_image_metadata: os-set_image_metadata + - metadata: metadata + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-image-metadata-set-request.json + :language: javascript + + + + + + + +Remove image metadata from a volume +=================================== + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/action + +Removes image metadata, by key, from a volume. Specify the ``os-unset_image_metadata`` action in the request body and the ``key`` for the metadata key and value pair that you want to remove. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - os-unset_image_metadata: os-unset_image_metadata + - key: key + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-image-metadata-unset-request.json + :language: javascript + + + + + + + +Attach volume to a server +========================= + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/action + +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``. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instance_uuid: instance_uuid + - mountpoint: mountpoint + - host_name: host_name + - os-attach: os-attach + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-attach-request.json + :language: javascript + + + + + + + +Unmanage a volume +================= + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/action + +Removes a volume from Block Storage management without removing the back-end storage object that is associated with it. Specify the ``os-unmanage`` action in the request body. + +Preconditions + +- Volume status must be ``available``. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - os-unmanage: os-unmanage + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-unmanage-request.json + :language: javascript + + + + + + + +Force detach a volume +===================== + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/action + +Forces a volume to detach. Specify the ``os-force_detach`` action in the request body. + +Rolls back an unsuccessful detach operation after you disconnect +the volume. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - connector: connector + - attachment_id: attachment_id + - os-force_detach: os-force_detach + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-force-detach-request.json + :language: javascript + + + + + + + diff --git a/api-ref/source/v3/volumes-v3-volumes.inc b/api-ref/source/v3/volumes-v3-volumes.inc new file mode 100644 index 00000000000..abfabb7a474 --- /dev/null +++ b/api-ref/source/v3/volumes-v3-volumes.inc @@ -0,0 +1,570 @@ +.. -*- rst -*- + +================= +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. | ++------------------+--------------------------------------------------------+ +| in-use | The volume is attached to an instance. | ++------------------+--------------------------------------------------------+ +| deleting | The volume is being deleted. | ++------------------+--------------------------------------------------------+ +| 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_restoring | A backup restoration error occurred. | ++------------------+--------------------------------------------------------+ +| error_extending | An error occurred while attempting to extend a volume. | ++------------------+--------------------------------------------------------+ + + +List accessbile volumes with details +==================================== + +.. rest_method:: GET /v3/{tenant_id}/volumes/detail + +Lists all Block Storage volumes, with details, that the tenant can access. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort: sort + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - migration_status: migration_status + - attachments: attachments + - links: links + - availability_zone: availability_zone + - os-vol-host-attr:host: os-vol-host-attr:host + - encrypted: encrypted + - updated_at: updated_at + - os-volume-replication:extended_status: os-volume-replication:extended_status + - replication_status: replication_status + - snapshot_id: snapshot_id + - id: id + - size: size + - user_id: user_id + - os-vol-tenant-attr:tenant_id: os-vol-tenant-attr:tenant_id + - os-vol-mig-status-attr:migstat: os-vol-mig-status-attr:migstat + - metadata: metadata + - status: status + - description: description + - multiattach: multiattach + - source_volid: source_volid + - consistencygroup_id: consistencygroup_id + - os-vol-mig-status-attr:name_id: os-vol-mig-status-attr:name_id + - name: name + - bootable: bootable + - created_at: created_at + - os-volume-replication:driver_data: os-volume-replication:driver_data + - volumes: volumes + - volume_type: volume_type + + + +Response Example +---------------- + +.. literalinclude:: ./samples/volumes-list-detailed-response.json + :language: javascript + + + + +Create a volume +=============== + +.. rest_method:: POST /v3/{tenant_id}/volumes + +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. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - size: size + - description: description + - imageRef: imageRef + - multiattach: multiattach + - availability_zone: availability_zone + - source_volid: source_volid + - name: name + - volume: volume + - consistencygroup_id: consistencygroup_id + - volume_type: volume_type + - snapshot_id: snapshot_id + - OS-SCH-HNT:scheduler_hints: OS-SCH-HNT:scheduler_hints + - source_replica: source_replica + - metadata: metadata + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-create-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - migration_status: migration_status + - attachments: attachments + - links: links + - availability_zone: availability_zone + - encrypted: encrypted + - updated_at: updated_at + - replication_status: replication_status + - snapshot_id: snapshot_id + - id: id + - size: size + - user_id: user_id + - metadata: metadata + - status: status + - description: description + - multiattach: multiattach + - source_volid: source_volid + - volume: volume + - consistencygroup_id: consistencygroup_id + - name: name + - bootable: bootable + - created_at: created_at + - volume_type: volume_type + + + + + +List accessible volumes +======================= + +.. rest_method:: GET /v3/{tenant_id}/volumes + +Lists summary information for all Block Storage volumes that the tenant can access. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - sort: sort + - limit: limit + - marker: marker + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - volumes: volumes + - id: id + - links: links + - name: name + + + +Response Example +---------------- + +.. literalinclude:: ./samples/volumes-list-response.json + :language: javascript + + + + +Show a volume's details +======================= + +.. rest_method:: GET /v3/{tenant_id}/volumes/{volume_id} + +Shows details for a volume. + +Preconditions + +- The volume must exist. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - volume_id: volume_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - migration_status: migration_status + - attachments: attachments + - links: links + - availability_zone: availability_zone + - os-vol-host-attr:host: os-vol-host-attr:host + - encrypted: encrypted + - updated_at: updated_at + - os-volume-replication:extended_status: os-volume-replication:extended_status + - replication_status: replication_status + - snapshot_id: snapshot_id + - id: id + - size: size + - user_id: user_id + - os-vol-tenant-attr:tenant_id: os-vol-tenant-attr:tenant_id + - os-vol-mig-status-attr:migstat: os-vol-mig-status-attr:migstat + - metadata: metadata + - status: status + - description: description + - multiattach: multiattach + - source_volid: source_volid + - volume: volume + - consistencygroup_id: consistencygroup_id + - os-vol-mig-status-attr:name_id: os-vol-mig-status-attr:name_id + - name: name + - bootable: bootable + - created_at: created_at + - os-volume-replication:driver_data: os-volume-replication:driver_data + - volume_type: volume_type + + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-show-response.json + :language: javascript + + + + +Update a volume +=============== + +.. rest_method:: PUT /v3/{tenant_id}/volumes/{volume_id} + +Updates a volume. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - volume: volume + - description: description + - name: name + - metadata: metadata + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-update-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - migration_status: migration_status + - attachments: attachments + - links: links + - availability_zone: availability_zone + - encrypted: encrypted + - updated_at: updated_at + - replication_status: replication_status + - snapshot_id: snapshot_id + - id: id + - size: size + - user_id: user_id + - metadata: metadata + - status: status + - description: description + - multiattach: multiattach + - source_volid: source_volid + - volume: volume + - consistencygroup_id: consistencygroup_id + - name: name + - bootable: bootable + - created_at: created_at + - volume_type: volume_type + + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-update-response.json + :language: javascript + + + + +Delete a volume +=============== + +.. rest_method:: DELETE /v3/{tenant_id}/volumes/{volume_id} + +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. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - volume_id: volume_id + + + + + + +Create metadata for volume +========================== + +.. rest_method:: POST /v3/{tenant_id}/volumes/{volume_id}/metadata + +Creates metadata for a volume. + +Error response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - metadata: metadata + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-metadata-create-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - metadata: metadata + + + + + +Show a volume's metadata +======================== + +.. rest_method:: GET /v3/{tenant_id}/volumes/{volume_id}/metadata + +Shows metadata for a volume. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - volume_id: volume_id + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - metadata: metadata + + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-metadata-show-response.json + :language: javascript + + + + +Update a volume's metadata +========================== + +.. rest_method:: PUT /v3/{tenant_id}/volumes/{volume_id}/metadata + +Updates metadata for a volume. + +Replaces metadata items that match keys. Does not modify items that +are not in the request. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - metadata: metadata + - tenant_id: tenant_id + - volume_id: volume_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-metadata-update-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - metadata: metadata + + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-metadata-update-response.json + :language: javascript