Add api-ref for unified limits

This patch added the api-ref for unified limits

bp: unified-limits
Change-Id: Iebf90c4145d34b02e125ab2fb2a2323df22e5b7c
This commit is contained in:
wangxiyuan 2018-01-19 17:10:35 +08:00
parent 4606183c8d
commit a616462260
16 changed files with 944 additions and 0 deletions

View File

@ -189,6 +189,7 @@ This page lists the Identity API operations in the following order:
* `Roles`_
* `System Role Assignments`_
* `Service catalog and endpoints`_
* `Unified Limits`_
* `Users`_
* `OS-INHERIT`_
* `OS-PKI API`_
@ -209,4 +210,5 @@ This page lists the Identity API operations in the following order:
.. include:: roles.inc
.. include:: system-roles.inc
.. include:: service-catalog.inc
.. include:: unified_limits.inc
.. include:: users.inc

View File

@ -52,6 +52,12 @@ implies_role_id:
in: path
required: true
type: string
limit_id_path:
description: |
The limit ID.
in: path
required: true
type: string
option:
description: |
The option name. For the ``ldap`` group, a valid
@ -84,6 +90,12 @@ region_id_path:
in: path
required: true
type: string
registered_limit_id_path:
description: |
The registered limit ID.
in: path
required: true
type: string
role_id:
description: |
The role ID.
@ -313,6 +325,18 @@ protocol_id_query:
in: query
required: false
type: string
region_id_query:
description: |
Filters the response by a region ID.
in: query
required: false
type: string
resource_name_query:
description: |
Filters the response by a specified resource name.
in: query
required: false
type: string
role_id_query:
description: |
Filters the response by a role ID.
@ -544,6 +568,12 @@ credentials_links:
in: body
required: true
type: object
default_limit:
description: |
The defalut limit for the registered limit.
in: body
required: true
type: integer
default_project_id_request_body:
description: |
The ID of the default project for the user.
@ -1026,6 +1056,18 @@ issued_at:
in: body
required: true
type: string
limit_id:
description: |
The limit ID.
in: body
required: true
type: string
limits:
description: |
A list of ``limits`` objects, each containing:
in: body
required: true
type: array
link_collection:
description: |
The link to the collection of resources.
@ -1290,6 +1332,12 @@ region_id_not_required:
in: body
required: false
type: string
region_id_request_body:
description: |
The ID of the region that contains the service endpoint.
in: body
required: false
type: string
region_id_required:
description: |
(Since v3.2) The ID of the region that contains
@ -1297,6 +1345,13 @@ region_id_required:
in: body
required: true
type: string
region_id_response_body:
description: |
The ID of the region that contains the service endpoint.
The value can be None.
in: body
required: true
type: string
region_object:
description: |
A ``region`` object, containing the following:
@ -1309,6 +1364,36 @@ regions_object:
in: body
required: true
type: array
registered_limit:
description: |
A ``registered_limit`` objects, containing the following:
in: body
required: true
type: array
registered_limit_id:
description: |
The registered limit ID.
in: body
required: true
type: string
registered_limits:
description: |
A list of ``registered_limits`` objects, each containing:
in: body
required: true
type: array
resource_limit:
description: |
The override limit.
in: body
required: true
type: array
resource_name:
description: |
The resource name.
in: body
required: true
type: string
response_body_project_tags_required:
description: |
A list of simple strings assigned to a project.
@ -1435,6 +1520,19 @@ service_id:
in: body
required: true
type: string
service_id_limit:
description: |
The UUID of the service to which the limit belongs.
in: body
required: true
type: string
service_id_registered_limit:
description: |
The UUID of the service to which the registered limit
belongs.
in: body
required: true
type: string
service_links:
description: |
The links for the ``service`` resource.

View File

@ -0,0 +1,13 @@
{
"limit": {
"resource_name": "volume",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/limits/25a04c7a065c430590881c646cdcdd58"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"id": "25a04c7a065c430590881c646cdcdd58",
"resource_limit": 11
}
}

View File

@ -0,0 +1,17 @@
{
"limits":[
{
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"region_id": "RegionOne",
"resource_name": "snapshot",
"resource_limit": 5
},
{
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"resource_name": "volume",
"resource_limit": 10
}
]
}

View File

@ -0,0 +1,26 @@
{
"limits": [
{
"resource_name": "volume",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/limits/25a04c7a065c430590881c646cdcdd58"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"id": "25a04c7a065c430590881c646cdcdd58",
"resource_limit": 10
},
{
"resource_name": "snapshot",
"region_id": "RegionOne",
"links": {
"self": "http://10.3.150.25/identity/v3/limits/3229b3849f584faea483d6851f7aab05"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"id": "3229b3849f584faea483d6851f7aab05",
"resource_limit": 5
}
]
}

View File

@ -0,0 +1,31 @@
{
"links": {
"self": "http://10.3.150.25/identity/v3/limits",
"previous": null,
"next": null
},
"limits": [
{
"resource_name": "volume",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/limits/25a04c7a065c430590881c646cdcdd58"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"id": "25a04c7a065c430590881c646cdcdd58",
"resource_limit": 11
},
{
"resource_name": "snapshot",
"region_id": "RegionOne",
"links": {
"self": "http://10.3.150.25/identity/v3/limits/3229b3849f584faea483d6851f7aab05"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"id": "3229b3849f584faea483d6851f7aab05",
"resource_limit": 5
}
]
}

View File

@ -0,0 +1,12 @@
{
"limits":[
{
"id": "25a04c7a065c430590881c646cdcdd58",
"resource_limit": 11
},
{
"id": "3229b3849f584faea483d6851f7aab05",
"resource_limit": 5
}
]
}

View File

@ -0,0 +1,26 @@
{
"limits": [
{
"resource_name": "volume",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/limits/25a04c7a065c430590881c646cdcdd58"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"id": "25a04c7a065c430590881c646cdcdd58",
"resource_limit": 11
},
{
"resource_name": "snapshot",
"region_id": "RegionOne",
"links": {
"self": "http://10.3.150.25/identity/v3/limits/3229b3849f584faea483d6851f7aab05"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"project_id": "3a705b9f56bb439381b43c4fe59dccce",
"id": "3229b3849f584faea483d6851f7aab05",
"resource_limit": 5
}
]
}

View File

@ -0,0 +1,12 @@
{
"registered_limit": {
"resource_name": "volume",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits/773147dd53cd4a17b921d555cf17c633"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"default_limit": 10,
"id": "773147dd53cd4a17b921d555cf17c633"
}
}

View File

@ -0,0 +1,15 @@
{
"registered_limits":[
{
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"region_id": "RegionOne",
"resource_name": "snapshot",
"default_limit": 5
},
{
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"resource_name": "volume",
"default_limit": 10
}
]
}

View File

@ -0,0 +1,24 @@
{
"registered_limits": [
{
"resource_name": "volume",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits/773147dd53cd4a17b921d555cf17c633"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"default_limit": 10,
"id": "773147dd53cd4a17b921d555cf17c633"
},
{
"resource_name": "snapshot",
"region_id": "RegionOne",
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits/e35a965b2b244209bb0c2b193c55955f"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"default_limit": 5,
"id": "e35a965b2b244209bb0c2b193c55955f"
}
]
}

View File

@ -0,0 +1,29 @@
{
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits",
"previous": null,
"next": null
},
"registered_limits": [
{
"resource_name": "snapshot",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits/195acb8a093e43e9afb23d6628361e7c"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"default_limit": 10,
"id": "195acb8a093e43e9afb23d6628361e7c"
},
{
"resource_name": "volume",
"region_id": "RegionOne",
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits/ea7f74f15cba4c6db1406fe52532f98d"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"default_limit": 5,
"id": "ea7f74f15cba4c6db1406fe52532f98d"
}
]
}

View File

@ -0,0 +1,17 @@
{
"registered_limits":[
{
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"id": "e35a965b2b244209bb0c2b193c55955f",
"region_id": "RegionOne",
"resource_name": "snapshot",
"default_limit": 5
},
{
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"id": "773147dd53cd4a17b921d555cf17c633",
"resource_name": "volume",
"default_limit": 10
}
]
}

View File

@ -0,0 +1,24 @@
{
"registered_limits": [
{
"resource_name": "volume",
"region_id": null,
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits/773147dd53cd4a17b921d555cf17c633"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"default_limit": 10,
"id": "773147dd53cd4a17b921d555cf17c633"
},
{
"resource_name": "snapshot",
"region_id": "RegionOne",
"links": {
"self": "http://10.3.150.25/identity/v3/registered_limits/e35a965b2b244209bb0c2b193c55955f"
},
"service_id": "9408080f1970482aa0e38bc2d4ea34b7",
"default_limit": 5,
"id": "e35a965b2b244209bb0c2b193c55955f"
}
]
}

View File

@ -0,0 +1,589 @@
.. -*- rst -*-
==============
Unified Limits
==============
In OpenStack, a quota system mainly contains two parts: ``limit`` and
``usage``. The Unified limits in Keystone is a replacement of the ``limit``
part. It contains two kinds of resouces: ``Registered Limit`` and ``Limit``. A
``registered limit`` is a default limit. It is usually created by the services
which are registered in Keystone. A ``limit`` is the limit that override the
registered limit for each project.
List Registered Limits
======================
.. rest_method:: GET /v3/registered_limits
Lists Registered Limits.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/registered_limits``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- service_id: service_id_query
- region_id: region_id_query
- resource_name: resource_name_query
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- links: link_collection
- registered_limits: registered_limits
- id: registered_limit_id
- service_id: service_id_registered_limit
- region_id: region_id_response_body
- resource_name: resource_name
- default_limit: default_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
Example
~~~~~~~
.. literalinclude:: ./samples/admin/registered-limits-list-response.json
:language: javascript
Create Registered Limits
========================
.. rest_method:: POST /v3/registered_limits
Creates registered limits. It supports to create more than one registered limit
in one request.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/registered_limits``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- registered_limits: registered_limits
- service_id: service_id_registered_limit
- region_id: region_id_request_body
- resource_name: resource_name
- default_limit: default_limit
Examples
~~~~~~~~
.. literalinclude:: ./samples/admin/registered-limits-create-request.json
:language: javascript
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- registered_limits: registered_limits
- id: registered_limit_id
- service_id: service_id_registered_limit
- region_id: region_id_response_body
- resource_name: resource_name
- default_limit: default_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 201
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 409
Examples
~~~~~~~~
.. literalinclude:: ./samples/admin/registered-limits-create-response.json
:language: javascript
Update Registered Limits
========================
.. rest_method:: PUT /v3/registered_limits
Updates registered limits. It supports to update more than one registered limit
in one request.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/registered_limits``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- registered_limits: registered_limits
- id: registered_limit_id
- service_id: service_id_registered_limit
- region_id: region_id_request_body
- resource_name: resource_name
- default_limit: default_limit
Example
~~~~~~~
.. literalinclude:: ./samples/admin/registered-limits-update-request.json
:language: javascript
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- registered_limits: registered_limits
- id: registered_limit_id
- service_id: service_id_registered_limit
- region_id: region_id_response_body
- resource_name: resource_name
- default_limit: default_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
Example
~~~~~~~
.. literalinclude:: ./samples/admin/registered-limits-update-response.json
:language: javascript
Show Registered Limit Details
=============================
.. rest_method:: GET /v3/registered_limits/{registered_limit_id}
Shows details for a registered limit.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/registered_limit``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- registered_limit_id: registered_limit_id_path
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- registered_limit: registered_limit
- id: registered_limit_id
- service_id: service_id_registered_limit
- region_id: region_id_response_body
- resource_name: resource_name
- default_limit: default_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
Example
~~~~~~~
.. literalinclude:: ./samples/admin/registered-limit-show-response.json
:language: javascript
Delete Registered Limit
=======================
.. rest_method:: DELETE /v3/registered_limits/{registered_limit_id}
Deletes a registered limit.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/registered_limit``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- registered_limit_id: registered_limit_id_path
Response
--------
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 204
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
List Limits
===========
.. rest_method:: GET /v3/limits
Lists Limits.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/limits``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- service_id: service_id_query
- region_id: region_id_query
- resource_name: resource_name_query
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- links: link_collection
- limits: limits
- id: limit_id
- project_id: project_id
- service_id: service_id_limit
- region_id: region_id_response_body
- resource_name: resource_name
- resource_limit: resource_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
Example
~~~~~~~
.. literalinclude:: ./samples/admin/limits-list-response.json
:language: javascript
Create Limits
=============
.. rest_method:: POST /v3/limits
Creates limits. It supports to create more than one limit in one request.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/limits``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- limits: limits
- service_id: service_id_limit
- region_id: region_id_request_body
- resource_name: resource_name
- resource_limit: resource_limit
Examples
~~~~~~~~
.. literalinclude:: ./samples/admin/limits-create-request.json
:language: javascript
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- limits: limits
- id: limit_id
- service_id: service_id_limit
- region_id: region_id_response_body
- resource_name: resource_name
- resource_limit: resource_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 201
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 409
Examples
~~~~~~~~
.. literalinclude:: ./samples/admin/limits-create-response.json
:language: javascript
Update Limits
=============
.. rest_method:: PUT /v3/limits
Updates limits. It supports to update more than one limit in one request. It
only supports to update ``resource_limit`` for limits. It will return all the
limits for the project.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/limits``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- limits: limits
- resource_limit: resource_limit
Example
~~~~~~~
.. literalinclude:: ./samples/admin/limits-update-request.json
:language: javascript
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- limits: limits
- id: limit_id
- service_id: service_id_limit
- region_id: region_id_response_body
- resource_name: resource_name
- resource_limit: resource_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
Example
~~~~~~~
.. literalinclude:: ./samples/admin/limits-update-response.json
:language: javascript
Show Limit Details
==================
.. rest_method:: GET /v3/limits/{limit_id}
Shows details for a limit.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/limit``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- limit_id: limit_id_path
Response
--------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- limits: limits
- id: limit_id
- project_id: project_id
- service_id: service_id_limit
- region_id: region_id_response_body
- resource_name: resource_name
- resource_limit: resource_limit
- links: link_response_body
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
Example
~~~~~~~
.. literalinclude:: ./samples/admin/limit-show-response.json
:language: javascript
Delete Registered Limit
=======================
.. rest_method:: DELETE /v3/limits/{limit_id}
Deletes a limit.
Relationship: ``https://docs.openstack.org/api/openstack-identity/3/rel/limit``
Request
-------
Parameters
~~~~~~~~~~
.. rest_parameters:: parameters.yaml
- limit_id: limit_id_path
Response
--------
Status Codes
~~~~~~~~~~~~
.. rest_status_code:: success status.yaml
- 204
.. rest_status_code:: error status.yaml
- 401
- 403
- 404

View File

@ -0,0 +1,9 @@
---
features:
- >
[`blueprint unified-limit <https://blueprints.launchpad.net/keystone/+spec/unified-limit>`_]
Keystone now supports unified limits. Two resouces called ``registered
limit`` and ``limit`` are added and a batch of related APIs are supported
as well. These APIs are experimental now. It means that they are not stable
enough and may be changed without backward compatibility. Once unified
limit feature are ready for consuming, the APIs will be marked as stable.