
# 批量添加或删除镜像标签 - BatchAddOrDeleteTags
#### 功能介绍
该接口用于为指定镜像批量添加/更新、删除标签。
#### 约束与限制
- 每个标签由键值对组成，标签的key的长度不超过36个字符，value的长度不超过43个字符。key不能为空或者空白字符串，value不能为空，但可以是空白字符串。
- 单个镜像最多添加10个标签。
- 请求体中的多个标签的key不允许重复。
- 此接口为幂等接口： 创建时，如果创建的标签已经存在，即key相同而value不同，则更新对应标签；如果创建的标签已经存在，key/value均相同，则不进行重复添加，视为添加成功。
  删除时，如果指定的标签不存在，则默认视为删除成功。
  

- 批量删除时对key、value的限制： 删除时，对标签的key、value不做字符集范围校验，key不允许为空或空白字符串；value为可选，且不对value做校验。如果要删除的标签不存在，视为删除成功，不报错。删除时，对标签的key、value做长度校验，标签的key不超过127，value不超过255。
  
  
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?locale=zh-cn&consoleCurrentProductId=ims&consoleCurrentProductshort=&product=IMS&api=BatchAddOrDeleteTags)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ims/ims_03_appendix_03.html)。
#### URI
POST /v2/{project_id}/images/{image_id}/tags/action
参数说明请参见[表1]。
 表1参数说明 
| 参数         | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID |
| image_id   | 是    | String | 镜像ID |
   
#### 请求消息
- 请求参数
  
  | 参数     | 是否必选 | 参数类型                                                            | 描述                                                                                                   |
  |:---|:---|:---|:---|
  | tags   | 是    | Array of [ResourceTag] objects | 需要增加、修改或者删除的标签键值对集合。tags参数说明请参考[镜像标签数据格式](https://support.huaweicloud.com/api-ims/ims_03_0902.html)。 |
  | action | 是    | String                                                          | 要进行的标签操作，区分大小写。支持create、delete，分别用于批量地创建/更新、删除标签。                                                    |
     
   表2tags数据结构说明 
  | 参数    | 是否必选 | 参数类型   | 描述          |
  |:---|:---|:---|:---|
  | key   | 是    | String | 标签的键，键不能为空。 |
  | value | 是    | String | 标签的值。       |
     
  
 
#### 请求示例
- 批量添加镜像标签，其中，标签键为"key1"对应的值为"value1"、标签键为"key2"对应的值为"value2"。
  ```
  POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action
  {
     "tags": [{
        "value": "value1",
        "key": "key1"
     },
     {
        "value": "value2",
        "key": "key2"
     },
     {
        "value": "",
        "key": "key3"
     }],
     "action": "create"
  }
  ```
  
- 批量删除镜像标签，其中，标签键为"key1"对应的值为"value1"、标签键为"key2"对应的值为"value2"。
  ```
  POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action
  {
     "tags": [{
        "value": "value1",
        "key": "key1"
     },
     {
        "value": "value2",
        "key": "key2"
     },
     {
        "value": "",
        "key": "key3"
     }],
        "action": "delete"
  }
  ```
  
 
#### 响应消息
- 响应参数 无
  
- 响应样例
  ```
  STATUS CODE 204
  ```
  
 
#### 返回值
- 正常 204
  
- 异常
  
  | 返回值                       | 说明      |
  |:---|:---|
  | 400 Bad Request           | 请求错误。   |
  | 401 Unauthorized          | 鉴权失败。   |
  | 403 Forbidden             | 没有操作权限。 |
  | 404 Not Found             | 找不到资源。  |
  | 500 Internal Server Error | 服务内部错误。 |
  | 503 Service Unavailable   | 服务不可用。  |
     
  
 
