d36e555788
Nearly all the "relationship" links are missing in v3 APIs. Added relationship links to v3 API pages. Change-Id: If519692a5b48e563719e8cde5c694edad6e01ef8 Partial-Bug: #1609159
338 lines
8.7 KiB
ReStructuredText
338 lines
8.7 KiB
ReStructuredText
.. -*- rst -*-
|
|
|
|
==========
|
|
Projects
|
|
==========
|
|
|
|
A project is the base unit of resource ownership. Resources are owned by a
|
|
specific project. A project is owned by a specific domain.
|
|
|
|
(Since Identity API v3.4) You can create a hierarchy of projects by setting a
|
|
``parent_id`` when you create a project. All projects in a hierarchy must be
|
|
owned by the same domain.
|
|
|
|
(Since Identity API v3.6) Projects may, in addition to acting as containers for
|
|
OpenStack resources, act as a domain (by setting the attribute ``is_domain`` to
|
|
``true``), in which case it provides a namespace in which users, groups and
|
|
other projects can be created. In fact, a domain created using the
|
|
``POST /domains`` API will actually be represented as a project with
|
|
``is_domain`` set to ``true`` with no parent (``parent_id`` is null).
|
|
|
|
Given this, all projects are considered part of a project hierarchy. Projects
|
|
created in a domain prior to v3.6 are represented as a two-level hierarchy,
|
|
with a project that has ``is_domain`` set to ``true`` as the root and all other
|
|
projects referencing the root as their parent.
|
|
|
|
A project acting as a domain can potentially also act as a container for
|
|
OpenStack resources, although this depends on whether the policy rule for the
|
|
relevant resource creation allows this.
|
|
|
|
List projects
|
|
=============
|
|
|
|
.. rest_method:: GET /v3/projects
|
|
|
|
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/projects``
|
|
|
|
Lists projects.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: 413,405,404,403,401,400,503
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- domain_id: domain_id_query
|
|
- enabled: project_enabled_query
|
|
- is_domain: is_domain_query
|
|
- name: project_name_query
|
|
- parent_id: parent_id_query
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- links: link_collection
|
|
- projects: projects
|
|
- is_domain: is_domain_response_body
|
|
- description: project_description_response_body
|
|
- domain_id: project_domain_id_response_body
|
|
- enabled: project_enabled_response_body
|
|
- id: project_id
|
|
- links: link_response_body
|
|
- name: project_name_response_body
|
|
- parent_id: project_parent_id_response_body
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/admin/projects-list-response.json
|
|
:language: javascript
|
|
|
|
|
|
Create project
|
|
==============
|
|
|
|
.. rest_method:: POST /v3/projects
|
|
|
|
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/projects``
|
|
|
|
Creates a project, including a project acting as a domain.
|
|
|
|
Normal response codes: 201
|
|
Error response codes: 413,415,405,404,403,401,400,503,409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project: project
|
|
- is_domain: is_domain_request_body
|
|
- description: project_description_request_body
|
|
- domain_id: project_domain_id_request_body
|
|
- enabled: project_enabled_request_body
|
|
- name: project_name_request_body
|
|
- parent_id: project_parent_id_request_body
|
|
|
|
Request Examples
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-create-request.json
|
|
:language: javascript
|
|
|
|
.. literalinclude:: ./samples/admin/project-create-domain-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project: project
|
|
- is_domain: is_domain_response_body
|
|
- description: project_description_response_body
|
|
- domain_id: project_domain_id_response_body
|
|
- enabled: project_enabled_response_body
|
|
- id: project_id
|
|
- links: link_response_body
|
|
- name: project_name_response_body
|
|
- parent_id: project_parent_id_response_body
|
|
|
|
|
|
Show project details
|
|
====================
|
|
|
|
.. rest_method:: GET /v3/projects/{project_id}
|
|
|
|
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/project``
|
|
|
|
Shows details for a project.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: 413,405,404,403,401,400,503
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- parents_as_list: parents_as_list
|
|
- subtree_as_list: subtree_as_list
|
|
- parents_as_ids: parents_as_ids
|
|
- subtree_as_ids: subtree_as_ids
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project: project
|
|
- is_domain: is_domain_response_body
|
|
- description: project_description_response_body
|
|
- domain_id: project_domain_id_response_body
|
|
- enabled: project_enabled_response_body
|
|
- id: project_id
|
|
- links: link_response_body
|
|
- name: project_name_response_body
|
|
- parent_id: project_parent_id_response_body
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-show-response.json
|
|
:language: javascript
|
|
|
|
Response Example with ``parents_as_list``
|
|
-----------------------------------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-show-parents-response.json
|
|
:language: javascript
|
|
|
|
Response Example with ``subtree_as_list``
|
|
-----------------------------------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-show-subtree-response.json
|
|
:language: javascript
|
|
|
|
|
|
Update project
|
|
==============
|
|
|
|
.. rest_method:: PATCH /v3/projects/{project_id}
|
|
|
|
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/project``
|
|
|
|
Updates a project.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: 413,415,405,404,403,401,400,503,409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- project: project
|
|
- is_domain: is_domain_request_body
|
|
- description: project_description_request_body
|
|
- domain_id: project_domain_id_update_request_body
|
|
- enabled: project_enabled_update_request_body
|
|
- name: project_name_update_request_body
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-update-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project: project
|
|
- is_domain: is_domain_response_body
|
|
- description: project_description_response_body
|
|
- domain_id: project_domain_id_response_body
|
|
- enabled: project_enabled_response_body
|
|
- id: project_id
|
|
- name: project_name_response_body
|
|
- links: link_response_body
|
|
- parent_id: project_parent_id_response_body
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-update-response.json
|
|
:language: javascript
|
|
|
|
|
|
Delete project
|
|
==============
|
|
|
|
.. rest_method:: DELETE /v3/projects/{project_id}
|
|
|
|
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/project``
|
|
|
|
Deletes a project.
|
|
|
|
Normal response codes: 204
|
|
Error response codes: 413,415,405,404,403,401,400,503,409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
|
|
|
|
Enable or disable project and its subtree
|
|
=========================================
|
|
|
|
.. rest_method:: PATCH /v3/projects/{project_id}/cascade
|
|
|
|
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/project``
|
|
|
|
(Since Identity API v3.7) Enables or disables a project and its entire subtree.
|
|
|
|
A project subtree includes all projects beneath the parent project
|
|
in the hierarchy.
|
|
|
|
If you include attributes other than the ``enabled`` attribute,
|
|
this call fails and returns the ``Bad Request (400)`` response
|
|
code.
|
|
|
|
If you perform this action against a project that acts as a domain
|
|
(``is_domain`` is set to ``true``), this call fails and returns the
|
|
``Forbidden (403)`` response code.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: 413,415,405,404,403,401,400,503,409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- project: project
|
|
- enabled: project_enabled_cascade_request_body
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-enable-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project: project
|
|
- is_domain: is_domain_response_body
|
|
- description: project_description_response_body
|
|
- domain_id: project_domain_id_response_body
|
|
- enabled: project_enabled_response_body
|
|
- id: project_id
|
|
- name: project_name_response_body
|
|
- links: link_response_body
|
|
- parent_id: project_parent_id_response_body
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/admin/project-update-response.json
|
|
:language: javascript
|
|
|
|
|
|
Delete project subtree
|
|
======================
|
|
|
|
.. rest_method:: DELETE /v3/projects/{project_id}/cascade
|
|
|
|
Relationship: ``http://docs.openstack.org/api/openstack-identity/3/rel/project``
|
|
|
|
(Since Identity API v3.7) Deletes a project and its entire subtree.
|
|
|
|
A project subtree includes all projects beneath the parent project
|
|
in the hierarchy. You must disable all the projects in the subtree
|
|
before you perform this operation.
|
|
|
|
Normal response codes: 204
|
|
Error response codes: 413,415,405,404,403,401,400,503,409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|