Adds migrated RST + YAML files from WADL

Contains .inc files which have all the contents of the .rst files
but are grouped together for easier editing.
Contains parameters.yaml, which has all parameters in one file.
Contains request and response samples (JSON and XML) that are
pointed to from the .inc files.

Change-Id: I42d5451300f95774a3ec4df66bc95cb36795844d
This commit is contained in:
Anne Gentle 2016-04-30 23:38:39 -05:00
parent 65f6dc79e5
commit ac4cc65cb5
1277 changed files with 88730 additions and 0 deletions

View File

@ -0,0 +1,305 @@
.. -*- rst -*-
=================
Chassis (chassis)
=================
Chassis operations.
List chassis with details
=========================
.. rest_method:: GET /v1/chassis/detail
Lists all chassis with details.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- limit: limit
- marker: marker
- sort_dir: sort_dir
- sort_key: sort_key
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- uuid: uuid
- chassis: chassis
- description: description
- extra: extra
Response Example
----------------
.. literalinclude:: samples/chassis-list-details-response.json
:language: javascript
Show chassis details
====================
.. rest_method:: GET /v1/chassis/{chassis_id}
Shows details for a chassis.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- uuid: uuid
- chassis: chassis
- description: description
- extra: extra
Response Example
----------------
.. literalinclude:: samples/chassis-show-response.json
:language: javascript
Update chassis
==============
.. rest_method:: PATCH /v1/chassis/{chassis_id}
Updates a chassis.
Normal response codes: 200
Error response codes:413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
- chassis: chassis
- description: description
- extra: extra
Request Example
---------------
.. literalinclude:: samples/chassis-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- description: description
- links: links
- extra: extra
- created_at: created_at
- updated_at: updated_at
- chassis: chassis
- nodes: nodes
- uuid: uuid
Response Example
----------------
.. literalinclude:: samples/chassis-show-response.json
:language: javascript
Delete chassis
==============
.. rest_method:: DELETE /v1/chassis/{chassis_id}
Deletes a chassis.
Error response codes:204,413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
Create chassis
==============
.. rest_method:: POST /v1/chassis
Creates a chassis.
Error response codes:201,413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
- chassis: chassis
- description: description
- extra: extra
Request Example
---------------
.. literalinclude:: samples/chassis-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- description: description
- links: links
- extra: extra
- created_at: created_at
- updated_at: updated_at
- nodes: nodes
- uuid: uuid
List chassis
============
.. rest_method:: GET /v1/chassis
Lists all chassis.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- limit: limit
- marker: marker
- sort_dir: sort_dir
- sort_key: sort_key
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- uuid: uuid
- chassis: chassis
- description: description
- extra: extra
Response Example
----------------
.. literalinclude:: samples/chassis-list-response.json
:language: javascript

View File

@ -0,0 +1,244 @@
.. -*- rst -*-
=================
Drivers (drivers)
=================
Show driver details
===================
.. rest_method:: GET /v1/drivers/{driver_name}
Shows details for a driver.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- driver_name: driver_name
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- hosts: hosts
- name: name
Response Example
----------------
.. literalinclude:: samples/driver-get-response.json
:language: javascript
Show driver properties
======================
.. rest_method:: GET /v1/drivers/{driver_name}/properties
Shows properties for a driver.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- driver_name: driver_name
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- hosts: hosts
- name: name
- links: links
- properties: properties
Response Example
----------------
.. literalinclude:: samples/driver-get-response.json
:language: javascript
List drivers
============
.. rest_method:: GET /v1/drivers
Lists all drivers.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- drivers: drivers
- hosts: hosts
- name: name
Response Example
----------------
.. literalinclude:: samples/drivers-list-response.json
:language: javascript
Show driver logical disk properties
===================================
.. rest_method:: GET /v1/drivers/{driver_name}/raid/logical_disk_properties
Shows logical disk properties for a driver.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- driver_name: driver_name
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- hosts: hosts
- name: name
- links: links
- properties: properties
Response Example
----------------
.. literalinclude:: samples/driver-get-response.json
:language: javascript
Show driver vendor methods
==========================
.. rest_method:: GET /v1/drivers/{driver_name}/vendor_passthru/methods
Shows vendor methods for a driver.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- driver_name: driver_name
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- hosts: hosts
- name: name
- links: links
- properties: properties
Response Example
----------------
.. literalinclude:: samples/driver-get-response.json
:language: javascript

View File

@ -0,0 +1,222 @@
.. -*- rst -*-
=============
Nodes (nodes)
=============
Show node details
=================
.. rest_method:: GET /v1/nodes/{node_id}
Shows details for a node.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- node_id: node_id
- fields: fields
Response Example
----------------
.. literalinclude:: samples/node-show-response.json
:language: javascript
Update node
===========
.. rest_method:: PATCH /v1/nodes/{node_id}
Updates a node.
Normal response codes: 200
Error response codes:413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
- node_id: node_id
Response Example
----------------
.. literalinclude::
:language: javascript
Delete node
===========
.. rest_method:: DELETE /v1/nodes/{node_id}
Deletes a node.
Error response codes:204,413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
- node_id: node_id
List nodes with details
=======================
.. rest_method:: GET /v1/nodes/detail
Lists all nodes with details.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
Response Example
----------------
.. literalinclude:: samples/nodes-list-details-response.json
:language: javascript
Create node
===========
.. rest_method:: POST /v1/nodes
Creates a node.
Error response codes:201,413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
List nodes
==========
.. rest_method:: GET /v1/nodes
Lists all nodes.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
Response Example
----------------
.. literalinclude:: samples/nodes-list-response.json
:language: javascript

View File

@ -0,0 +1,222 @@
.. -*- rst -*-
=============
Ports (ports)
=============
Show port details
=================
.. rest_method:: GET /v1/ports/{port_id}
Shows details for a port.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- port_id: port_id
- fields: fields
Response Example
----------------
.. literalinclude::
:language: javascript
Update port
===========
.. rest_method:: PATCH /v1/ports/{port_id}
Updates a port.
Normal response codes: 200
Error response codes:413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
- port_id: port_id
Response Example
----------------
.. literalinclude::
:language: javascript
Delete port
===========
.. rest_method:: DELETE /v1/ports/{port_id}
Deletes a port.
Error response codes:204,413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
- port_id: port_id
List ports with details
=======================
.. rest_method:: GET /v1/ports/detail
Lists all ports with details.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
Response Example
----------------
.. literalinclude::
:language: javascript
Create port
===========
.. rest_method:: POST /v1/ports
Creates a port.
Error response codes:201,413,415,405,404,403,401,400,503,409,
Request
-------
.. rest_parameters:: parameters.yaml
List ports
==========
.. rest_method:: GET /v1/ports
Lists all ports.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
Response Example
----------------
.. literalinclude::
:language: javascript

View File

@ -0,0 +1,209 @@
# variables in header
{}
# variables in path
driver_name:
description: |
The name of the driver.
in: path
required: false
type: string
node_id:
description: |
The UUID of the node.
in: path
required: false
type: string
port_id:
description: |
The UUID of the port.
in: path
required: false
type: string
# variables in query
fields:
description: |
One or more chassis fields to be returned in the response.
For example, the following request returns only the ``description``
field for each chassis:
::
GET /v1/chassis?fields=description
in: query
required: false
type: array
limit:
description: |
Requests a page size of items. Returns a number
of items up to a limit value. Use the ``limit`` parameter to make
an initial limited request and use the ID of the last-seen item
from the response as the ``marker`` parameter value in a
subsequent limited request.
in: query
required: false
type: integer
marker:
description: |
The ID of the last-seen item. Use the ``limit``
parameter to make an initial limited request and use the ID of the
last-seen item from the response as the ``marker`` parameter value
in a subsequent limited request.
in: query
required: false
type: string
sort_dir:
description: |
Sorts the response by the requested sort
direction. A valid value is ``asc`` (ascending) or ``desc``
(descending). Default is ``asc``. You can specify multiple pairs
of sort key and sort direction query parameters. If you omit the
sort direction in a pair, the API uses the natural sorting
direction of the server attribute that is provided as the
``sort_key``.
in: query
required: false
type: string
sort_key:
description: |
Sorts the response by the this attribute value.
Default is ``id``. You can specify multiple pairs of sort key and
sort direction query parameters. If you omit the sort direction in
a pair, the API uses the natural sorting direction of the server
attribute that is provided as the ``sort_key``.
in: query
required: false
type: string
# variables in body
chassis:
description: |
A ``chassis`` object.
in: body
required: true
type: array
chassis_1:
description: |
A list of chassis objects.
in: body
required: true
type: array
created_at:
description: |
The date and time when the resource was created.
The date and time stamp format is `ISO 8601
<https://en.wikipedia.org/wiki/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: |
A description for the chassis.
in: body
required: false
type: string
description_1:
description: |
A description for the chassis.
in: body
required: true
type: string
drivers:
description: |
A list of ``drivers`` objects.
in: body
required: true
type: array
extra:
description: |
A set of one or more arbitrary metadata key and
value pairs for the chassis.
in: body
required: false
type: object
extra_1:
description: |
A set of zero or more arbitrary metadata key and
value pairs for the chassis.
in: body
required: true
type: object
hosts:
description: |
A list of active hosts that support this driver.
in: body
required: true
type: array
links:
description: |
A list that contains a self link and associated
chassis links.
in: body
required: true
type: array
links_1:
description: |
A list of relative links. Includes the self and
bookmark links.
in: body
required: true
type: array
name:
description: |
The name of the driver.
in: body
required: true
type: string
nodes:
description: |
Links to the collection of nodes contained in
this chassis.
in: body
required: true
type: array
properties:
description: |
A list of links to driver properties.
in: body
required: true
type: array
updated_at:
description: |
The date and time when the resource was updated.
The date and time stamp format is `ISO 8601
<https://en.wikipedia.org/wiki/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
uuid:
description: |
The UUID for the chassis.
in: body
required: true
type: string

View File

@ -0,0 +1,7 @@
{
"chassis": [
{
"description": "Sample chassis"
}
]
}

View File

@ -0,0 +1,18 @@
{
"chassis": [
{
"description": "Sample chassis",
"links": [
{
"href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89",
"rel": "self"
},
{
"href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89",
"rel": "bookmark"
}
],
"uuid": "eaaca217-e7d8-47b4-bb41-3f99f20eed89"
}
]
}

View File

@ -0,0 +1,18 @@
{
"chassis": [
{
"description": "Sample chassis",
"links": [
{
"href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89",
"rel": "self"
},
{
"href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89",
"rel": "bookmark"
}
],
"uuid": "eaaca217-e7d8-47b4-bb41-3f99f20eed89"
}
]
}

View File

@ -0,0 +1,27 @@
{
"created_at": "2000-01-01T12:00:00",
"description": "Sample chassis",
"extra": {},
"links": [
{
"href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89",
"rel": "self"
},
{
"href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89",
"rel": "bookmark"
}
],
"nodes": [
{
"href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89/nodes",
"rel": "self"
},
{
"href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89/nodes",
"rel": "bookmark"
}
],
"updated_at": "2000-01-01T12:00:00",
"uuid": "eaaca217-e7d8-47b4-bb41-3f99f20eed89"
}

View File

@ -0,0 +1,7 @@
{
"chassis": [
{
"description": "Sample chassis"
}
]
}

View File

@ -0,0 +1,6 @@
{
"hosts": [
"fake-host"
],
"name": "sample-driver"
}

View File

@ -0,0 +1,10 @@
{
"drivers": [
{
"hosts": [
"fake-host"
],
"name": "sample-driver"
}
]
}

View File

@ -0,0 +1,63 @@
{
"chassis_uuid": "edcad704-b2da-41d5-96d9-afd580ecfa12",
"clean_step": {},
"console_enabled": false,
"created_at": "2000-01-01T12:00:00",
"driver": "fake",
"driver_info": {},
"driver_internal_info": {},
"extra": {},
"inspection_finished_at": null,
"inspection_started_at": "2000-01-01T12:00:00",
"instance_info": {},
"instance_uuid": "dcf1fbc5-93fc-4596-9395-b80572f6267b",
"last_error": null,
"links": [
{
"href": "http://localhost:6385/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123",
"rel": "self"
},
{
"href": "http://localhost:6385/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123",
"rel": "bookmark"
}
],
"maintenance": false,
"maintenance_reason": null,
"name": "database16-dc02",
"ports": [
{
"href": "http://localhost:6385/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports",
"rel": "self"
},
{
"href": "http://localhost:6385/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports",
"rel": "bookmark"
}
],
"power_state": "power on",
"properties": {
"cpus": "1",
"local_gb": "10",
"memory_mb": "1024"
},
"provision_state": "active",
"provision_updated_at": "2000-01-01T12:00:00",
"raid_config": null,
"reservation": null,
"states": [
{
"href": "http://localhost:6385/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states",
"rel": "self"
},
{
"href": "http://localhost:6385/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states",
"rel": "bookmark"
}
],
"target_power_state": null,
"target_provision_state": null,
"target_raid_config": null,
"updated_at": "2000-01-01T12:00:00",
"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"
}

View File

@ -0,0 +1,11 @@
{
"console_enabled": false,
"last_error": null,
"power_state": "power on",
"provision_state": null,
"provision_updated_at": null,
"raid_config": null,
"target_power_state": "power on",
"target_provision_state": "active",
"target_raid_config": null
}

View File

@ -0,0 +1,64 @@
{
"nodes": [
{
"chassis_uuid": "633f9f21-5bd5-4166-b811-1eb01490c4ab",
"clean_step": {},
"console_enabled": false,
"created_at": "2016-04-23T10:52:43+00:00",
"driver": "pxe_ssh",
"driver_info": {
"deploy_kernel": "aadebece-ce44-4cf6-a9e8-545f0e8ac9f3",
"deploy_ramdisk": "cfe6f9ce-b2e6-4a7a-9246-0cc7eeb89a71",
"ssh_address": "localhost",
"ssh_key_filename": "/opt/stack/data/ironic/ssh_keys/ironic_key",
"ssh_port": 22,
"ssh_username": "ubuntu",
"ssh_virt_type": "virsh"
},
"driver_internal_info": {},
"extra": {},
"inspection_finished_at": null,
"inspection_started_at": null,
"instance_info": {},
"instance_uuid": null,
"last_error": null,
"links": [
{
"href": "http://localhost:6385/v1/nodes/277c9fe9-a385-4e45-9399-660f3287e48c",
"rel": "self"
},
{
"href": "http://localhost:6385/nodes/277c9fe9-a385-4e45-9399-660f3287e48c",
"rel": "bookmark"
}
],
"maintenance": false,
"maintenance_reason": null,
"name": "node-0",
"ports": [
{
"href": "http://localhost:6385/v1/nodes/277c9fe9-a385-4e45-9399-660f3287e48c/ports",
"rel": "self"
},
{
"href": "http://localhost:6385/nodes/277c9fe9-a385-4e45-9399-660f3287e48c/ports",
"rel": "bookmark"
}
],
"power_state": "power off",
"properties": {
"cpu_arch": "x86_64",
"cpus": 1,
"local_gb": 10,
"memory_mb": 1024
},
"provision_state": "available",
"provision_updated_at": null,
"reservation": null,
"target_power_state": null,
"target_provision_state": null,
"updated_at": "2016-04-23T10:53:37+00:00",
"uuid": "277c9fe9-a385-4e45-9399-660f3287e48c"
}
]
}

View File

@ -0,0 +1,22 @@
{
"nodes": [
{
"instance_uuid": "dcf1fbc5-93fc-4596-9395-b80572f6267b",
"links": [
{
"href": "http://localhost:6385/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123",
"rel": "self"
},
{
"href": "http://localhost:6385/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123",
"rel": "bookmark"
}
],
"maintenance": false,
"name": "database16-dc02",
"power_state": "power on",
"provision_state": "active",
"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"
}
]
}

View File

@ -0,0 +1,438 @@
.. -*- 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
===========================
.. rest_method:: GET /v1/{tenant_id}/os-quota-sets/{tenant_id}/detail/{user_id}
Shows details for quotas for a tenant and user.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- user_id: user_id
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/os-user-quotas/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/os-quota-sets/quotas-defaults-show-response.json
:language: javascript
Show quotas
===========
.. rest_method:: GET /v1/{tenant_id}/os-quota-sets/{tenant_id}
Shows quotas for a tenant.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- 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/os-quota-sets/quotas-show-response.json
:language: javascript
Update quotas
=============
.. rest_method:: PUT /v1/{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
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/os-quota-sets/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/os-quota-sets/quotas-update-response.json
:language: javascript
Delete quotas
=============
.. rest_method:: DELETE /v1/{tenant_id}/os-quota-sets/{tenant_id}
Deletes quotas for a tenant so the quotas revert to default values.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
Response Example
----------------
.. literalinclude::
:language: javascript
Show quotas for user
====================
.. rest_method:: GET /v1/{tenant_id}/os-quota-sets/{tenant_id}/{user_id}
Enables an admin user to show quotas for a tenant and user.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- user_id: user_id
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/os-user-quotas/user-quotas-show-response.json
:language: javascript
Update quotas for user
======================
.. rest_method:: POST /v1/{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
- tenant_id: tenant_id
- user_id: user_id
Request Example
---------------
.. literalinclude:: ../samples/os-user-quotas/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/os-user-quotas/user-quotas-update-response.json
:language: javascript
Delete quotas for user
======================
.. rest_method:: DELETE /v1/{tenant_id}/os-quota-sets/{tenant_id}/{user_id}
Deletes quotas for a user so that the quotas revert to default values.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- user_id: user_id
Response Example
----------------
.. literalinclude::
:language: javascript

View File

@ -0,0 +1,638 @@
# variables in header
{}
# variables in path
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
<https://en.wikipedia.org/wiki/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
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
scheduler_hints:
description: |
The dictionary of data to send to the scheduler.
in: body
required: false
type: object
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
<https://en.wikipedia.org/wiki/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
<http://docs.openstack.org/admin-
guide/blockstorage_multi_backend.html>`_.
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 <http://docs.openstack.org/admin-
guide/blockstorage_multi_backend.html>`_.
in: body
required: true
type: string
volumes:
description: |
A list of ``volume`` objects.
in: body
required: true
type: array

View File

@ -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
}
}

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<quota_set id="fake_tenant">
<cores>20</cores>
<fixed_ips>-1</fixed_ips>
<floating_ips>10</floating_ips>
<injected_file_content_bytes>10240</injected_file_content_bytes>
<injected_file_path_bytes>255</injected_file_path_bytes>
<injected_files>5</injected_files>
<instances>10</instances>
<key_pairs>100</key_pairs>
<metadata_items>128</metadata_items>
<ram>51200</ram>
<security_group_rules>20</security_group_rules>
<security_groups>10</security_groups>
</quota_set>

View File

@ -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
}
}

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<quota_set id="fake_tenant">
<cores>20</cores>
<fixed_ips>-1</fixed_ips>
<floating_ips>10</floating_ips>
<injected_file_content_bytes>10240</injected_file_content_bytes>
<injected_file_path_bytes>255</injected_file_path_bytes>
<injected_files>5</injected_files>
<instances>10</instances>
<key_pairs>100</key_pairs>
<metadata_items>128</metadata_items>
<ram>51200</ram>
<security_group_rules>20</security_group_rules>
<security_groups>10</security_groups>
</quota_set>

View File

@ -0,0 +1,5 @@
{
"quota_set": {
"security_groups": 45
}
}

View File

@ -0,0 +1,4 @@
<?xml version='1.0' encoding='UTF-8'?>
<quota_set id="fake_tenant">
<security_groups>45</security_groups>
</quota_set>

View File

@ -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
}
}

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<quota_set>
<cores>20</cores>
<fixed_ips>-1</fixed_ips>
<floating_ips>10</floating_ips>
<injected_file_content_bytes>10240</injected_file_content_bytes>
<injected_file_path_bytes>255</injected_file_path_bytes>
<injected_files>5</injected_files>
<instances>10</instances>
<key_pairs>100</key_pairs>
<metadata_items>128</metadata_items>
<ram>51200</ram>
<security_group_rules>20</security_group_rules>
<security_groups>45</security_groups>
</quota_set>

View File

@ -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
}
}
}

View File

@ -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
}
}

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<quota_set id="fake_tenant">
<cores>20</cores>
<fixed_ips>-1</fixed_ips>
<floating_ips>10</floating_ips>
<injected_file_content_bytes>10240</injected_file_content_bytes>
<injected_file_path_bytes>255</injected_file_path_bytes>
<injected_files>5</injected_files>
<instances>10</instances>
<key_pairs>100</key_pairs>
<metadata_items>128</metadata_items>
<ram>51200</ram>
<security_group_rules>20</security_group_rules>
<security_groups>10</security_groups>
</quota_set>

View File

@ -0,0 +1,6 @@
{
"quota_set": {
"force": true,
"instances": 9
}
}

View File

@ -0,0 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<quota_set id="fake_tenant">
<force>true</force>
<instances>9</instances>
</quota_set>

View File

@ -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
}
}

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<quota_set>
<cores>20</cores>
<floating_ips>10</floating_ips>
<fixed_ips>-1</fixed_ips>
<injected_file_content_bytes>10240</injected_file_content_bytes>
<injected_file_path_bytes>255</injected_file_path_bytes>
<injected_files>5</injected_files>
<instances>9</instances>
<key_pairs>100</key_pairs>
<metadata_items>128</metadata_items>
<ram>51200</ram>
<security_group_rules>20</security_group_rules>
<security_groups>10</security_groups>
</quota_set>

View File

@ -0,0 +1,8 @@
{
"snapshot": {
"display_name": "snap-001",
"display_description": "Daily backup",
"volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
"force": true
}
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<snapshot xmlns="http://docs.openstack.org/volume/api/v1"
name="snap-001" display_name="snap-001"
display_description="Daily backup"
volume_id="521752a6-acf6-4b2d-bc7a-119f9148cd8c"
force="true"/>

View File

@ -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"
}
}

View File

@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<snapshot
xmlns:os-extended-snapshot-attributes="http://docs.openstack.org/volume/ext/extended_snapshot_attributes/api/v1"
status="available" description="None"
created_at="2014-05-06 17:59:52"
volume_id="ebd80b99-bc3d-4154-9d28-5583baa80580" size="10"
id="dfcd17fe-3b64-44ba-b95f-1c9c7109ef95" name="my-snapshot"
os-extended-snapshot-attributes:project_id="7e0105e19cd2466193729ef78b604f79"
os-extended-snapshot-attributes:progress="0%">
<metadata>
<meta key="key">v1</meta>
</metadata>
</snapshot>

View File

@ -0,0 +1,5 @@
{
"metadata": {
"key": "v1"
}
}

View File

@ -0,0 +1,4 @@
<?xml version='1.0' encoding='UTF-8'?>
<metadata>
<meta key="key">v1</meta>
</metadata>

View File

@ -0,0 +1,5 @@
{
"metadata": {
"key": "v1"
}
}

View File

@ -0,0 +1,4 @@
<?xml version='1.0' encoding='UTF-8'?>
<metadata xmlns="http://docs.openstack.org/compute/api/v1.1">
<meta key="key">v1</meta>
</metadata>

View File

@ -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"
}
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<snapshot xmlns="http://docs.openstack.org/volume/api/v1"
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" />

View File

@ -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": {}
}
]
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<snapshots xmlns="http://docs.openstack.org/volume/api/v1">
<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">
<metadata>
<meta key="contents">junk</meta>
</metadata>
</snapshot>
<snapshot 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" />
</snapshots>

View File

@ -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"
}
}

View File

@ -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"
}
]
}

View File

@ -0,0 +1,12 @@
{
"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"
}
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<volume xmlns="http://docs.openstack.org/volume/api/v1"
display_name="vol-001"
display_description="Another volume."
size="30"
volume_type="289da7f8-6440-407c-9fb4-7db01ec49164"
availability_zone="us-east1">
<metadata>
<meta key="contents">junk</meta>
</metadata>
</volume>

View File

@ -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"
}
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<volume xmlns="http://docs.openstack.org/volume/api/v1"
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"
availability_zone="us-east1"
bootable="false"
created_at="2012-02-14T20:53:07Z">
<metadata>
<meta key="contents">junk</meta>
</metadata>
</volume>

View File

@ -0,0 +1,8 @@
{
"volume_type": {
"name": "vol-type-001",
"extra_specs": {
"capabilities": "gpu"
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<volume_type xmlns="http://docs.openstack.org/volume/api/v1"
name="vol-type-001">
<extra_specs>
<extra_spec key="capabilities">gpu</extra_spec>
</extra_specs>
</volume_type>

View File

@ -0,0 +1,9 @@
{
"volume_type": {
"id": "289da7f8-6440-407c-9fb4-7db01ec49164",
"name": "vol-type-001",
"extra_specs": {
"capabilities": "gpu"
}
}
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<volume_type xmlns="http://docs.openstack.org/volume/api/v1"
id="289da7f8-6440-407c-9fb4-7db01ec49164"
name="vol-type-001">
<extra_specs>
<extra_spec key="capabilities">gpu</extra_spec>
</extra_specs>
</volume_type>

View File

@ -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": {}
}
]
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<volume_types xmlns="http://docs.openstack.org/volume/api/v1">
<volume_type id="289da7f8-6440-407c-9fb4-7db01ec49164"
name="vol-type-001">
<extra_specs>
<extra_spec key="capabilities">gpu</extra_spec>
</extra_specs>
</volume_type>
<volume_type id="96c3bda7-c82a-4f50-be73-ca7621794835"
name="vol-type-002" />
</volume_types>

View File

@ -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"
}
]
}

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<volumes xmlns="http://docs.openstack.org/volume/api/v1">
<volume xmlns="http://docs.openstack.org/volume/api/v1"
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"
availability_zone="us-east1"
created_at="2012-02-14T20:53:07Z">
<metadata>
<meta key="contents">junk</meta>
</metadata>
</volume>
<volume xmlns="http://docs.openstack.org/volume/api/v1"
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"
availability_zone="us-east2"
created_at="2012-03-15T19:10:03Z" />
</volumes>

View File

@ -0,0 +1,228 @@
.. -*- rst -*-
=========
Snapshots
=========
Creates, lists, shows information for, and deletes snapshots. Shows
and updates snapshot metadata.
Show snapshot details
=====================
.. 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/volumes/snapshot-show-response.json
:language: javascript
Delete snapshot
===============
.. rest_method:: DELETE /v1/{tenant_id}/snapshots/{snapshot_id}
Deletes a snapshot.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- snapshot_id: snapshot_id
List snapshots with details
===========================
.. 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/volumes/snapshots-list-response.json
:language: javascript
Create snapshot
===============
.. rest_method:: POST /v1/{tenant_id}/snapshots
Creates a snapshot.
Error response codes:201,
Request
-------
.. rest_parameters:: parameters.yaml
- snapshot: snapshot
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/volumes/snapshot-create-request.json
:language: javascript
List snapshots
==============
.. 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/volumes/snapshots-list-response.json
:language: javascript
Show snapshot metadata
======================
.. 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/volumes/snapshot-metadata-show-response.json
:language: javascript
Update snapshot metadata
========================
.. 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/volumes/snapshot-metadata-update-request.json
:language: javascript
Response Example
----------------
.. literalinclude:: ../samples/volumes/snapshot-metadata-update-response.json
:language: javascript

View File

@ -0,0 +1,247 @@
.. -*- rst -*-
============
Volume types
============
Lists, creates, updates, shows information for, and deletes volume
types.
List volume types
=================
.. 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/volumes/volume-types-list-response.json
:language: javascript
Create volume type
==================
.. 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/volumes/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/volumes/volume-type-show-response.json
:language: javascript
Update volume type
==================
.. 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/volumes/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/volumes/volume-type-show-response.json
:language: javascript
Update extra specs for a volume type
====================================
.. 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/volumes/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/volumes/volume-type-show-response.json
:language: javascript
Show volume type details
========================
.. 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/volumes/volume-type-show-response.json
:language: javascript
Delete volume type
==================
.. rest_method:: DELETE /v1/{tenant_id}/types/{volume_type_id}
Deletes a volume type.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- volume_type_id: volume_type_id

View File

@ -0,0 +1,70 @@
.. -*- 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
-------
.. rest_parameters:: parameters.yaml
Response Example
----------------
.. literalinclude:: ../samples/volumes/version-show-response.json
:language: javascript
List API versions
=================
.. rest_method:: GET /
Lists information about all Block Storage API versions.
Normal response codes: 200
Error response codes:300,
Request
-------
.. rest_parameters:: parameters.yaml
Response Example
----------------
.. literalinclude:: ../samples/volumes/versions-list-response.json
:language: javascript

View File

@ -0,0 +1,255 @@
.. -*- 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
==========================
.. 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/volumes-list-response.json
:language: javascript
Create volume
=============
.. rest_method:: POST /v1/{tenant_id}/volumes
Creates a volume.
Error 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
- scheduler_hints: scheduler_hints
- source_replica: source_replica
- metadata: metadata
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/volumes/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
============
.. 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/volumes-list-response.json
:language: javascript
Show volume details
===================
.. 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/volumes/volume-show-response.json
:language: javascript
Delete volume
=============
.. rest_method:: DELETE /v1/{tenant_id}/volumes/{volume_id}
Deletes a volume.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- volume_id: volume_id

View File

@ -0,0 +1,55 @@
.. -*- rst -*-
=================================================
Capabilities for storage back ends (capabilities)
=================================================
Shows capabilities for a storage back end.
Show back-end capabilities
==========================
.. rest_method:: GET /v2/{tenant_id}/capabilities/{hostname}
Shows capabilities for a storage back end.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- hostname: hostname
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- pool_name: pool_name
- description: description
- volume_backend_name: volume_backend_name
- namespace: namespace
- visibility: visibility
- driver_version: driver_version
- vendor_name: vendor_name
- properties: properties
- storage_protocol: storage_protocol
Response Example
----------------
.. literalinclude:: ../samples/capabilities/backend-capabilities-response.json
:language: javascript

View File

@ -0,0 +1,289 @@
.. -*- rst -*-
==================
Consistency groups
==================
Consistency groups enable you to create snapshots at the exact same
point in time from multiple volumes. For example, a database might
place its tables, logs, and configuration on separate volumes. To
restore this database from a previous point in time, it makes sense
to restore the logs, tables, and configuration together from the
exact same point in time.
Use the ``policy.json`` file to grant permissions for these actions
to limit roles.
List consistency groups
=======================
.. rest_method:: GET /v2/{tenant_id}/consistencygroups
Lists consistency groups.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- sort_key: sort_key
- sort_dir: sort_dir
- limit: limit
- marker: marker
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: id
- name: name
Response Example
----------------
.. literalinclude:: ../samples/consistencygroups/consistency-groups-list-response.json
:language: javascript
Create consistency group
========================
.. rest_method:: POST /v2/{tenant_id}/consistencygroups
Creates a consistency group.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- status: status
- user_id: user_id
- description: description
- availability_zone: availability_zone
- volume_types: volume_types
- project_id: project_id
- name: name
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/consistencygroups/consistency-group-create-request.json
:language: javascript
Show consistency group details
==============================
.. rest_method:: GET /v2/{tenant_id}/consistencygroups/{consistencygroup_id}
Shows details for a consistency group.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- consistencygroup_id: consistencygroup_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status
- description: description
- availability_zone: availability_zone
- created_at: created_at
- volume_types: volume_types
- id: id
- name: name
Response Example
----------------
.. literalinclude:: ../samples/consistencygroups/consistency-group-show-response.json
:language: javascript
Create consistency group from source
====================================
.. rest_method:: POST /v2/{tenant_id}/consistencygroups/create_from_src
Creates a consistency group from source.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- status: status
- user_id: user_id
- description: description
- cgsnapshot_id: cgsnapshot_id
- source_cgid: source_cgid
- project_id: project_id
- name: name
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/consistencygroups/consistency-group-create-from-src-request.json
:language: javascript
Delete consistency group
========================
.. rest_method:: POST /v2/{tenant_id}/consistencygroups/{consistencygroup_id}/delete
Deletes a consistency group.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- force: force
- tenant_id: tenant_id
- consistencygroup_id: consistencygroup_id
Request Example
---------------
.. literalinclude:: ../samples/consistencygroups/consistency-group-delete-request.json
:language: javascript
List consistency groups with details
====================================
.. rest_method:: GET /v2/{tenant_id}/consistencygroups/detail
Lists consistency groups with details.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- sort_key: sort_key
- sort_dir: sort_dir
- limit: limit
- marker: marker
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status
- description: description
- availability_zone: availability_zone
- created_at: created_at
- volume_types: volume_types
- id: id
- name: name
Response Example
----------------
.. literalinclude:: ../samples/consistencygroups/consistency-groups-list-detailed-response.json
:language: javascript
Update consistency group
========================
.. rest_method:: PUT /v2/{tenant_id}/consistencygroups/{consistencygroup_id}/update
Updates a consistency group.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- remove_volumes: remove_volumes
- description: description
- add_volumes: add_volumes
- name: name
- tenant_id: tenant_id
- consistencygroup_id: consistencygroup_id
Request Example
---------------
.. literalinclude:: ../samples/consistencygroups/consistency-group-update-request.json
:language: javascript

View File

@ -0,0 +1,46 @@
.. -*- rst -*-
================================
Backup actions (backups, action)
================================
Force-deletes a backup.
Force-delete backup
===================
.. rest_method:: POST /v2/{tenant_id}/backups/{backup_id}/action
Force-deletes a backup. Specify the ``os-force_delete`` action in the request body.
This operations deletes the backup and any backup data.
The backup driver returns the ``405`` status code if it does not
support this operation.
Error response codes:404,405,202,
Request
-------
.. rest_parameters:: parameters.yaml
- os-force_delete: os-force_delete
- tenant_id: tenant_id
- backup_id: backup_id
Request Example
---------------
.. literalinclude:: ../samples/backups/backup-force-delete-request.json
:language: javascript

View File

@ -0,0 +1,310 @@
.. -*- rst -*-
=================
Backups (backups)
=================
A backup is a full copy of a volume stored in an external service.
The service can be configured. The only supported service is Object
Storage. A backup can subsequently be restored from the external
service to either the same volume that the backup was originally
taken from or to a new volume. Backup and restore operations can
only be carried out on volumes that are in an unattached and
available state.
When you create, list, or delete backups, these status values are
possible:
**Backup statuses**
+-----------------+---------------------------------------------+
| Status | Description |
+-----------------+---------------------------------------------+
| creating | The backup is being created. |
+-----------------+---------------------------------------------+
| available | The backup is ready to restore to a volume. |
+-----------------+---------------------------------------------+
| deleting | The backup is being deleted. |
+-----------------+---------------------------------------------+
| error | A backup error occurred. |
+-----------------+---------------------------------------------+
| restoring | The backup is being restored to a volume. |
+-----------------+---------------------------------------------+
| error_restoring | A backup restoration error occurred. |
+-----------------+---------------------------------------------+
If an error occurs, you can find more information about the error
in the ``fail_reason`` field for the backup.
List backups with details
=========================
.. rest_method:: GET /v2/{tenant_id}/backups/detail
Lists Block Storage backups, with details, to which the tenant has access.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- sort_key: sort_key
- sort_dir: sort_dir
- limit: limit
- marker: marker
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status
- object_count: object_count
- fail_reason: fail_reason
- description: description
- links: links
- availability_zone: availability_zone
- created_at: created_at
- updated_at: updated_at
- name: name
- has_dependent_backups: has_dependent_backups
- volume_id: volume_id
- container: container
- backups: backups
- size: size
- id: id
- is_incremental: is_incremental
Response Example
----------------
.. literalinclude:: ../samples/backups/backups-list-detailed-response.json
:language: javascript
Show backup details
===================
.. rest_method:: GET /v2/{tenant_id}/backups/{backup_id}
Shows details for a backup.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- backup_id: backup_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status
- object_count: object_count
- container: container
- description: description
- links: links
- availability_zone: availability_zone
- created_at: created_at
- updated_at: updated_at
- name: name
- has_dependent_backups: has_dependent_backups
- volume_id: volume_id
- fail_reason: fail_reason
- size: size
- backup: backup
- id: id
- is_incremental: is_incremental
Response Example
----------------
.. literalinclude:: ../samples/backups/backup-show-response.json
:language: javascript
Delete backup
=============
.. rest_method:: DELETE /v2/{tenant_id}/backups/{backup_id}
Deletes a backup.
Error response codes:204,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- backup_id: backup_id
Restore backup
==============
.. rest_method:: POST /v2/{tenant_id}/backups/{backup_id}/restore
Restores a Block Storage backup to an existing or new Block Storage volume.
You must specify either the UUID or name of the volume. If you
specify both the UUID and name, the UUID takes priority.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- restore: restore
- name: name
- volume_id: volume_id
- tenant_id: tenant_id
- backup_id: backup_id
Request Example
---------------
.. literalinclude:: ../samples/backups/backup-restore-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- restore: restore
- backup_id: backup_id
- volume_id: volume_id
Create backup
=============
.. rest_method:: POST /v2/{tenant_id}/backups
Creates a Block Storage backup from a volume.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- container: container
- description: description
- incremental: incremental
- volume_id: volume_id
- force: force
- backup: backup
- name: name
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/backups/backup-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- backup: backup
- id: id
- links: links
- name: name
List backups
============
.. rest_method:: GET /v2/{tenant_id}/backups
Lists Block Storage backups to which the tenant has access.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- sort_key: sort_key
- sort_dir: sort_dir
- limit: limit
- marker: marker
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- backups: backups
- id: id
- links: links
- name: name
Response Example
----------------
.. literalinclude:: ../samples/backups/backups-list-response.json
:language: javascript

View File

@ -0,0 +1,65 @@
.. -*- rst -*-
===============
Limits (limits)
===============
Shows absolute limits for a tenant.
An absolute limit value of ``-1`` indicates that the absolute limit
for the item is infinite.
Show absolute limits
====================
.. rest_method:: GET /v2/{tenant_id}/limits
Shows absolute limits for a tenant.
An absolute limit value of ``-1`` indicates that the absolute limit
for the item is infinite.
Normal response codes: 200
Error response codes:203,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- totalSnapshotsUsed: totalSnapshotsUsed
- maxTotalBackups: maxTotalBackups
- maxTotalVolumeGigabytes: maxTotalVolumeGigabytes
- limits: limits
- maxTotalSnapshots: maxTotalSnapshots
- maxTotalBackupGigabytes: maxTotalBackupGigabytes
- totalBackupGigabytesUsed: totalBackupGigabytesUsed
- maxTotalVolumes: maxTotalVolumes
- totalVolumesUsed: totalVolumesUsed
- rate: rate
- totalBackupsUsed: totalBackupsUsed
- totalGigabytesUsed: totalGigabytesUsed
- absolute: absolute
Response Example
----------------
.. literalinclude:: ../samples/limits/limits-show-response.json
:language: javascript

View File

@ -0,0 +1,200 @@
.. -*- rst -*-
===========================
Consistency group snapshots
===========================
Lists all, lists all with details, shows details for, creates, and
deletes consistency group snapshots.
Delete consistency group snapshot
=================================
.. rest_method:: DELETE /v2/{tenant_id}/cgsnapshots/{cgsnapshot_id}
Deletes a consistency group snapshot.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- cgsnapshot_id: cgsnapshot_id
Show consistency group snapshot details
=======================================
.. rest_method:: GET /v2/{tenant_id}/cgsnapshots/{cgsnapshot_id}
Shows details for a consistency group snapshot.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- cgsnapshot_id: cgsnapshot_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status
- description: description
- created_at: created_at
- consistencygroup_id: consistencygroup_id
- id: id
- name: name
Response Example
----------------
.. literalinclude:: ../samples/cgsnapshots/cgsnapshots-show-response.json
:language: javascript
List consistency group snapshots with details
=============================================
.. rest_method:: GET /v2/{tenant_id}/cgsnapshots/detail
Lists all consistency group snapshots with details.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status
- description: description
- created_at: created_at
- consistencygroup_id: consistencygroup_id
- id: id
- name: name
Response Example
----------------
.. literalinclude:: ../samples/cgsnapshots/cgsnapshots-list-detailed-response.json
:language: javascript
List consistency group snapshots
================================
.. rest_method:: GET /v2/{tenant_id}/cgsnapshots
Lists all consistency group snapshots.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: id
- name: name
Response Example
----------------
.. literalinclude:: ../samples/cgsnapshots/cgsnapshots-list-response.json
:language: javascript
Create consistency group snapshot
=================================
.. rest_method:: POST /v2/{tenant_id}/cgsnapshots
Creates a consistency group snapshot.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- name: name
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/cgsnapshots/cgsnapshots-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status
- description: description
- created_at: created_at
- consistencygroup_id: consistencygroup_id
- id: id
- name: name

View File

@ -0,0 +1,52 @@
.. -*- rst -*-
===================================================
Volume image metadata extension (os-vol-image-meta)
===================================================
Shows image metadata that is associated with a volume.
Show image metadata for volume
==============================
.. rest_method:: GET /v2/{tenant_id}/os-vol-image-meta
Shows image metadata for a volume.
When the request is made, the caller must specify a reference to an
existing storage volume in the ``ref`` element. Each storage driver
may interpret the existing storage volume reference differently but
should accept a reference structure containing either a ``source-
volume-id`` or ``source-volume-name`` element, if possible.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- description: description
- availability_zone: availability_zone
- bootable: bootable
- volume_type: volume_type
- name: name
- volume: volume
- host: host
- ref: ref
- metadata: metadata
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/os-vol-image-meta/image-metadata-show-request.json
:language: javascript

View File

@ -0,0 +1,57 @@
.. -*- rst -*-
======================
Back-end storage pools
======================
Administrator only. Lists all back-end storage pools that are known
to the scheduler service.
List back-end storage pools
===========================
.. rest_method:: GET /v2/{tenant_id}/scheduler-stats/get_pools
Lists all back-end storage pools.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- detail: detail
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- updated: updated
- QoS_support: QoS_support
- name: name
- total_capacity: total_capacity
- volume_backend_name: volume_backend_name
- capabilities: capabilities
- free_capacity: free_capacity
- driver_version: driver_version
- reserved_percentage: reserved_percentage
- storage_protocol: storage_protocol
Response Example
----------------
.. literalinclude:: ../samples/scheduler-stats/pools-list-detailed-response.json
:language: javascript

View File

@ -0,0 +1,241 @@
.. -*- rst -*-
===============
Volume transfer
===============
Transfers a volume from one user to another user.
Accept volume transfer
======================
.. rest_method:: POST /v2/{tenant_id}/os-volume-transfer/{transfer_id}/accept
Accepts a volume transfer.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- auth_key: auth_key
- transfer_id: transfer_id
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/os-volume-transfer/volume-transfer-accept-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- volume_id: volume_id
- id: id
- links: links
- name: name
Create volume transfer
======================
.. rest_method:: POST /v2/{tenant_id}/os-volume-transfer
Creates a volume transfer.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- name: name
- volume_id: volume_id
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/os-volume-transfer/volume-transfer-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- auth_key: auth_key
- links: links
- created_at: created_at
- volume_id: volume_id
- id: id
- name: name
List volume transfers
=====================
.. rest_method:: GET /v2/{tenant_id}/os-volume-transfer
Lists volume transfers.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- volume_id: volume_id
- id: id
- links: links
- name: name
Response Example
----------------
.. literalinclude:: ../samples/os-volume-transfer/volume-transfers-list-response.json
:language: javascript
Show volume transfer details
============================
.. rest_method:: GET /v2/{tenant_id}/os-volume-transfer/{transfer_id}
Shows details for a volume transfer.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- transfer_id: transfer_id
- tenant_id: tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- created_at: created_at
- volume_id: volume_id
- id: id
- links: links
- name: name
Response Example
----------------
.. literalinclude:: ../samples/os-volume-transfer/volume-transfer-show-response.json
:language: javascript
Delete volume transfer
======================
.. rest_method:: DELETE /v2/{tenant_id}/os-volume-transfer/{transfer_id}
Deletes a volume transfer.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- transfer_id: transfer_id
- tenant_id: tenant_id
List volume transfers, with details
===================================
.. rest_method:: GET /v2/{tenant_id}/os-volume-transfer/detail
Lists volume transfers, with details.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- created_at: created_at
- volume_id: volume_id
- id: id
- links: links
- name: name
Response Example
----------------
.. literalinclude:: ../samples/os-volume-transfer/volume-transfers-list-detailed-response.json
:language: javascript

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,362 @@
.. -*- rst -*-
===================================================
Quality of service (QoS) specifications (qos-specs)
===================================================
Administrators only, depending on policy settings.
Creates, lists, shows details for, associates, disassociates, sets
keys, unsets keys, and deletes quality of service (QoS)
specifications.
Disassociate QoS specification from all associations
====================================================
.. rest_method:: GET /v2/{tenant_id}/qos-specs/{qos_id}/disassociate_all
Disassociates a QoS specification from all associations.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- qos_id: qos_id
Unset keys in QoS specification
===============================
.. rest_method:: PUT /v2/{tenant_id}/qos-specs/{qos_id}/delete_keys
Unsets keys in a QoS specification.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- keys: keys
- tenant_id: tenant_id
- qos_id: qos_id
Request Example
---------------
.. literalinclude:: ../samples/qos-specs/qos-unset-request.json
:language: javascript
Response Example
----------------
.. literalinclude::
:language: javascript
Get all associations for QoS specification
==========================================
.. rest_method:: GET /v2/{tenant_id}/qos-specs/{qos_id}/associations
Lists all associations for a QoS specification.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- qos_id: qos_id
Response Example
----------------
.. literalinclude:: ../samples/qos-specs/qos-show-response.json
:language: javascript
Associate QoS specification with volume type
============================================
.. rest_method:: GET /v2/{tenant_id}/qos-specs/{qos_id}/associate
Associates a QoS specification with a volume type.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- qos_id: qos_id
Disassociate QoS specification from volume type
===============================================
.. rest_method:: GET /v2/{tenant_id}/qos-specs/{qos_id}/disassociate
Disassociates a QoS specification from a volume type.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- qos_id: qos_id
Show QoS specification details
==============================
.. rest_method:: GET /v2/{tenant_id}/qos-specs/{qos_id}
Shows details for a QoS specification.
Normal response codes: 200
Error response codes:413,405,404,403,401,400,503,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- qos_id: qos_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- name: name
- links: links
- id: id
- qos_specs: qos_specs
- consumer: consumer
- specs: specs
Response Example
----------------
.. literalinclude:: ../samples/qos-specs/qos-show-response.json
:language: javascript
Set keys in QoS specification
=============================
.. rest_method:: PUT /v2/{tenant_id}/qos-specs/{qos_id}
Sets keys in a QoS specification.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- qos_specs: qos_specs
- specs: specs
- tenant_id: tenant_id
- qos_id: qos_id
Request Example
---------------
.. literalinclude:: ../samples/qos-specs/qos-update-request.json
:language: javascript
Response Example
----------------
.. literalinclude:: ../samples/qos-specs/qos-update-response.json
:language: javascript
Delete QoS specification
========================
.. rest_method:: DELETE /v2/{tenant_id}/qos-specs/{qos_id}
Deletes a QoS specification.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- qos_id: qos_id
- force: force
Create QoS specification
========================
.. rest_method:: POST /v2/{tenant_id}/qos-specs
Creates a QoS specification.
Specify one or more key and value pairs in the request body.
Error response codes:202,
Request
-------
.. rest_parameters:: parameters.yaml
- qos_specs: qos_specs
- consumer: consumer
- name: name
- tenant_id: tenant_id
Request Example
---------------
.. literalinclude:: ../samples/qos-specs/qos-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- name: name
- links: links
- id: id
- qos_specs: qos_specs
- consumer: consumer
- specs: specs
List QoS specs
==============
.. rest_method:: GET /v2/{tenant_id}/qos-specs
Lists quality of service (QoS) specifications.
Normal response codes: 200
Error response codes:300,
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- sort_key: sort_key
- sort_dir: sort_dir
- limit: limit
- marker: marker
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- specs: specs
- qos_specs: qos_specs
- consumer: consumer
- id: id
- name: name
Response Example
----------------
.. literalinclude:: ../samples/qos-specs/qos-list-response.json
:language: javascript

View File

@ -0,0 +1,448 @@
.. -*- rst -*-
====================================
Quota sets extension (os-quota-sets)
====================================
Administrators only, depending on policy settings.
Shows, updates, and deletes quotas for a tenant.
Show quotas for user
====================
.. rest_method:: GET /v2/{admin_tenant_id}/os-quota-sets/{tenant_id}/{user_id}
Enables an admin user to show quotas for a tenant and user.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- user_id: user_id
- admin_tenant_id: admin_tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- injected_file_content_bytes: injected_file_content_bytes
- metadata_items: metadata_items
- reserved: reserved
- in_use: in_use
- ram: ram
- floating_ips: floating_ips
- key_pairs: key_pairs
- injected_file_path_bytes: injected_file_path_bytes
- instances: instances
- security_group_rules: security_group_rules
- injected_files: injected_files
- quota_set: quota_set
- cores: cores
- fixed_ips: fixed_ips
- id: id
- security_groups: security_groups
Response Example
----------------
.. literalinclude:: ../samples/os-quota-sets/quotas-update-response.json
:language: javascript
Update quotas for user
======================
.. rest_method:: PUT /v2/{admin_tenant_id}/os-quota-sets/{tenant_id}/{user_id}
Updates quotas for a tenant and user.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- injected_file_content_bytes: injected_file_content_bytes
- metadata_items: metadata_items
- reserved: reserved
- in_use: in_use
- ram: ram
- floating_ips: floating_ips
- key_pairs: key_pairs
- injected_file_path_bytes: injected_file_path_bytes
- instances: instances
- security_group_rules: security_group_rules
- injected_files: injected_files
- quota_set: quota_set
- cores: cores
- fixed_ips: fixed_ips
- id: id
- security_groups: security_groups
- tenant_id: tenant_id
- user_id: user_id
- admin_tenant_id: admin_tenant_id
Request Example
---------------
.. literalinclude:: ../samples/os-quota-sets/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/os-quota-sets/quotas-update-response.json
:language: javascript
Delete quotas for user
======================
.. rest_method:: DELETE /v2/{admin_tenant_id}/os-quota-sets/{tenant_id}/{user_id}
Deletes quotas for a user so that the quotas revert to default values.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- user_id: user_id
- admin_tenant_id: admin_tenant_id
Response Example
----------------
.. literalinclude::
:language: javascript
Show quotas
===========
.. rest_method:: GET /v2/{admin_tenant_id}/os-quota-sets/{tenant_id}
Shows quotas for a tenant.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- admin_tenant_id: admin_tenant_id
- usage: usage
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- injected_file_content_bytes: injected_file_content_bytes
- metadata_items: metadata_items
- reserved: reserved
- in_use: in_use
- ram: ram
- floating_ips: floating_ips
- key_pairs: key_pairs
- injected_file_path_bytes: injected_file_path_bytes
- instances: instances
- security_group_rules: security_group_rules
- injected_files: injected_files
- quota_set: quota_set
- cores: cores
- fixed_ips: fixed_ips
- id: id
- security_groups: security_groups
Response Example
----------------
.. literalinclude:: ../samples/os-quota-sets/quotas-show-response.json
:language: javascript
Update quotas
=============
.. rest_method:: PUT /v2/{admin_tenant_id}/os-quota-sets/{tenant_id}
Updates quotas for a tenant.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- injected_file_content_bytes: injected_file_content_bytes
- metadata_items: metadata_items
- reserved: reserved
- in_use: in_use
- ram: ram
- floating_ips: floating_ips
- key_pairs: key_pairs
- injected_file_path_bytes: injected_file_path_bytes
- instances: instances
- security_group_rules: security_group_rules
- injected_files: injected_files
- quota_set: quota_set
- cores: cores
- fixed_ips: fixed_ips
- id: id
- security_groups: security_groups
- tenant_id: tenant_id
- admin_tenant_id: admin_tenant_id
Request Example
---------------
.. literalinclude:: ../samples/os-quota-sets/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/os-quota-sets/quotas-update-response.json
:language: javascript
Delete quotas
=============
.. rest_method:: DELETE /v2/{admin_tenant_id}/os-quota-sets/{tenant_id}
Deletes quotas for a tenant so the quotas revert to default values.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- admin_tenant_id: admin_tenant_id
Response Example
----------------
.. literalinclude::
:language: javascript
Show quota details for user
===========================
.. rest_method:: GET /v2/{admin_tenant_id}/os-quota-sets/{tenant_id}/detail/{user_id}
Shows details for quotas for a tenant and user.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
- user_id: user_id
- admin_tenant_id: admin_tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- injected_file_content_bytes: injected_file_content_bytes
- metadata_items: metadata_items
- reserved: reserved
- in_use: in_use
- ram: ram
- floating_ips: floating_ips
- key_pairs: key_pairs
- injected_file_path_bytes: injected_file_path_bytes
- instances: instances
- security_group_rules: security_group_rules
- injected_files: injected_files
- quota_set: quota_set
- cores: cores
- fixed_ips: fixed_ips
- id: id
- security_groups: security_groups
Response Example
----------------
.. literalinclude:: ../samples/os-quota-sets/quotas-update-response.json
:language: javascript
Get default quotas
==================
.. rest_method:: GET /v2/{tenant_id}/os-quota-sets/defaults
Gets default quotas for a tenant.
Normal response codes: 200
Error response codes:
Request
-------
.. rest_parameters:: parameters.yaml
- tenant_id: tenant_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- injected_file_content_bytes: injected_file_content_bytes
- metadata_items: metadata_items
- reserved: reserved
- in_use: in_use
- ram: ram
- floating_ips: floating_ips
- key_pairs: key_pairs
- injected_file_path_bytes: injected_file_path_bytes
- instances: instances
- security_group_rules: security_group_rules
- injected_files: injected_files
- quota_set: quota_set
- cores: cores
- fixed_ips: fixed_ips
- id: id
- security_groups: security_groups
Response Example
----------------
.. literalinclude:: ../samples/os-quota-sets/quotas-show-defaults-response.json
:language: javascript

View File

@ -0,0 +1,9 @@
{
"backup": {
"container": null,
"description": null,
"name": "backup001",
"volume_id": "64f5d2fb-d836-4063-b7e2-544d5c1ff607",
"incremental": true
}
}

View File

@ -0,0 +1,16 @@
{
"backup": {
"id": "deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"links": [
{
"href": "http://localhost:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "self"
},
{
"href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "bookmark"
}
],
"name": "backup001"
}
}

View File

@ -0,0 +1,3 @@
{
"os-force_delete": {}
}

View File

@ -0,0 +1,6 @@
{
"backup-record": {
"backup_service": "cinder.backup.drivers.swift",
"backup_url": "eyJzdGF0"
}
}

View File

@ -0,0 +1,6 @@
{
"backup-record": {
"backup_service": "cinder.backup.drivers.swift",
"backup_url": "eyJzdGF0"
}
}

View File

@ -0,0 +1,16 @@
{
"backup": {
"id": "deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"links": [
{
"href": "http://localhost:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "self"
},
{
"href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "bookmark"
}
],
"name": null
}
}

View File

@ -0,0 +1,6 @@
{
"restore": {
"name": "vol-01",
"volume_id": "64f5d2fb-d836-4063-b7e2-544d5c1ff607"
}
}

View File

@ -0,0 +1,6 @@
{
"restore": {
"backup_id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"volume_id": "795114e8-7489-40be-a978-83797f2c1dd3"
}
}

View File

@ -0,0 +1,27 @@
{
"backup": {
"availability_zone": "az1",
"container": "volumebackups",
"created_at": "2013-04-02T10:35:27.000000",
"description": null,
"fail_reason": null,
"id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"links": [
{
"href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "self"
},
{
"href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "bookmark"
}
],
"name": "backup001",
"object_count": 22,
"size": 1,
"status": "available",
"volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6",
"is_incremental": true,
"has_dependent_backups": false
}
}

View File

@ -0,0 +1,54 @@
{
"backups": [
{
"availability_zone": "az1",
"container": "volumebackups",
"created_at": "2013-04-02T10:35:27.000000",
"description": null,
"fail_reason": null,
"id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"links": [
{
"href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "self"
},
{
"href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "bookmark"
}
],
"name": "backup001",
"object_count": 22,
"size": 1,
"status": "available",
"volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6",
"is_incremental": true,
"has_dependent_backups": false
},
{
"availability_zone": "az1",
"container": "volumebackups",
"created_at": "2013-04-02T10:21:48.000000",
"description": null,
"fail_reason": null,
"id": "4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"links": [
{
"href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "self"
},
{
"href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "bookmark"
}
],
"name": "backup002",
"object_count": 22,
"size": 1,
"status": "available",
"volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6",
"is_incremental": true,
"has_dependent_backups": false
}
]
}

View File

@ -0,0 +1,32 @@
{
"backups": [
{
"id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"links": [
{
"href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "self"
},
{
"href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "bookmark"
}
],
"name": "backup001"
},
{
"id": "4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"links": [
{
"href": "http://localhost:8776/v1/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "self"
},
{
"href": "http://localhost:8776/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "bookmark"
}
],
"name": "backup002"
}
]
}

View File

@ -0,0 +1,33 @@
{
"namespace": "OS::Storage::Capabilities::fake",
"vendor_name": "OpenStack",
"volume_backend_name": "lvm",
"pool_name": "pool",
"driver_version": "2.0.0",
"storage_protocol": "iSCSI",
"display_name": "Capabilities of Cinder LVM driver",
"description": "These are volume type options provided by Cinder LVM driver, blah, blah.",
"visibility": "public",
"properties": {
"compression": {
"title": "Compression",
"description": "Enables compression.",
"type": "boolean"
},
"qos": {
"title": "QoS",
"description": "Enables QoS.",
"type": "boolean"
},
"replication": {
"title": "Replication",
"description": "Enables replication.",
"type": "boolean"
},
"thin_provisioning": {
"title": "Thin Provisioning",
"description": "Sets thin provisioning.",
"type": "boolean"
}
}
}

View File

@ -0,0 +1,10 @@
{
"cgsnapshot": {
"consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814546",
"name": "firstcg",
"description": "first consistency group",
"user_id": "6f519a48-3183-46cf-a32f-41815f814444",
"project_id": "6f519a48-3183-46cf-a32f-41815f815555",
"status": "creating"
}
}

View File

@ -0,0 +1,6 @@
{
"cgsnapshot": {
"id": "6f519a48-3183-46cf-a32f-41815f816666",
"name": "firstcg"
}
}

View File

@ -0,0 +1,20 @@
{
"cgsnapshots": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "available",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"consistencygroup_id": "aed36625-a6d7-4681-ba59-c7ba3d18dddd",
"status": "error",
"created_at": "2015-09-16T09:31:15.000000",
"name": "my-cg2",
"description": "Edited description"
}
]
}

View File

@ -0,0 +1,12 @@
{
"cgsnapshots": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"name": "my-cg1"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"name": "my-cg2"
}
]
}

View File

@ -0,0 +1,10 @@
{
"cgsnapshot": {
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "available",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group"
}
}

View File

@ -0,0 +1,11 @@
{
"consistencygroup-from-src": {
"name": "firstcg",
"description": "first consistency group",
"cgsnapshot_id": "6f519a48-3183-46cf-a32f-41815f813986",
"source_cgid": "6f519a48-3183-46cf-a32f-41815f814546",
"user_id": "6f519a48-3183-46cf-a32f-41815f815555",
"project_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "creating"
}
}

View File

@ -0,0 +1,14 @@
{
"consistencygroup": {
"name": "firstcg",
"description": "first consistency group",
"volume_types": [
"type1",
"type2"
],
"user_id": "6f519a48-3183-46cf-a32f-41815f814546",
"project_id": "6f519a48-3183-46cf-a32f-41815f815555",
"availability_zone": "az0",
"status": "creating"
}
}

View File

@ -0,0 +1,6 @@
{
"consistencygroup": {
"id": "6f519a48-3183-46cf-a32f-41815f816666",
"name": "firstcg"
}
}

View File

@ -0,0 +1,5 @@
{
"consistencygroup": {
"force": false
}
}

View File

@ -0,0 +1,13 @@
{
"consistencygroup": {
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"status": "available",
"availability_zone": "az1",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group",
"volume_types": [
"123456"
]
}
}

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<consistencygroups xmlns:consistencygroups="http://docs.openstack.org/volume/ext/consistencygroups/api/v1">
<consistencygroup
id="6f519a48-3183-46cf-a32f-41815f813986"
status="available"
availability_zone="az1"
created_at="2015-09-16T09:28:52.000000"
name="my-cg1"
description="my first consistency group">
<volume_types>
<volume_type>"123456"</volume_type>
</volume_types>
</consistencygroup>
</consistencygroups>

View File

@ -0,0 +1,8 @@
{
"consistencygroup": {
"name": "my_cg",
"description": "My consistency group",
"add_volumes": "volume-uuid-1,volume-uuid-2",
"remove_volumes": "volume-uuid-8,volume-uuid-9"
}
}

View File

@ -0,0 +1,26 @@
{
"consistencygroups": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"status": "available",
"availability_zone": "az1",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group",
"volume_types": [
"123456"
]
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"status": "error",
"availability_zone": "az2",
"created_at": "2015-09-16T09:31:15.000000",
"name": "my-cg2",
"description": "Edited description",
"volume_types": [
"234567"
]
}
]
}

Some files were not shown because too many files have changed in this diff Show More