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]