placement/api-ref/source/os-aggregates.inc
Kevin_Zheng 07949967fa api-ref: parameter verification for os-aggregates
checked parameters

Part of bp:api-ref-in-rst

Change-Id: I8fe3825243f8b94d5c3f382ebc30c342bffafcac
2016-06-12 06:52:28 +00:00

343 lines
7.6 KiB
ReStructuredText

.. -*- rst -*-
.. needs:example_verification
.. needs:body_verification
================================
Host aggregates (os-aggregates)
================================
Creates and manages host aggregates. An aggregate assigns metadata to
groups of compute nodes. Aggregates are only visible to the cloud
provider.
List Aggregates
===============
.. rest_method:: GET /os-aggregates
Lists all aggregates. Includes the ID, name, and availability zone for each aggregate.
Normal response codes: 200
Error response codes: unauthorized(401), forbidden(403)
Response
--------
.. rest_parameters:: parameters.yaml
- aggregates: aggregates
- availability_zone: aggregate_az
- created_at: created
- deleted_at: deleted_at
- deleted: deleted
- hosts: aggregate_host_list
- id: aggregate_id_body
- metadata: aggregate_metadata
- name: aggregate_name
- updated_at: updated_consider_null
**Example List Aggregates: JSON response**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregates-list-get-resp.json
:language: javascript
Create Aggregate
================
.. rest_method:: POST /os-aggregates
Creates an aggregate in an availability zone.
Normal response codes: 200
Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409)
Request
-------
.. rest_parameters:: parameters.yaml
- aggregate: aggregate
- name: aggregate_name
- availability_zone: aggregate_az_optional
**Example Create Aggregate: JSON request**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregate-post-req.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- aggregate: aggregate
- availability_zone: aggregate_az
- created_at: created
- deleted_at: deleted_at
- deleted: deleted
- id: aggregate_id_body
- name: aggregate_name
- updated_at: updated_consider_null
**Example Create Aggregate: JSON response**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregate-post-resp.json
:language: javascript
Show Aggregate Details
======================
.. rest_method:: GET /os-aggregates/{aggregate_id}
Shows details for an aggregate. Details include hosts and metadata.
Normal response codes: 200
Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)
Request
-------
.. rest_parameters:: parameters.yaml
- aggregate_id: aggregate_id
Response
--------
.. rest_parameters:: parameters.yaml
- aggregate: aggregate
- availability_zone: aggregate_az
- created_at: created
- deleted_at: deleted_at
- deleted: deleted
- hosts: hosts
- id: aggregate_id_body
- metadata: aggregate_metadata
- name: aggregate_name
- updated_at: updated_consider_null
**Example Show Aggregate Details: JSON response**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregates-get-resp.json
:language: javascript
Update Aggregate
================
.. rest_method:: PUT /os-aggregates/{aggregate_id}
Updates either or both the name and availability zone for an aggregate.
Normal response codes: 200
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
itemNotFound(404), conflict(409)
Request
-------
.. rest_parameters:: parameters.yaml
- aggregate_id: aggregate_id
- aggregate: aggregate
- name: aggregate_name_optional
- availability_zone: aggregate_az_optional
**Example Update Aggregate: JSON request**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregate-update-post-req.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- aggregate: aggregate
- availability_zone: aggregate_az
- created_at: created
- deleted_at: deleted_at
- deleted: deleted
- hosts: hosts
- id: aggregate_id_body
- metadata: aggregate_metadata
- name: aggregate_name
- updated_at: updated_consider_null
**Example Update Aggregate: JSON response**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregate-update-post-resp.json
:language: javascript
Delete Aggregate
================
.. rest_method:: DELETE /os-aggregates/{aggregate_id}
Deletes an aggregate.
Normal response codes: 200
Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)
Request
-------
.. rest_parameters:: parameters.yaml
- aggregate_id: aggregate_id
Response
--------
Add Host
========
.. rest_method:: POST /os-aggregates/{aggregate_id}/action
Adds a host to an aggregate.
Specify the ``add_host`` action and host name in the request body.
Normal response codes: 200
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
itemNotFound(404), conflict(409)
Request
-------
.. rest_parameters:: parameters.yaml
- aggregate_id: aggregate_id
- add_host: aggregate_add_host
- host: host_name_body
**Example Add Host: JSON request**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregate-add-host-post-req.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- aggregate: aggregate
- availability_zone: aggregate_az
- created_at: created
- deleted_at: deleted_at
- deleted: deleted
- hosts: hosts
- id: aggregate_id_body
- metadata: aggregate_metadata
- name: aggregate_name
- updated_at: updated_consider_null
**Example Add Host: JSON response**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregates-add-host-post-resp.json
:language: javascript
Remove Host
===========
.. rest_method:: POST /os-aggregates/{aggregate_id}/action
Removes a host from an aggregate.
Specify the ``remove_host`` action and host name in the request body.
Normal response codes: 200
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
itemNotFound(404), conflict(409)
Request
-------
.. rest_parameters:: parameters.yaml
- aggregate_id: aggregate_id
- remove_host: aggregate_remove_host
- host: host_name_body
**Example Remove Host: JSON request**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregate-remove-host-post-req.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- aggregate: aggregate
- availability_zone: aggregate_az
- created_at: created
- deleted_at: deleted_at
- deleted: deleted
- hosts: hosts
- id: aggregate_id_body
- metadata: aggregate_metadata
- name: aggregate_name
- updated_at: updated_consider_null
**Example Remove Host: JSON response**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.json
:language: javascript
Create Or Update Aggregate Metadata
===================================
.. rest_method:: POST /os-aggregates/{aggregate_id}/action
Creates or replaces metadata for an aggregate.
Specify the ``set_metadata`` action in the request body.
Normal response codes: 200
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
itemNotFound(404)
Request
-------
.. rest_parameters:: parameters.yaml
- aggregate_id: aggregate_id
- set_metadata: set_metadata
- metadata: metadata_set_required
**Example Create Or Update Aggregate Metadata: JSON request**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregate-metadata-post-req.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- aggregate: aggregate
- availability_zone: aggregate_az
- created_at: created
- deleted_at: deleted_at
- deleted: deleted
- hosts: hosts
- id: aggregate_id_body
- metadata: aggregate_metadata
- name: aggregate_name
- updated_at: updated_consider_null
**Example Create Or Update Aggregate Metadata: JSON response**
.. literalinclude:: ../../doc/api_samples/os-aggregates/aggregates-metadata-post-resp.json
:language: javascript