# 使用外部镜像文件制作数据镜像（新） - CreateDataImageInSafeMode
#### 功能介绍
使用上传至OBS桶中的外部数据盘镜像文件制作数据盘镜像。作为异步接口，调用成功，只是说明后台收到了制作请求，镜像是否制作成功需要通过异步任务查询接口查询该任务的执行状态，具体请参考[异步任务进度查询 - ShowJobProgress](https://support.huaweicloud.com/api-ims/ims_03_0911.html)。
#### 约束与限制
制作加密镜像场景需要租户有KMS相关action权限。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IMS/doc?locale=zh-cn&consoleCurrentProductId=ims&consoleCurrentProductshort=&api=CreateDataImageInSafeMode)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ims/ims_03_appendix_03.html)。
#### URI
POST /v2.1/cloudimages/dataimages/action
#### 请求消息
- 请求参数
  
  | 参数                   | 是否必选 | 参数类型                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
  |:---|:---|:---|:---|
  | name                 | 是    | String                                                                   | **参数解释：** 镜像名称。name参数说明请参考[镜像属性](https://support.huaweicloud.com/api-ims/ims_03_0901.html)。 **约束限制：** 名称的首尾字符不能为空格。 **取值范围：** 只能由中文、字母、数字、空格和特殊字符 - _ . 组成，且首尾字符都不能为空格。名称的长度为1～128字符。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | description          | 否    | String                                                                   | **参数解释：** 镜像描述信息。description参数说明请参考[镜像属性](https://support.huaweicloud.com/api-ims/ims_03_0901.html)。 **约束限制：** 不涉及 **取值范围：** 支持字母、数字、中文等，不支持回车、\<、\>，长度不能超过1024个字符。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | os_type              | 否    | String                                                                   | **参数解释：** 操作系统类型。 **约束限制：** 不涉及 **取值范围：** Windows：表示Windows操作系统 Linux：表示Linux操作系统 **默认取值：** Linux                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  | image_url             | 是      | String                                                                    | **参数解释：** OBS桶中外部镜像文件地址。 **约束限制：** - 在使用OBS桶的外部镜像文件制作镜像时生效且为必选字段。格式为\<OBS桶名\>:\<OBS镜像文件名称\>。  - 目前支持使用vhd、zvhd、vmdk、qcow2、raw、zvhd2、vhdx、qcow、vdi或qed格式镜像文件创建私有镜像。除文件格式为zvhd2和raw外，从OBS桶中选取的镜像文件的实际大小不能超过128GiB。   说明： 此处的OBS桶和镜像文件的存储类别必须是标准存储。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                           |
  | min_disk             | 是    | Integer                                                                  | **参数解释：** 最小数据盘大小，单位为GB。 **约束限制：** 不涉及 **取值范围：** Linux操作系统取值为10～1024GB，Windows操作系统取值为20～1024GB。  **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | cmk_id               | 否     | String                                                                   | **参数解释：** 创建加密镜像的自定义密钥。 密钥信息请参考[查看密钥详细信息](https://support.huaweicloud.com/usermanual-dew/dew_01_0179.html)获取。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  | tags                 | 否    | Array of strings                                                         | **参数解释：** 镜像标签列表。tag的参数说明请参考[镜像标签数据格式](https://support.huaweicloud.com/api-ims/ims_03_0902.html)。 - 标签的键可以包含任意语种字母、数字、空格和 _ . : + - @，但首尾不能含有空格，不能以sys_开头。  - 标签的值可以包含任意语种字母、数字、空格和_ . : / + - @，但首尾不能含有空格。   **约束限制：** tags和image_tags只能使用一个。                                                                                                                                                                                                                                                                                                                                                              |
  | image_tags            | 否     | Array of [ImageTag] objects | **参数解释：** 新规范的镜像标签列表。image_tags数据结构说明请参见[表1 image_tags数据结构说明]。 **约束限制：** tags和image_tags只能使用一个。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | enterprise_project_id | 否     | String                                                                  | **参数解释：** 表示当前镜像所属的企业项目。 关于企业项目特性的详细信息，请参考"[企业中心总览](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0123692049.html)"。企业项目ID的获取，请参考[如何获取企业项目ID](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0126101490.html)。 **约束限制：** 如果只使用企业项目授权，必须传入enterprise_project_id参数，否则可能会出现报错无权限。 **取值范围：** - 取值为0或无该值，表示属于default企业项目。  - 取值为UUID，表示属于该UUID对应的企业项目。   **默认取值：** 不涉及 |
     
   表1参数：image_tags 
  | 名称      | 是否必选 | 参数类型  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  |:---|:---|:---|:---|
  | key   | 否     | string | **参数解释：** 标签的键。 **约束限制：** 长度不能超过128个字符。 **取值范围** 标签的键可以包含任意语种字母、数字、空格和 _ . : + - @，但首尾不能含有空格，不能以sys_开头。 **默认取值：** 不涉及 |
  | value | 否     | string | **参数解释：** 标签的值。 **约束限制：** 长度不能超过255个字符。 **取值范围：** 标签的值可以包含任意语种字母、数字、空格和_ . : / + - @，但首尾不能含有空格。 **默认取值：** 不涉及               |
     
  
 
#### 请求示例
- 使用外部镜像文件制作数据镜像，其中，镜像标签数据格式为tags，OBS桶中外部镜像文件地址为""image-test:fedora_data1.qcow2"，操作系统为Linux，数据盘大小为40G。
  ```
  POST https://{Endpoint}/v2.1/cloudimages/dataimages/action
  {
    "name": "fedora-data1",
    "image_url": "image-test:fedora_data1.qcow2",
    "description": "fedora的数据盘1",
    "min_disk": 40,
    "tags": [
      "aaa.111",
      "bbb.222"
    ],
    "os_type": "Linux"
  }
  ```
  
- 使用外部镜像文件制作数据镜像，其中，镜像标签数据格式为image_tags，OBS桶中外部镜像文件地址为"image-test:fedora_data1.qcow2"，操作系统为Linux，数据盘大小为40G。
  ```
  POST https://{Endpoint}/v2.1/cloudimages/dataimages/action
  {
    "name": "fedora-data2",
    "image_url": "image-test:fedora_data1.qcow2",
    "description": "fedora的数据盘2",
    "min_disk": 40,
    "image_tags": [{"key":"aaa","value":"111"},{"key":"bbb","value":"222"}],
    "os_type": "Linux"
  }
  ```
  
 
#### 响应消息
- 响应参数
  
  | 参数     | 参数类型  | 描述                                                                                                                                                                                                                                                                                                                     |
  |:---|:---|:---|
  | job_id | String | **参数解释：** 异步任务ID。 详情请参见[6.6.2-异步任务进度查询 - ShowJobProgress](https://support.huaweicloud.com/api-ims/ims_03_0911.html)。 **取值范围：** 不涉及 |
     
  
- 响应样例
  ```
  STATUS CODE 200
  ```
  ```
  {
      "job_id": "4010a32b5f909853015f90aaa24b0015"
  }
  ```
  
 
#### 返回值
- 正常 200
  
- 异常
  
  | 返回值                       | 说明                                                                             |
  |:---|:---|
  | 400 Bad Request           | 请求错误，具体返回错误码请参见[错误码](https://support.huaweicloud.com/api-ims/ims_03_0908.html)。 |
  | 401 Unauthorized          | 鉴权失败。                                                                          |
  | 403 Forbidden             | 没有操作权限。                                                                        |
  | 404 Not Found            | 找不到资源。                                                                        |
  | 500 Internal Server Error | 服务内部错误。                                                                        |
  | 503 Service Unavailable   | 服务不可用。                                                                          |
     
  
 
