
# 创建镜像仓库版本操作账号-CreateImageRepoVersionAccount
#### 功能介绍
创建镜像仓库版本操作账号。
使用说明：假设发送请求后得到用户名cn-north-1@XXXXXXXXXX、密码YYYYYYYYYYY、镜像版本路径 swr.cn-north-1.myhuaweicloud.com/octopus-087679f0aa80d32a2f4ec0172f5e902b/image-10001:v1.0 、动作为pull，在本地一台安装了docker软件的计算机上输入"docker login -u cn-north-1@XXXXXXXXXX -p YYYYYYYYYYY swr.cn-north-1.myhuaweicloud.com"进行登录，然后输入"docker pull swr.cn-north-1.myhuaweicloud.com/octopus-087679f0aa80d32a2f4ec0172f5e902b/image-10001:v1.0" 拉取对应镜像。如果动作是push，则需要先在本地构建出标签为"swr.cn-north-1.myhuaweicloud.com/octopus-087679f0aa80d32a2f4ec0172f5e902b/image-10001:v1.0" 的镜像，然后通过"docker push swr.cn-north-1.myhuaweicloud.com/octopus-087679f0aa80d32a2f4ec0172f5e902b/image-10001:v1.0" 命令推送到octopus平台。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-octopus/Permission.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                             | 访问级别  | 资源类型（\*为必须）  | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | octopus:imageRepo:createAccount | Write | workspace \* | -   | -  | -      |
     
  
 
#### URI
POST /v1.0/{project_id}/common/image-registry/image-repos/{id}/versions/{version}/accounts
表1路径参数 
| 参数         | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| project_id | 是    | String  | **参数解释**： 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-octopus/octopus-10-0020.html)。 **约束限制**： 不涉及 **取值范围**： 只能用小写字母 a-z 和数字 0-9组成，且长度为32个字符 **默认取值**： 不涉及 |
| id         | 是    | Long    | **参数解释**： 镜像仓库id **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及                                                                                                               |
| version    | 是    | Integer | **参数解释**： 版本号 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及                                                                                                                   |
   
表2Query参数 
| 参数     | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| action | 是    | String | **参数解释**： 镜像操作动作 **约束限制**： 不涉及 **取值范围**： - PUSH：推送   - PULL：拉取    **默认取值**： 不涉及 |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| Content-Type | 是    | String | **参数解释**： 内容类型。填application/json **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及                          |
| X-Auth-Token | 是    | String | **参数解释**： 用户Token，通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值） **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及 |
   
#### 响应参数
**状态码：201**
表4响应Body参数 
| 参数        | 参数类型                                                                                                  | 描述                                                               |
|:---|:---|:---|
| payload   | [RepoVersionAccountPayload] object | **参数解释**： 实际返回信息 |
| meta_info | [MetaInfo] object                                   | **参数解释**： 元数据   |
   
 表5RepoVersionAccountPayload 
| 参数   | 参数类型                                                                                    | 描述                                                                   |
|:---|:---|:---|
| item | [RepoVersionAccount] object | **参数解释**： 登录及操作指令相关信息 |
   
 表6RepoVersionAccount 
| 参数        | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| username  | String | **参数解释**： docker login登录名称 **取值范围**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                 |
| password  | String | **参数解释**： docker login登录密码 **取值范围**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                  |
| action    | String | **参数解释**： docker操作命令 **取值范围**： - pull   - push    |
| expire_at | Long   | **参数解释**： 过期时间戳，单位为秒 **取值范围**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                          |
| path      | String | **参数解释**： 镜像版本完整路径 **取值范围**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表7MetaInfo 
| 参数           | 参数类型   | 描述                                                                                                                                                                                              |
|:---|:---|:---|
| current_time | String | **参数解释**： 请求时间，UTC时间格式，时间为UTC标准时间 **取值范围**： 不涉及 |
   
#### 请求示例
创建镜像操作账号
```
POST https://{endpoint}/v1.0/{project_id}/common/image-registry/image-repos/{id}/versions/{version}/accounts?action=PUSH
```
#### 响应示例
无
#### 状态码
| 状态码 | 描述                 |
|:---|:---|
| 201 | 创建成功               |
| 400 | 参数校验失败             |
| 401 | 身份认证失败             |
| 403 | 权限校验失败             |
| 404 | 找不到镜像仓库或版本         |
| 409 | 初始化状态的版本无法创建pull账号 |
| 500 | 系统内部错误             |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-octopus/ErrorCode.html)。
