
The support of updating project or deleting project cascadely has not yet implemented in the controller [1] and no routed is defined yet for this feature. So, remove they from the public doc and can be added back when this feature is fully implemented in order not to mislead readers. [1] https://review.openstack.org/#/c/243585/ bp project-tree-deletion Change-Id: I22b2cb41d44975bca6bc96ba2e3daa61d5029cce
312 lines
7.1 KiB
ReStructuredText
312 lines
7.1 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.
|
|
|
|
Response Codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success status.yaml
|
|
|
|
- 200
|
|
|
|
.. rest_status_code:: error status.yaml
|
|
|
|
- 400
|
|
- 401
|
|
- 403
|
|
|
|
Request Parameters
|
|
------------------
|
|
|
|
.. 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, where the project may act as a domain.
|
|
|
|
Response Codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success status.yaml
|
|
|
|
- 201
|
|
|
|
.. rest_status_code:: error status.yaml
|
|
|
|
- 400
|
|
- 401
|
|
- 403
|
|
- 409
|
|
|
|
Request Parameters
|
|
------------------
|
|
|
|
.. 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
|
|
----------------
|
|
|
|
Sample for creating a regular project:
|
|
|
|
.. literalinclude:: ./samples/admin/project-create-request.json
|
|
:language: javascript
|
|
|
|
Sample for creating a project that also acts as a domain:
|
|
|
|
.. 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.
|
|
|
|
Response Codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success status.yaml
|
|
|
|
- 200
|
|
|
|
.. rest_status_code:: error status.yaml
|
|
|
|
- 400
|
|
- 401
|
|
- 403
|
|
- 404
|
|
|
|
Request Parameters
|
|
------------------
|
|
|
|
.. 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.
|
|
|
|
Response Codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success status.yaml
|
|
|
|
- 200
|
|
|
|
.. rest_status_code:: error status.yaml
|
|
|
|
- 400
|
|
- 401
|
|
- 403
|
|
- 404
|
|
- 409
|
|
|
|
Request Parameters
|
|
------------------
|
|
|
|
.. 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.
|
|
|
|
Response Codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success status.yaml
|
|
|
|
- 204
|
|
|
|
.. rest_status_code:: error status.yaml
|
|
|
|
- 400
|
|
- 401
|
|
- 403
|
|
- 404
|
|
|
|
Request Parameters
|
|
------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|