# API Actions

This topic describes only the authorization information of EVS v2 APIs. For the v3 APIs that provide the same functions as their v2 APIs, their authorization information is the same as that of the v2 APIs.

For example, the v2 API for creating disks is POST /v2/{project_id}/cloudvolumes, and the v3 API for creating disks is POST /v3/{project_id}/cloudvolumes. The authorization information of both APIs is the same.

In the following tables, √ indicates that the item is supported, and × indicates that the item is not supported.

#### API Version Query

Permission | API | Action | IAM Project (Project)
--- | --- | --- | ---
Query API versions (OpenStack Cinder API). | GET / | None | √
Query the API version (OpenStack Cinder API). | GET /{api_version} | None | √

#### EVS Disk

Permission | API | Action | IAM Project (Project)
--- | --- | --- | ---
Create EVS disks. | POST /v2/{project_id}/cloudvolumes | evs:volumes:create | √

Create EVS disks (OpenStack Cinder API).

POST /v2/{project_id}/volumes

- Create empty EVS disks.

  evs:volumes:create

  evs:volumes:get

- Create EVS disks from images.

  evs:volumes:create

  ims:images:get

  evs:volumes:get

- Create EVS disks from snapshots.

  evs:volumes:create

  evs:snapshots:get

  evs:volumes:get

√

Expand the capacity of an EVS disk. | POST /v2/{project_id}/cloudvolumes/{volume_id}/action | evs:volumes:extend | √
Query EVS disks. | GET /v2/{project_id}/cloudvolumes | evs:volumes:list | √
Query EVS disks (OpenStack Cinder API). | GET /v2/{project_id}/volumes | evs:volumes:list | √
Query details of all EVS disks. | GET /v2/{project_id}/cloudvolumes/detail | evs:volumes:list | √
Querying Details About All Disks | GET /v2/{project_id}/os-vendor-volumes/detail | evs:volumes:list | √
Query details of all EVS disks (OpenStack Cinder API). | GET /v2/{project_id}/volumes/detail | evs:volumes:list | √
Query details of an EVS disk. | GET /v2/{project_id}/os-vendor-volumes/{volume_id} | evs:volumes:get | √
Query details of an EVS disk (OpenStack Cinder API). | GET /v2/{project_id}/volumes/{volume_id} | evs:volumes:get | √
Query details of an EVS disk. | GET /v2/{project_id}/cloudvolumes/{volume_id} | evs:volumes:get | √
Delete an EVS disk. | DELETE /v2/{project_id}/cloudvolumes/{volume_id} | evs:volumes:delete | √
Delete an EVS disk (OpenStack Cinder API). | DELETE /v2/{project_id}/volumes/{volume_id} | evs:volumes:delete evs:volumes:get | √
Update EVS disk information. | PUT /v2/{project_id}/cloudvolumes/{volume_id} | evs:volumes:update | √
Update EVS disk information (OpenStack Cinder API). | PUT /v2/{project_id}/volumes/{volume_id} | evs:volumes:update evs:volumes:get | √
Update one piece of EVS disk metadata (OpenStack Cinder API). | PUT /v2/{project_id}/volumes/{volume_id}/metadata/{key} | evs:volumes:update evs:volumes:get | √
Update the metadata of an EVS disk (OpenStack Cinder API). | PUT /v2/{project_id}/volumes/{volume_id}/metadata | evs:volumes:update evs:volumes:get | √
Query one piece of EVS disk metadata (OpenStack Cinder API). | GET /v2/{project_id}/volumes/{volume_id}/metadata/{key} | evs:volumes:get | √
Delete one piece of EVS disk metadata (OpenStack Cinder API). | DELETE /v2/{project_id}/volumes/{volume_id}/metadata/{key} | evs:volumes:delete evs:volumes:get | √
Query the metadata of an EVS disk (OpenStack Cinder API). | GET /v2/{project_id}/volumes/{volume_id}/metadata/{key} | evs:volumes:get | √
Add the metadata of an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/metadata | evs:volumes:update evs:volumes:get | √
Query EVS disk types (OpenStack Cinder API). | GET /v2/{project_id}/types | evs:types:get | √
Query details of an EVS disk type (OpenStack Cinder API). | GET /v2/{project_id}/types/{type_id} | evs:types:get | √
Query tenant quotas (OpenStack Cinder API). | GET /v2/{project_id}/os-quota-sets/{project_id} | evs:quotas:get | √
Query extension APIs (OpenStack Cinder API). | GET /v2/{project_id}/extensions | None | √
Query information of all AZs (OpenStack Cinder API). | GET /v2/{project_id}/os-availability-zone | None | √
Query loading progress of a lazyloading disk. | GET /v3/{project_id}/os-vendor-volumes/{volume_id}/internal-info | evs:volumes:get | √
Query EVS disks (OpenStack Cinder API). | GET /v3/{project_id}/volumes/summary | evs:volumes:get evs:volumes:list | √

#### EVS Disk Actions

Permission | API | Action | IAM Project (Project)
--- | --- | --- | ---
Expand the capacity of an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-extend" | evs:volumes:extend evs:volumes:get | √
Export the EVS disk data as an image (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-volume_upload_image" | evs:volumes:uploadImage | √
Attach an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-attach" | evs:volumes:attach evs:volumes:get | √
Detach an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-detach" | evs:volumes:detach evs:volumes:get | √
Reserve an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-reserve" | evs:volumes:attach | √
Cancel reservation of an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-unreserve" | evs:volumes:attach | √
Set the bootable flag for an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-set_bootable" | evs:volumes:update | √
Set the read-only attribute for an EVS disk (OpenStack Cinder API). | POST /v2/{project_id}/volumes/{volume_id}/action action="os-update_readonly_flag" | evs:volumes:update | √

#### EVS Snapshot

Permission | API | Action | IAM Project (Project)
--- | --- | --- | ---
Create an EVS snapshot (OpenStack Cinder API). | POST /v2/{project_id}/snapshots | evs:snapshots:create evs:volumes:get | √
Create an EVS snapshot. | POST /v2/{project_id}/cloudsnapshots | evs:snapshots:create | √
Query EVS snapshots (OpenStack Cinder API). | GET /v2/{project_id}/snapshots | evs:snapshots:list | √
Query details of EVS snapshots (OpenStack Cinder API). | GET /v2/{project_id}/snapshots/detail | evs:snapshots:list | √
Query details about EVS snapshots. | GET /v2/{project_id}/cloudsnapshots/detail | evs:snapshots:list | √
Update an EVS snapshot (OpenStack Cinder API). | PUT /v2/{project_id}/snapshots/{snapshot_id} | evs:snapshots:update evs:snapshots:get | √
Update an EVS snapshot. | PUT /v2/{project_id}/cloudsnapshots/{snapshot_id} | evs:snapshots:update | √
Query details about a single EVS snapshot (OpenStack Cinder API). | GET /v2/{project_id}/snapshots/{snapshot_id} | evs:snapshots:get | √
Querying details about an EVS snapshot. | GET /v2/{project_id}/cloudsnapshots/{snapshot_id} | evs:snapshots:get | √
Delete an EVS snapshot (OpenStack Cinder API). | DELETE /v2/{project_id}/snapshots/{snapshot_id} | evs:snapshots:delete evs:snapshots:get evs:volumes:get | √
Deleting an EVS snapshot. | DELETE /v2/{project_id}/cloudsnapshots/{snapshot_id} | evs:snapshots:delete | √
Roll back a snapshot to an EVS disk. | POST /v2/{project_id}/cloudsnapshots/{snapshot_id}/rollback | evs:snapshots:rollback | √
Roll back a snapshot to an EVS disk. | POST /v2/{project_id}/os-vendor-snapshots/{snapshot_id}/rollback | evs:snapshots:rollback evs:snapshots:get evs:volumes:get | √
Add the metadata of an EVS snapshot (OpenStack Cinder API). | POST /v2/{project_id}/snapshots/{snapshot_id}/metadata | evs:snapshots:update evs:snapshots:get | √
Query the metadata of an EVS snapshot (OpenStack Cinder API). | GET /v2/{project_id}/snapshots/{snapshot_id}/metadata | evs:snapshots:get | √
Update one piece of EVS snapshot metadata (OpenStack Cinder API). | PUT /v2/{project_id}/snapshots/{snapshot_id}/metadata/{key} | evs:snapshots:update evs:snapshots:get | √
Update the metadata of an EVS snapshot (OpenStack Cinder API). | PUT /v2/{project_id}/snapshots/{snapshot_id}/metadata | evs:snapshots:update evs:snapshots:get | √
Query one piece of EVS snapshot metadata (OpenStack Cinder API). | GET /v2/{project_id}/snapshots/{snapshot_id}/metadata/{key} | evs:snapshots:get | √
Delete one piece of EVS snapshot metadata (OpenStack Cinder API). | DELETE /v2/{project_id}/snapshots/{snapshot_id}/metadata/{key} | evs:snapshots:delete evs:snapshots:get | √

#### EVS Tag

Permission | API | Action | IAM Project (Project)
--- | --- | --- | ---

Obtain all EVS tags of a tenant.

GET /v2/{project_id}/os-vendor-tags/{resource_type}

- EVS disk: evs:volumeTags:list
- Backup: evs:backupTags:list
- Snapshot: evs:snapshotTags:list

√

Query EVS resources by tag.

GET /v2/{project_id}/os-vendor-tags/{resource_type}/resource_instances

- EVS disk: evs:volumeTags:get
- Backup: evs:backupTags:get
- Snapshot: evs:snapshotTags:get

√

Add or update tags for an EVS resource.

POST /v2/{project_id}/os-vendor-tags/{resource_type}/{resource_id}

- EVS disk: evs:volumeTags:create
- Backup: evs:backupTags:create
- Snapshot: evs:snapshotTags:create

√

Obtain tags of an EVS resource.

GET /v2/{project_id}/os-vendor-tags/{resource_type}/{resource_id}

- EVS disk: evs:volumeTags:getById
- Backup: evs:backupTags:getById
- Snapshot: evs:snapshotTags:getById

√

Reset the tags of an EVS resource.

PUT /v2/{project_id}/os-vendor-tags/{resource_type}/{resource_id}

- EVS disk: evs:volumeTags:update
- Backup: evs:backupTags:update
- Snapshot: evs:snapshotTags:update

√

Batch delete the tags for an EVS resource.

POST /v2/{project_id}/os-vendor-tags/{resource_type}/{resource_id}/action

- EVS disk: evs:volumeTags:delete

  evs:volumeTags:getById

- Backup: evs:backupTags:delete

  evs:backupTags:getById

- Snapshot: evs:snapshotTags:delete

  evs:snapshotTags:getById

√

Delete the tags of an EVS resource by key.

DELETE /v2/{project_id}/os-vendor-tags/{resource_type}/{resource_id}/{key}

- EVS disk: evs:volumeTags:getById

  evs:volumeTags:delete

- Backup: evs:backupTags:getById

  evs:backupTags:delete

- Snapshot: evs:snapshotTags:getById

  evs:snapshotTags:delete

√

Update the tags of an EVS resource by key.

PUT /v2/{project_id}/os-vendor-tags/{resource_type}/{resource_id}/{key}

- EVS disk: evs:volumeTags:update
- Backup: evs:backupTags:update
- Snapshot: evs:snapshotTags:update

√

Batch delete tags for a specified EVS disk. | POST /v2/{project_id}/os-vendor-volumes/{volume_id}/tags/action | evs:volumeTags:delete | √
Query the tags of an EVS disk. | GET /v2/{project_id}/os-vendor-volumes/{volume_id}/tags | evs:volumeTags:getById | √
Batch add tags for a specified EVS disk. | POST /v2/{project_id}/os-vendor-volumes/{volume_id}/tags/action | evs:volumeTags:create | √
Query details of EVS disks by tag. | POST /v2/{project_id}/os-vendor-volumes/resource_instances/action | evs:volumeTags:get | √
Query tags of an EVS resource by key. | GET /v2/{project_id}/os-vendor-tags/{resource_type}/{resource_id}/{key} | evs:volumeTags:getById | √
Query the number of EVS disks by tag. | POST /v2/{project_id}/os-vendor-volumes/resource_instances/action | evs:volumeTags:get | √

Permission | API | Action | IAM Project (Project)
--- | --- | --- | ---

Obtain all EVS tags of a tenant.

GET /v2/{project_id}/cloudvolumes/tags

- EVS disk: evs:volumeTags:list
- Backup: evs:backupTags:list

√

Batch add tags for a specified EVS disk. | POST /v2/{project_id}/cloudvolumes/{volume_id}/tags/action | evs:volumeTags:create | √
Batch delete tags for a specified EVS disk. | POST /v2/{project_id}/cloudvolumes/{volume_id}/tags/action | evs:volumeTags:delete | √
Query the tags of an EVS disk. | GET /v2/{project_id}/cloudvolumes/{volume_id}/tags | evs:volumeTags:getById | √
Query details of EVS disks by tag. | POST /v2/{project_id}/cloudvolumes/resource_instances/action | evs:volumeTags:get | √

#### EVS Disk Transfer

Permission | API | Action | IAM Project (Project)
--- | --- | --- | ---
Create an EVS disk transfer (OpenStack Cinder API). | POST /v2/{project_id}/os-volume-transfer | evs:transfers:create | √
Query all EVS disk transfers of a tenant (OpenStack Cinder API). | GET /v2/{project_id}/os-volume-transfer | evs:transfers:list | √
Query details of all EVS disk transfers of a tenant (OpenStack Cinder API). | GET /v2/{project_id}/os-volume-transfer/detail | evs:transfers:list | √
Query details of an EVS disk transfer (OpenStack Cinder API). | GET /v2/{project_id}/os-volume-transfer/{transfer_id} | evs:transfers:get | √
Accept an EVS disk transfer (OpenStack Cinder API). | POST /v2/{project_id}/os-volume-transfer/{transfer_id}/accept | evs:transfers:accept | √
Delete an EVS disk transfer (OpenStack Cinder API). | DELETE /v2/{project_id}/os-volume-transfer/{transfer_id} | evs:transfers:delete | √

Parent topic: Appendix