From 52e0f003fbaaa5d6a0b3fd4ff600d4ce44464810 Mon Sep 17 00:00:00 2001 From: Eric Harney Date: Wed, 15 Mar 2017 16:14:56 -0400 Subject: [PATCH] Revert "Remove v1 API reference" The v1 API is still in the tree, even if it is off by default and deprecated. We need to keep documentation on how it works at least until we remove the code. This was published to [1] which was the primary way to find this information, and it is now missing. [1] https://developer.openstack.org/api-ref/block-storage/v1/ This marks v1 as deprecated in the toctree. This reverts commit 8139f7f108786112ec6eef47228ecbc7f54b6f47. Change-Id: Ic9d0fcce5ca0f8455c212292664b8f9694edfce3 --- api-ref/source/index.rst | 1 + api-ref/source/v1/index.rst | 13 + api-ref/source/v1/os-quota-sets-v1.inc | 408 +++++++++++ api-ref/source/v1/parameters.yaml | 648 ++++++++++++++++++ .../quotas-defaults-show-response.json | 17 + .../v1/samples/quotas-show-response.json | 17 + .../v1/samples/quotas-update-request.json | 5 + .../v1/samples/quotas-update-response.json | 16 + .../v1/samples/snapshot-create-request.json | 8 + .../snapshot-metadata-show-response.json | 16 + .../snapshot-metadata-update-request.json | 5 + .../snapshot-metadata-update-response.json | 5 + .../v1/samples/snapshot-show-response.json | 11 + .../v1/samples/snapshots-list-response.json | 26 + .../samples/user-quotas-delete-response.json | 0 .../user-quotas-show-detail-response.json | 64 ++ .../v1/samples/user-quotas-show-response.json | 17 + .../samples/user-quotas-update-request.json | 6 + .../samples/user-quotas-update-response.json | 16 + .../v1/samples/version-show-response.json | 28 + .../v1/samples/versions-list-response.json | 26 + .../v1/samples/volume-create-request.json | 18 + .../v1/samples/volume-show-response.json | 27 + .../samples/volume-type-create-request.json | 8 + .../v1/samples/volume-type-show-response.json | 9 + .../samples/volume-types-list-response.json | 16 + .../v1/samples/volumes-list-response.json | 41 ++ api-ref/source/v1/volumes-v1-snapshots.inc | 187 +++++ api-ref/source/v1/volumes-v1-types.inc | 217 ++++++ api-ref/source/v1/volumes-v1-versions.inc | 52 ++ api-ref/source/v1/volumes-v1-volumes.inc | 233 +++++++ tox.ini | 2 +- 32 files changed, 2162 insertions(+), 1 deletion(-) create mode 100644 api-ref/source/v1/index.rst create mode 100644 api-ref/source/v1/os-quota-sets-v1.inc create mode 100644 api-ref/source/v1/parameters.yaml create mode 100644 api-ref/source/v1/samples/quotas-defaults-show-response.json create mode 100644 api-ref/source/v1/samples/quotas-show-response.json create mode 100644 api-ref/source/v1/samples/quotas-update-request.json create mode 100644 api-ref/source/v1/samples/quotas-update-response.json create mode 100644 api-ref/source/v1/samples/snapshot-create-request.json create mode 100644 api-ref/source/v1/samples/snapshot-metadata-show-response.json create mode 100644 api-ref/source/v1/samples/snapshot-metadata-update-request.json create mode 100644 api-ref/source/v1/samples/snapshot-metadata-update-response.json create mode 100644 api-ref/source/v1/samples/snapshot-show-response.json create mode 100644 api-ref/source/v1/samples/snapshots-list-response.json create mode 100644 api-ref/source/v1/samples/user-quotas-delete-response.json create mode 100644 api-ref/source/v1/samples/user-quotas-show-detail-response.json create mode 100644 api-ref/source/v1/samples/user-quotas-show-response.json create mode 100644 api-ref/source/v1/samples/user-quotas-update-request.json create mode 100644 api-ref/source/v1/samples/user-quotas-update-response.json create mode 100644 api-ref/source/v1/samples/version-show-response.json create mode 100644 api-ref/source/v1/samples/versions-list-response.json create mode 100644 api-ref/source/v1/samples/volume-create-request.json create mode 100644 api-ref/source/v1/samples/volume-show-response.json create mode 100644 api-ref/source/v1/samples/volume-type-create-request.json create mode 100644 api-ref/source/v1/samples/volume-type-show-response.json create mode 100644 api-ref/source/v1/samples/volume-types-list-response.json create mode 100644 api-ref/source/v1/samples/volumes-list-response.json create mode 100644 api-ref/source/v1/volumes-v1-snapshots.inc create mode 100644 api-ref/source/v1/volumes-v1-types.inc create mode 100644 api-ref/source/v1/volumes-v1-versions.inc create mode 100644 api-ref/source/v1/volumes-v1-volumes.inc diff --git a/api-ref/source/index.rst b/api-ref/source/index.rst index c715854c128..d366bbd7b9e 100644 --- a/api-ref/source/index.rst +++ b/api-ref/source/index.rst @@ -9,6 +9,7 @@ Contents: v2/index v3/index + Block Storage API v1 (DEPRECATED) Indices and tables diff --git a/api-ref/source/v1/index.rst b/api-ref/source/v1/index.rst new file mode 100644 index 00000000000..7fc691a9b00 --- /dev/null +++ b/api-ref/source/v1/index.rst @@ -0,0 +1,13 @@ +:tocdepth: 2 + +================================= +Block Storage API V1 (DEPRECATED) +================================= + +.. rest_expand_all:: + +.. include:: os-quota-sets-v1.inc +.. include:: volumes-v1-snapshots.inc +.. include:: volumes-v1-types.inc +.. include:: volumes-v1-versions.inc +.. include:: volumes-v1-volumes.inc diff --git a/api-ref/source/v1/os-quota-sets-v1.inc b/api-ref/source/v1/os-quota-sets-v1.inc new file mode 100644 index 00000000000..c4a9dc556cc --- /dev/null +++ b/api-ref/source/v1/os-quota-sets-v1.inc @@ -0,0 +1,408 @@ +.. -*- rst -*- + +Quota sets extension (os-quota-sets) +==================================== + +Administrators only, depending on policy settings. + +Shows, updates, and deletes quotas for a tenant. + + +Show quota details for user (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{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 + + - admin_tenant_id: admin_tenant_id + - tenant_id: tenant_id + - user_id: user_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 + - limit: limit + - 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/user-quotas-show-detail-response.json + :language: javascript + +Show default quotas +~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/os-quota-sets/defaults + +Shows 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-defaults-show-response.json + :language: javascript + + +Show quotas (v1) +~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{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 + + - admin_tenant_id: admin_tenant_id + - tenant_id: 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 (v1) +~~~~~~~~~~~~~~~~~~ + +.. rest_method:: PUT /v1/{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 + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - id: id + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - injected_file_path_bytes: injected_file_path_bytes + - security_groups: security_groups + - admin_tenant_id: admin_tenant_id + - tenant_id: 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 (v1) +~~~~~~~~~~~~~~~~~~ + +.. rest_method:: DELETE /v1/{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 + + - admin_tenant_id: admin_tenant_id + - tenant_id: tenant_id + +Response Example +---------------- + +.. literalinclude:: ./samples/user-quotas-delete-response.json + :language: javascript + +Show quotas for user (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{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 + + - admin_tenant_id: admin_tenant_id + - tenant_id: tenant_id + - user_id: user_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/user-quotas-show-response.json + :language: javascript + + + + +Update quotas for user (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: POST /v1/{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 + - ram: ram + - floating_ips: floating_ips + - key_pairs: key_pairs + - id: id + - instances: instances + - security_group_rules: security_group_rules + - injected_files: injected_files + - quota_set: quota_set + - cores: cores + - fixed_ips: fixed_ips + - injected_file_path_bytes: injected_file_path_bytes + - security_groups: security_groups + - admin_tenant_id: admin_tenant_id + - tenant_id: tenant_id + - user_id: user_id + +Request Example +--------------- + +.. literalinclude:: ./samples/user-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/user-quotas-update-response.json + :language: javascript + + +Delete quotas for user (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: DELETE /v1/{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 + + - admin_tenant_id: admin_tenant_id + - tenant_id: tenant_id + - user_id: user_id + + +Response Example +---------------- + +.. literalinclude:: ./samples/user-quotas-delete-response.json + :language: javascript diff --git a/api-ref/source/v1/parameters.yaml b/api-ref/source/v1/parameters.yaml new file mode 100644 index 00000000000..3e4604fcb66 --- /dev/null +++ b/api-ref/source/v1/parameters.yaml @@ -0,0 +1,648 @@ +# 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 +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 +user_id: + description: | + The user ID. Specify in the URI as + ``user_id={user_id}``. + in: path + required: false + type: string +volume_id: + description: | + The UUID of the volume. + 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 +usage: + description: | + Set to ``usage=true`` to show quota usage. + Default is ``false``. + in: query + required: false + type: boolean + +# variables in body +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 +availability_zone: + description: | + The availability zone. + in: body + required: false + type: string +availability_zone_1: + description: | + The availability zone. + in: body + required: true + type: string +bootable: + description: | + Enables or disables the bootable attribute. You + can boot an instance from a bootable volume. + in: body + required: true + type: boolean +consistencygroup_id: + description: | + The UUID of the consistency group. + in: body + required: false + type: string +consistencygroup_id_1: + description: | + The UUID of the consistency group. + 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 +cores_1: + description: | + A ``cores`` object. + in: body + required: true + type: string +cores_2: + description: | + The number of instance cores that are allowed for + each tenant. + in: body + required: false + 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 +description: + description: | + The volume description. + in: body + required: false + type: string +description_1: + description: | + The volume description. + 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 +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 +fixed_ips_1: + description: | + A ``fixed_ips`` object. + in: body + required: true + type: string +fixed_ips_2: + 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: false + type: integer +floating_ips: + description: | + The number of floating IP addresses that are + allowed for each tenant. + in: body + required: true + type: integer +floating_ips_1: + description: | + A ``floating_ips`` object. + in: body + required: true + type: string +floating_ips_2: + description: | + The number of floating IP addresses that are + allowed for each tenant. + in: body + required: false + type: integer +id: + description: | + The UUID of the volume. + in: body + required: true + type: string +id_1: + description: | + The ID for the quota set. + in: body + required: true + type: integer +id_2: + description: | + The ID for the quota set. + in: body + required: true + type: string +id_3: + description: | + The ID for the quota set. + in: body + required: false + 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 +in_use_1: + description: | + The number of items in use. + in: body + required: true + type: integer +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_content_bytes_1: + description: | + An ``injected_file_content_bytes`` object. + in: body + required: true + type: string +injected_file_content_bytes_2: + description: | + The number of bytes of content that are allowed + for each injected file. + in: body + required: false + 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_file_path_bytes_1: + description: | + An ``injected_file_path_bytes`` object. + in: body + required: true + type: string +injected_file_path_bytes_2: + description: | + The number of bytes that are allowed for each + injected file path. + in: body + required: false + type: integer +injected_files: + description: | + The number of injected files that are allowed for + each tenant. + in: body + required: true + type: integer +injected_files_1: + description: | + An ``injected_files`` object. + in: body + required: true + type: string +injected_files_2: + description: | + The number of injected files that are allowed for + each tenant. + in: body + required: false + type: integer +instances: + description: | + The number of instances that are allowed for each + tenant. + in: body + required: true + type: integer +instances_1: + description: | + An ``instances`` object. + in: body + required: true + type: string +instances_2: + description: | + The number of instances that are allowed for each + tenant. + in: body + required: false + type: integer +key_pairs: + description: | + The number of key pairs that are allowed for each + user. + in: body + required: true + type: integer +key_pairs_1: + description: | + A ``key_pairs`` object. + in: body + required: true + type: string +key_pairs_2: + description: | + The number of key pairs that are allowed for each + user. + in: body + required: false + type: integer +limit: + description: | + The number of items permitted for this tenant. + in: body + required: true + type: integer +links: + description: | + The volume links. + in: body + required: true + type: array +metadata: + description: | + One or more metadata key and value pairs that are + associated with the volume. + in: body + required: false + type: object +metadata_1: + description: | + 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 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 +metadata_items_1: + description: | + A ``metadata_items`` object. + in: body + required: true + type: string +metadata_items_2: + description: | + The number of metadata items that are allowed for + each instance. + in: body + required: false + type: integer +migration_status: + description: | + The volume migration status. + in: body + required: true + 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 type. + in: body + required: true + type: string +name_1: + description: | + The volume name. + in: body + required: false + type: string +name_2: + description: | + The volume name. + in: body + required: true + type: string +OS-SCH-HNT:scheduler_hints: + description: | + The dictionary of data to send to the scheduler. + in: body + required: false + type: object +quota_set: + description: | + A ``quota_set`` object. + in: body + required: true + type: object +quota_set_1: + description: | + A ``quota_set`` object. + in: body + required: true + type: string +ram: + description: | + The amount of instance RAM in megabytes that are + allowed for each tenant. + in: body + required: true + type: integer +ram_1: + description: | + A ``ram`` object. + in: body + required: true + type: string +ram_2: + description: | + The amount of instance RAM in megabytes that are + allowed for each tenant. + in: body + required: false + type: integer +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_1: + description: | + The number of reserved items. + in: body + required: true + type: integer +security_group_rules: + description: | + The number of rules that are allowed for each + security group. + in: body + required: false + type: integer +security_group_rules_1: + description: | + A ``security_group_rules`` object. + in: body + required: true + type: string +security_groups: + description: | + The number of security groups that are allowed + for each tenant. + in: body + required: true + type: integer +security_groups_1: + description: | + A ``security_groups`` object. + in: body + required: true + type: string +security_groups_2: + description: | + The number of security groups that are allowed + for each tenant. + in: body + required: false + type: integer +size: + description: | + The size of the volume, in gibibytes (GiB). + in: body + required: true + type: integer +snapshot: + 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. The API + creates a new volume snapshot with the same size as the source + volume snapshot. + in: body + required: true + 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 +status: + description: | + The volume status. + 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_1: + description: | + The UUID of the user. + in: body + required: true + type: string +volume: + description: | + A ``volume`` object. + in: body + required: true + type: object +volume_type: + 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_1: + 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 +volumes: + description: | + A list of ``volume`` objects. + in: body + required: true + type: array diff --git a/api-ref/source/v1/samples/quotas-defaults-show-response.json b/api-ref/source/v1/samples/quotas-defaults-show-response.json new file mode 100644 index 00000000000..239c64d23d4 --- /dev/null +++ b/api-ref/source/v1/samples/quotas-defaults-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/v1/samples/quotas-show-response.json b/api-ref/source/v1/samples/quotas-show-response.json new file mode 100644 index 00000000000..239c64d23d4 --- /dev/null +++ b/api-ref/source/v1/samples/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/v1/samples/quotas-update-request.json b/api-ref/source/v1/samples/quotas-update-request.json new file mode 100644 index 00000000000..1f12caa0450 --- /dev/null +++ b/api-ref/source/v1/samples/quotas-update-request.json @@ -0,0 +1,5 @@ +{ + "quota_set": { + "security_groups": 45 + } +} diff --git a/api-ref/source/v1/samples/quotas-update-response.json b/api-ref/source/v1/samples/quotas-update-response.json new file mode 100644 index 00000000000..2be76d47215 --- /dev/null +++ b/api-ref/source/v1/samples/quotas-update-response.json @@ -0,0 +1,16 @@ +{ + "quota_set": { + "cores": 20, + "fixed_ips": -1, + "floating_ips": 10, + "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": 45 + } +} diff --git a/api-ref/source/v1/samples/snapshot-create-request.json b/api-ref/source/v1/samples/snapshot-create-request.json new file mode 100644 index 00000000000..cc8ce2865f8 --- /dev/null +++ b/api-ref/source/v1/samples/snapshot-create-request.json @@ -0,0 +1,8 @@ +{ + "snapshot": { + "display_name": "snap-001", + "display_description": "Daily backup", + "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", + "force": true + } +} diff --git a/api-ref/source/v1/samples/snapshot-metadata-show-response.json b/api-ref/source/v1/samples/snapshot-metadata-show-response.json new file mode 100644 index 00000000000..68c54641dc3 --- /dev/null +++ b/api-ref/source/v1/samples/snapshot-metadata-show-response.json @@ -0,0 +1,16 @@ +{ + "snapshot": { + "status": "available", + "os-extended-snapshot-attributes:progress": "0%", + "description": null, + "created_at": "2014-05-06T17:59:52.000000", + "metadata": { + "key": "v1" + }, + "volume_id": "ebd80b99-bc3d-4154-9d28-5583baa80580", + "os-extended-snapshot-attributes:project_id": "7e0105e19cd2466193729ef78b604f79", + "size": 10, + "id": "dfcd17fe-3b64-44ba-b95f-1c9c7109ef95", + "name": "my-snapshot" + } +} diff --git a/api-ref/source/v1/samples/snapshot-metadata-update-request.json b/api-ref/source/v1/samples/snapshot-metadata-update-request.json new file mode 100644 index 00000000000..75accc1a63d --- /dev/null +++ b/api-ref/source/v1/samples/snapshot-metadata-update-request.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "key": "v1" + } +} diff --git a/api-ref/source/v1/samples/snapshot-metadata-update-response.json b/api-ref/source/v1/samples/snapshot-metadata-update-response.json new file mode 100644 index 00000000000..75accc1a63d --- /dev/null +++ b/api-ref/source/v1/samples/snapshot-metadata-update-response.json @@ -0,0 +1,5 @@ +{ + "metadata": { + "key": "v1" + } +} diff --git a/api-ref/source/v1/samples/snapshot-show-response.json b/api-ref/source/v1/samples/snapshot-show-response.json new file mode 100644 index 00000000000..f1514e86093 --- /dev/null +++ b/api-ref/source/v1/samples/snapshot-show-response.json @@ -0,0 +1,11 @@ +{ + "snapshot": { + "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5", + "display_name": "snap-001", + "display_description": "Daily backup", + "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", + "status": "available", + "size": 30, + "created_at": "2012-02-29T03:50:07Z" + } +} diff --git a/api-ref/source/v1/samples/snapshots-list-response.json b/api-ref/source/v1/samples/snapshots-list-response.json new file mode 100644 index 00000000000..d148577e19e --- /dev/null +++ b/api-ref/source/v1/samples/snapshots-list-response.json @@ -0,0 +1,26 @@ +{ + "snapshots": [ + { + "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5", + "display_name": "snap-001", + "display_description": "Daily backup", + "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", + "status": "available", + "size": 30, + "created_at": "2012-02-29T03:50:07Z", + "metadata": { + "contents": "junk" + } + }, + { + "id": "e479997c-650b-40a4-9dfe-77655818b0d2", + "display_name": "snap-002", + "display_description": "Weekly backup", + "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358", + "status": "available", + "size": 25, + "created_at": "2012-03-19T01:52:47Z", + "metadata": {} + } + ] +} diff --git a/api-ref/source/v1/samples/user-quotas-delete-response.json b/api-ref/source/v1/samples/user-quotas-delete-response.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/api-ref/source/v1/samples/user-quotas-show-detail-response.json b/api-ref/source/v1/samples/user-quotas-show-detail-response.json new file mode 100644 index 00000000000..53ecff0ba81 --- /dev/null +++ b/api-ref/source/v1/samples/user-quotas-show-detail-response.json @@ -0,0 +1,64 @@ +{ + "quota_set": { + "cores": { + "in_use": 0, + "limit": 20, + "reserved": 0 + }, + "fixed_ips": { + "in_use": 0, + "limit": -1, + "reserved": 0 + }, + "floating_ips": { + "in_use": 0, + "limit": 10, + "reserved": 0 + }, + "injected_files": { + "in_use": 0, + "limit": 5, + "reserved": 0 + }, + "instances": { + "in_use": 0, + "limit": 10, + "reserved": 0 + }, + "key_pairs": { + "in_use": 0, + "limit": 100, + "reserved": 0 + }, + "metadata_items": { + "in_use": 0, + "limit": 128, + "reserved": 0 + }, + "ram": { + "in_use": 0, + "limit": 51200, + "reserved": 0 + }, + "security_groups": { + "in_use": 0, + "limit": 10, + "reserved": 0 + }, + "injected_file_content_bytes": { + "in_use": 0, + "limit": 10240, + "reserved": 0 + }, + "injected_file_path_bytes": { + "in_use": 0, + "limit": 255, + "reserved": 0 + }, + "security_group_rules": { + "in_use": 0, + "limit": 20, + "reserved": 0 + } + } +} diff --git a/api-ref/source/v1/samples/user-quotas-show-response.json b/api-ref/source/v1/samples/user-quotas-show-response.json new file mode 100644 index 00000000000..239c64d23d4 --- /dev/null +++ b/api-ref/source/v1/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/v1/samples/user-quotas-update-request.json b/api-ref/source/v1/samples/user-quotas-update-request.json new file mode 100644 index 00000000000..6e5195f9ac8 --- /dev/null +++ b/api-ref/source/v1/samples/user-quotas-update-request.json @@ -0,0 +1,6 @@ +{ + "quota_set": { + "force": true, + "instances": 9 + } +} diff --git a/api-ref/source/v1/samples/user-quotas-update-response.json b/api-ref/source/v1/samples/user-quotas-update-response.json new file mode 100644 index 00000000000..5539332927e --- /dev/null +++ b/api-ref/source/v1/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/v1/samples/version-show-response.json b/api-ref/source/v1/samples/version-show-response.json new file mode 100644 index 00000000000..63c8957a20f --- /dev/null +++ b/api-ref/source/v1/samples/version-show-response.json @@ -0,0 +1,28 @@ +{ + "version": { + "id": "v1.0", + "links": [ + { + "href": "http://23.253.211.234:8776/v1/", + "rel": "self" + }, + { + "href": "http://docs.openstack.org/", + "rel": "describedby", + "type": "text/html" + } + ], + "media-types": [ + { + "base": "application/xml", + "type": "application/vnd.openstack.volume+xml;version=1" + }, + { + "base": "application/json", + "type": "application/vnd.openstack.volume+json;version=1" + } + ], + "status": "DEPRECATED", + "updated": "2014-06-28T12:20:21Z" + } +} diff --git a/api-ref/source/v1/samples/versions-list-response.json b/api-ref/source/v1/samples/versions-list-response.json new file mode 100644 index 00000000000..29b36bd1760 --- /dev/null +++ b/api-ref/source/v1/samples/versions-list-response.json @@ -0,0 +1,26 @@ +{ + "versions": [ + { + "id": "v1.0", + "links": [ + { + "href": "http://23.253.211.234:8776/v1/", + "rel": "self" + } + ], + "status": "DEPRECATED", + "updated": "2014-06-28T12:20:21Z" + }, + { + "id": "v2.0", + "links": [ + { + "href": "http://23.253.211.234:8776/v2/", + "rel": "self" + } + ], + "status": "CURRENT", + "updated": "2012-11-21T11:33:21Z" + } + ] +} diff --git a/api-ref/source/v1/samples/volume-create-request.json b/api-ref/source/v1/samples/volume-create-request.json new file mode 100644 index 00000000000..171a68c39ca --- /dev/null +++ b/api-ref/source/v1/samples/volume-create-request.json @@ -0,0 +1,18 @@ +{ + "volume": { + "display_name": "vol-001", + "display_description": "Another volume.", + "size": 30, + "volume_type": "289da7f8-6440-407c-9fb4-7db01ec49164", + "metadata": { + "contents": "junk" + }, + "availability_zone": "us-east1" + }, + "OS-SCH-HNT:scheduler_hints": { + "same_host": [ + "a0cf03a5-d921-4877-bb5c-86d26cf818e1", + "8c19174f-4220-44f0-824a-cd1eeef10287" + ] + } +} diff --git a/api-ref/source/v1/samples/volume-show-response.json b/api-ref/source/v1/samples/volume-show-response.json new file mode 100644 index 00000000000..0118c2fe21e --- /dev/null +++ b/api-ref/source/v1/samples/volume-show-response.json @@ -0,0 +1,27 @@ +{ + "volume": { + "id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", + "display_name": "vol-001", + "display_description": "Another volume.", + "status": "active", + "size": 30, + "volume_type": "289da7f8-6440-407c-9fb4-7db01ec49164", + "metadata": { + "contents": "junk" + }, + "availability_zone": "us-east1", + "bootable": "false", + "snapshot_id": null, + "attachments": [ + { + "attachment_id": "03987cd1-0ad5-40d1-9b2a-7cc48295d4fa", + "id": "47e9ecc5-4045-4ee3-9a4b-d859d546a0cf", + "volume_id": "6c80f8ac-e3e2-480c-8e6e-f1db92fe4bfe", + "server_id": "d1c4788b-9435-42e2-9b81-29f3be1cd01f", + "host_name": "mitaka", + "device": "/" + } + ], + "created_at": "2012-02-14T20:53:07Z" + } +} diff --git a/api-ref/source/v1/samples/volume-type-create-request.json b/api-ref/source/v1/samples/volume-type-create-request.json new file mode 100644 index 00000000000..af7e47f6ba6 --- /dev/null +++ b/api-ref/source/v1/samples/volume-type-create-request.json @@ -0,0 +1,8 @@ +{ + "volume_type": { + "name": "vol-type-001", + "extra_specs": { + "capabilities": "gpu" + } + } +} diff --git a/api-ref/source/v1/samples/volume-type-show-response.json b/api-ref/source/v1/samples/volume-type-show-response.json new file mode 100644 index 00000000000..a91f2e94d63 --- /dev/null +++ b/api-ref/source/v1/samples/volume-type-show-response.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/v1/samples/volume-types-list-response.json b/api-ref/source/v1/samples/volume-types-list-response.json new file mode 100644 index 00000000000..dc4ae504670 --- /dev/null +++ b/api-ref/source/v1/samples/volume-types-list-response.json @@ -0,0 +1,16 @@ +{ + "volume_types": [ + { + "id": "289da7f8-6440-407c-9fb4-7db01ec49164", + "name": "vol-type-001", + "extra_specs": { + "capabilities": "gpu" + } + }, + { + "id": "96c3bda7-c82a-4f50-be73-ca7621794835", + "name": "vol-type-002", + "extra_specs": {} + } + ] +} diff --git a/api-ref/source/v1/samples/volumes-list-response.json b/api-ref/source/v1/samples/volumes-list-response.json new file mode 100644 index 00000000000..0523be7aa06 --- /dev/null +++ b/api-ref/source/v1/samples/volumes-list-response.json @@ -0,0 +1,41 @@ +{ + "volumes": [ + { + "id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", + "display_name": "vol-001", + "display_description": "Another volume.", + "status": "active", + "size": 30, + "volume_type": "289da7f8-6440-407c-9fb4-7db01ec49164", + "metadata": { + "contents": "junk" + }, + "availability_zone": "us-east1", + "snapshot_id": null, + "attachments": [ + { + "attachment_id": "03987cd1-0ad5-40d1-9b2a-7cc48295d4fa", + "id": "47e9ecc5-4045-4ee3-9a4b-d859d546a0cf", + "volume_id": "6c80f8ac-e3e2-480c-8e6e-f1db92fe4bfe", + "server_id": "d1c4788b-9435-42e2-9b81-29f3be1cd01f", + "host_name": "mitaka", + "device": "/" + } + ], + "created_at": "2012-02-14T20:53:07Z" + }, + { + "id": "76b8950a-8594-4e5b-8dce-0dfa9c696358", + "display_name": "vol-002", + "display_description": "Yet another volume.", + "status": "active", + "size": 25, + "volume_type": "96c3bda7-c82a-4f50-be73-ca7621794835", + "metadata": {}, + "availability_zone": "us-east2", + "snapshot_id": null, + "attachments": [], + "created_at": "2012-03-15T19:10:03Z" + } + ] +} diff --git a/api-ref/source/v1/volumes-v1-snapshots.inc b/api-ref/source/v1/volumes-v1-snapshots.inc new file mode 100644 index 00000000000..e246aa98bd7 --- /dev/null +++ b/api-ref/source/v1/volumes-v1-snapshots.inc @@ -0,0 +1,187 @@ +.. -*- rst -*- + +Snapshots +========= + +Creates, lists, shows information for, and deletes snapshots. Shows +and updates snapshot metadata. + + +Show snapshot details (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{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 Example +---------------- + +.. literalinclude:: ./samples/snapshot-show-response.json + :language: javascript + + +Delete snapshot (v1) +~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: DELETE /v1/{tenant_id}/snapshots/{snapshot_id} + +Deletes a snapshot. + +Normal response codes:202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - snapshot_id: snapshot_id + + +List snapshots with details (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/snapshots/detail + +Lists all snapshots, with details. + + +Normal response codes: 200 +Error response codes: + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshots-list-response.json + :language: javascript + + +Create snapshot (v1) +~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: POST /v1/{tenant_id}/snapshots + +Creates a snapshot. + +Normal response codes:201 + +Request +------- + +.. rest_parameters:: parameters.yaml + + - snapshot: snapshot + - tenant_id: tenant_id + +Request Example +--------------- + +.. literalinclude:: ./samples/snapshot-create-request.json + :language: javascript + +List snapshots (v1) +~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/snapshots + +Lists all snapshots. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +Response Example +---------------- + +.. literalinclude:: ./samples/snapshots-list-response.json + :language: javascript + + +Show snapshot metadata (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{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 Example +---------------- + +.. literalinclude:: ./samples/snapshot-metadata-show-response.json + :language: javascript + + +Update snapshot metadata (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: PUT /v1/{tenant_id}/snapshots/{snapshot_id}/metadata + +Updates metadata for a snapshot. + +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 diff --git a/api-ref/source/v1/volumes-v1-types.inc b/api-ref/source/v1/volumes-v1-types.inc new file mode 100644 index 00000000000..2f0cb9ffcf4 --- /dev/null +++ b/api-ref/source/v1/volumes-v1-types.inc @@ -0,0 +1,217 @@ +.. -*- rst -*- + +Volume types +============ + +Lists, creates, updates, shows information for, and deletes volume +types. + + +List volume types (v1) +~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/types + +Lists volume types. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-types-list-response.json + :language: javascript + + +Create volume type (v1) +~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: POST /v1/{tenant_id}/types + +Creates a volume type. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - extra_specs: extra_specs + - name: name + - 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 + + - extra_specs: extra_specs + - name: name + - volume_type: volume_type + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + + +Update volume type (v1) +~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: PUT /v1/{tenant_id}/types/{volume_type_id} + +Updates a volume type. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - extra_specs: extra_specs + - name: name + - volume_type: volume_type + - tenant_id: tenant_id + - volume_type_id: volume_type_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-type-create-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - extra_specs: extra_specs + - name: name + - volume_type: volume_type + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + + +Update extra specs for a volume type (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: PUT /v1/{tenant_id}/types/{volume_type_id} + +Updates the extra specifications for a volume type. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - extra_specs: extra_specs + - name: name + - volume_type: volume_type + - tenant_id: tenant_id + - volume_type_id: volume_type_id + +Request Example +--------------- + +.. literalinclude:: ./samples/volume-type-create-request.json + :language: javascript + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - extra_specs: extra_specs + - name: name + - volume_type: volume_type + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + + +Show volume type details (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/types/{volume_type_id} + +Shows details for a volume type. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - volume_type_id: volume_type_id + + +Response Example +---------------- + +.. literalinclude:: ./samples/volume-type-show-response.json + :language: javascript + + +Delete volume type (v1) +~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: DELETE /v1/{tenant_id}/types/{volume_type_id} + +Deletes a volume type. + +Normal response codes: 202 + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - volume_type_id: volume_type_id diff --git a/api-ref/source/v1/volumes-v1-versions.inc b/api-ref/source/v1/volumes-v1-versions.inc new file mode 100644 index 00000000000..f260a36210c --- /dev/null +++ b/api-ref/source/v1/volumes-v1-versions.inc @@ -0,0 +1,52 @@ +.. -*- rst -*- + +API versions +============ + +Lists information about API versions. + + +Show API v1 details +~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1 + +Shows Block Storage API v1 details. + + +Normal response codes: 200 +Error response codes:203, + + +Request +------- + + +Response Example +---------------- + +.. literalinclude:: ./samples/version-show-response.json + :language: javascript + + +List API versions (v1) +~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET / + +Lists information about all Block Storage API versions. + + +Normal response codes: 300 + + +Request +------- + + + +Response Example +---------------- + +.. literalinclude:: ./samples/versions-list-response.json + :language: javascript diff --git a/api-ref/source/v1/volumes-v1-volumes.inc b/api-ref/source/v1/volumes-v1-volumes.inc new file mode 100644 index 00000000000..520d54f28d7 --- /dev/null +++ b/api-ref/source/v1/volumes-v1-volumes.inc @@ -0,0 +1,233 @@ +.. -*- rst -*- + +Volumes +======= + +The ``snapshot_id`` and ``source_volid`` parameters specify the ID +of the snapshot or volume from which the volume originates. If the +volume was not created from a snapshot or source volume, these +values are null. + + +List volumes, with details (v1) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/volumes/detail + +Lists all volumes, with details. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +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 + - consistencygroup_id: consistencygroup_id + - name: name + - bootable: bootable + - created_at: created_at + - volume_type: volume_type + - volumes: volumes + +Response Example +---------------- + +.. literalinclude:: ./samples/volumes-list-response.json + :language: javascript + + +Create volume (v1) +~~~~~~~~~~~~~~~~~~ + +.. rest_method:: POST /v1/{tenant_id}/volumes + +Creates a volume. + +Normal response codes: 201, + + +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 + + - description: description + - imageRef: imageRef + - multiattach: multiattach + - created_at: created_at + - availability_zone: availability_zone + - source_volid: source_volid + - name: name + - volume: volume + - volume_type: volume_type + - snapshot_id: snapshot_id + - size: size + - metadata: metadata + + +List volumes (v1) +~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/volumes + +Lists all volumes. + + +Normal response codes: 200 +Error response codes: + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + + +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 volume details (v1) +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v1/{tenant_id}/volumes/{volume_id} + +Shows details 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 + + - 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-show-response.json + :language: javascript + +Delete volume (v1) +~~~~~~~~~~~~~~~~~~ + +.. rest_method:: DELETE /v1/{tenant_id}/volumes/{volume_id} + +Deletes a volume. + +Normal response codes: 202, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id + - volume_id: volume_id diff --git a/tox.ini b/tox.ini index d320cf4aba5..6f63f422221 100644 --- a/tox.ini +++ b/tox.ini @@ -96,7 +96,7 @@ commands = python setup.py build_sphinx rm -rf api-ref/build sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html/ - doc8 --ignore D001 --ignore-path .tox --ignore-path cinder.egg-info --ignore-path doc/src/api --ignore-path doc/source/drivers.rst --ignore-path doc/build -e txt -e rst + doc8 --ignore D001 --ignore-path .tox --ignore-path cinder.egg-info --ignore-path doc/src/api --ignore-path doc/source/drivers.rst --ignore-path doc/build --ignore-path .eggs/*/EGG-INFO/*.txt -e txt -e rst whitelist_externals = rm [testenv:gendriverlist]