0cf83ca24d
Trival fix some typos in api-ref Change-Id: Ia684e0f4dbf7075a05b78f0384754ad04d55bcad
151 lines
3.5 KiB
ReStructuredText
151 lines
3.5 KiB
ReStructuredText
.. -*- rst -*-
|
|
|
|
Sharing
|
|
*******
|
|
|
|
Image sharing provides a means for one tenant (the "producer") to make a
|
|
private image available to other tenants (the "consumers"). This ability
|
|
can unfortunately be misused to spam tenants' image lists, so these calls
|
|
may not be exposed in some deployments. (The Images v2 API has a more
|
|
sophisticated sharing scheme that contains an anti-spam provision.)
|
|
|
|
Add member to image
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: PUT /v1/images/{image_id}/members/{member_id}
|
|
|
|
Adds the tenant whose tenant ID is ``member_id`` as a member of the
|
|
image denoted by ``image_id``.
|
|
|
|
By default, an image member cannot further share the image with other
|
|
tenants. This behavior can be overridden by supplying a request body
|
|
with the call that specifies ``can_share`` as ``true``.
|
|
|
|
Thus:
|
|
|
|
- If you omit the request body, this call adds the specified tenant as a
|
|
member of the image with the ``can_share`` attribute set to ``false``.
|
|
- If you include a request body, the ``can_share`` attribute will be set
|
|
to the appropriate boolean value you have supplied in the request body.
|
|
- If the specified tenant is already a member, and there is no request
|
|
body, the membership (including the ``can_share`` attribute) remains
|
|
unmodified.
|
|
- If the specified tenant is already a member and the request includes
|
|
a body, the ``can_share`` attribute of the tenant will be set to whatever
|
|
value is specified in the request body.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- image_id: image_id-in-path
|
|
- member_id: member_id-in-path
|
|
- can_share: can_share
|
|
- member_id: member_id
|
|
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/image-member-add-request.json
|
|
:language: json
|
|
|
|
|
|
Replace membership list for an image
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: PUT /v1/images/{image_id}/members
|
|
|
|
Replaces the membership list for an image so that the tenants whose
|
|
tenant IDs are listed in the member objects comprising the request body
|
|
become all and only the members of the image denoted by ``image_id``.
|
|
|
|
If the ``can_share`` attribute is omitted for in any member object:
|
|
|
|
- If the member already exists on the image, that member's ``can_share``
|
|
setting remains unchanged.
|
|
- If the member did not already exist on the image, that member's
|
|
``can_share`` attribute is set to ``false``.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- image_id: image_id-in-path
|
|
- memberships: memberships
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/image-members-add-request.json
|
|
:language: json
|
|
|
|
|
|
Remove member
|
|
~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: DELETE /v1/images/{image_id}/members/{member_id}
|
|
|
|
Removes a member from an image.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- image_id: image_id-in-path
|
|
- member_id: member_id-in-path
|
|
|
|
|
|
List shared images
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: GET /v1/shared-images/{owner_id}
|
|
|
|
Lists the VM images that an owner shares. The ``owner_id`` is the tenant ID
|
|
of the image owner.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- owner_id: owner_id-in-path
|
|
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- shared_images: shared_images
|
|
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/shared-images-list-response.json
|
|
:language: json
|