manila/api-ref/source/quota-sets.inc
Goutham Pacha Ravi de29398128 [doc] remove project_id from api endpoints
As of API version 2.60, a project_id is no
longer needed in the API URLs.

Fix the docs to indicate that.

Also fix up a few quota parameters that use
project_id in a different place in the API path.

Change-Id: I24b32c8521805a7d67d512d36d644c0f07c532ea
Implements: bp remove-project-id-from-urls
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
2021-02-09 21:59:07 -08:00

312 lines
7.3 KiB
ReStructuredText

.. -*- rst -*-
==========
Quota sets
==========
Provides quotas management support.
.. important::
For API versions 2.6 and prior, replace ``quota-sets`` in the URLs with
``os-quota-sets``.
Share type quotas were added in API version 2.39. It is possible to set
quotas per share type for the following quota resources:
- ``gigabytes``
- ``snapshots``
- ``shares``
- ``snapshot_gigabytes``
- ``share_groups`` (since API version 2.40)
- ``share_group_snapshots`` (since API version 2.40)
- ``share_replicas`` (since API version 2.53)
- ``replica_gigabytes`` (since API version 2.53)
Share groups and share group snapshots were added to quota management
APIs in API version 2.40.
Share replicas and replica gigabytes were added to quota management
APIs in API version 2.53.
Show default quota set
======================
.. rest_method:: GET /v2/quota-sets/{project_id_quota_request_path}/defaults
Shows default quotas for a given project.
Response codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- project_id_quota_request_path: project_id_quota_request_path
Response parameters
-------------------
.. rest_parameters:: parameters.yaml
- quota_set: quota_set
- id: quota_project_id
- gigabytes: quota_gigabytes
- snapshots: quota_snapshots
- shares: quota_shares
- snapshot_gigabytes: quota_snapshot_gigabytes
- share_networks: quota_share_networks
- share_groups: quota_share_groups
- share_group_snapshots: quota_share_group_snapshots
- share_networks: quota_share_networks_default
- share_replicas: quota_share_replicas
- replica_gigabytes: quota_replica_gigabytes
Response example
----------------
.. literalinclude:: samples/quota-show-response.json
:language: javascript
Show quota set
==============
.. rest_method:: GET /v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}
Shows quotas for a given project..
If you specify the optional ``user_id`` query parameter, you get
the quotas for this user in the project. If you omit this parameter,
you get the quotas for the project.
Response codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- project_id_quota_request_path: project_id_quota_request_path
- user_id: user_id_query
- share_type: share_type_for_quota
Response parameters
-------------------
.. rest_parameters:: parameters.yaml
- quota_set: quota_set
- id: quota_project_id
- gigabytes: quota_gigabytes
- snapshots: quota_snapshots
- shares: quota_shares
- snapshot_gigabytes: quota_snapshot_gigabytes
- share_networks: quota_share_networks
- share_groups: quota_share_groups
- share_group_snapshots: quota_share_group_snapshots
- share_replicas: quota_share_replicas
- replica_gigabytes: quota_replica_gigabytes
Response example
----------------
.. literalinclude:: samples/quota-show-response.json
:language: javascript
Show quota set in detail (since API v2.25)
==========================================
.. rest_method:: GET /v2/quota-sets/{project_id_quota_request_path}/detail?user_id={user_id}
.. versionadded:: 2.25
Shows quotas for a project in detail.
If you specify the optional ``user_id`` query parameter, you get
the quotas for this user in the project. If you omit this parameter,
you get the quotas for the project.
Response codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- project_id_quota_request_path: project_id_quota_request_path
- user_id: user_id_query
- share_type: share_type_for_quota
Response parameters
-------------------
.. rest_parameters:: parameters.yaml
- quota_set: quota_set
- id: quota_project_id
- gigabytes: quota_gigabytes_detail
- snapshots: quota_snapshots_detail
- shares: quota_shares_detail
- snapshot_gigabytes: quota_snapshot_gigabytes_detail
- share_networks: quota_share_networks_detail
- share_groups: quota_share_groups_detail
- share_group_snapshots: quota_share_group_snapshots_detail
- share_replicas: quota_share_replicas_detail
- replica_gigabytes: quota_replica_gigabytes_detail
Response example
----------------
.. literalinclude:: samples/quota-show-detail-response.json
:language: javascript
Update quota set
================
.. rest_method:: PUT /v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}
Updates quotas for a project.
If you specify the optional ``user_id`` query parameter, you update
the quotas for this user in the project. If you omit this parameter,
you update the quotas for the project.
Response codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- project_id_quota_request_path: project_id_quota_request_path
- user_id: user_id_query
- quota_set: quota_set
- force: force
- gigabytes: quota_gigabytes_request
- snapshots: quota_snapshots_request
- snapshot_gigabytes: quota_snapshot_gigabytes_request
- shares: quota_shares_request
- share_networks: quota_share_networks_request
- share_groups: quota_share_groups_request
- share_group_snapshots: quota_share_group_snapshots_request
- share_type: share_type_for_quota
- share_replicas: quota_share_replicas_request
- replica_gigabytes: quota_replica_gigabytes_request
Request example
---------------
.. literalinclude:: samples/quota-update-request.json
:language: javascript
Response parameters
-------------------
.. rest_parameters:: parameters.yaml
- quota_set: quota_set
- id: quota_project_id
- gigabytes: quota_gigabytes
- snapshots: quota_snapshots
- shares: quota_shares
- snapshot_gigabytes: quota_snapshot_gigabytes
- share_networks: quota_share_networks
- share_groups: quota_share_groups
- share_group_snapshots: quota_share_group_snapshots
- share_replicas: quota_share_replicas
- replica_gigabytes: quota_replica_gigabytes
Response example
----------------
.. literalinclude:: samples/quota-update-response.json
:language: javascript
Delete quota set
================
.. rest_method:: DELETE /v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}
Deletes quotas for a project. The quota reverts to the default quota.
If you specify the optional ``user_id`` query parameter, you delete
the quotas for this user in the project. If you omit this parameter,
you delete the quotas for the project.
Response codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- project_id_quota_request_path: project_id_quota_request_path
- user_id: user_id_query
- share_type: share_type_for_quota