keystone/api-ref/source/v3/policies.inc
Anh Tran 43df6125f9 api-ref: Splitting status lines in API v3.
Currently, 'Normal response codes' and 'Error response codes' are
in the same line. We should split them.

Change-Id: Iecfa8849a57dc895f639ab2e7d910a2a8763f83a
2016-08-25 13:14:34 +07:00

219 lines
4.0 KiB
ReStructuredText

.. -*- rst -*-
==========
Policies
==========
A policy is an arbitrarily serialized policy engine rule set to be
consumed by a remote service.
You encode policy rule sets into a blob that remote services can
consume. To do so, set ``type`` to ``application/json`` and specify
policy rules as JSON strings in a ``blob``. For example:
::
{
"blob":{
"foobar_user":[
"role:compute-user"
]
}
}
Create policy
=============
.. rest_method:: POST /v3/policies
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/policies``
Creates a policy.
Normal response codes: 201
Error response codes: 413,415,405,404,403,401,400,503,409
Request
-------
.. rest_parameters:: parameters.yaml
- policy: policy
- user_id: policy_user_id
- project_id: project_id
- type: policy_type
- blob: policy_blob_str
Request Example
---------------
.. literalinclude:: ./samples/admin/policy-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- user_id: policy_user_id
- links: policy_links
- blob: policy_blob_str
- policy: policy
- project_id: project_id
- type: policy_type
- id: policy_id
List policies
=============
.. rest_method:: GET /v3/policies
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/policies``
Lists policies.
Normal response codes: 200
Error response codes: 413,405,404,403,401,400,503
Request
-------
.. rest_parameters:: parameters.yaml
- type: policy_type_query
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- user_id: policy_user_id
- links: policy_links
- blob: policy_blob_obj
- policies: policies
- project_id: project_id
- type: policy_type
- id: policy_id
Response Example
----------------
.. literalinclude:: ./samples/admin/policies-list-response.json
:language: javascript
Show policy details
===================
.. rest_method:: GET /v3/policies/{policy_id}
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/policy``
Shows details for a policy.
Normal response codes: 200
Error response codes: 413,405,404,403,401,400,503
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: policy_id_path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- user_id: policy_user_id
- links: policy_links
- blob: policy_blob_obj
- policy: policy
- project_id: project_id
- type: policy_type
- id: policy_id
Response Example
----------------
.. literalinclude:: ./samples/admin/policy-show-response.json
:language: javascript
Update policy
=============
.. rest_method:: PATCH /v3/policies/{policy_id}
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/policy``
Updates a policy.
Normal response codes: 200
Error response codes: 413,415,405,404,403,401,400,503,409
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: policy_id_path
- policy: policy
- user_id: policy_user_id
- project_id: project_id
- type: policy_type
- blob: policy_blob_obj
Request Example
---------------
.. literalinclude:: ./samples/admin/policy-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- user_id: policy_user_id
- links: policy_links
- blob: policy_blob_obj
- policy: policy
- project_id: project_id
- type: policy_type
- id: policy_id
Response Example
----------------
.. literalinclude:: ./samples/admin/policy-update-response.json
:language: javascript
Delete policy
=============
.. rest_method:: DELETE /v3/policies/{policy_id}
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/policy``
Deletes a policy.
Normal response codes: 204
Error response codes: 413,415,405,404,403,401,400,503,409
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: policy_id_path