
# 创建桌面订单 - CreateDesktopOrder
#### 功能介绍
创建桌面订单。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/Workspace/doc?api=CreateDesktopOrder)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                 | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  |:---|:---|:---|:---|:---|:---|
  | workspace:orders:createDesktopOrder | Write | -           | -   | -  | - kms:cmk:createGrant  - kms:cmk:listGrants  - kms:cmk:get  - kms:cmk:list  - iam:agencies:pass   |
     
  
 
#### URI
POST /v2/{project_id}/desktops/orders/subscribe
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
表2请求Body参数 
| 参数                     | 是否必选 | 参数类型                                                                                     | 描述                                                     |
|:---|:---|:---|:---|
| enterprise_project_id  | 否    | String                                                                                   | 企业项目ID，默认"0"。                                          |
| agency_urn             | 否    | String                                                                                   | 授权给Billing服务的委托URN。使用RAM共享密钥创建包周期云桌面或添加包周期磁盘时，需要传入该字段。 |
| hour_package_resources | 是    | Array of [HourPackageResource] objects | 小时包资源。                                                 |
| extend_param           | 否    | [OrderExtendParam] object                 | 订单的扩展参数。                                               |
   
 表3HourPackageResource 
| 参数              | 是否必选 | 参数类型                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| period_type     | 否    | Integer                                                                  | 订购周期类型：2：月；3：年;必填。                                                                                                                                                                                                                                                                                                                                                                                                      |
| period_num      | 否    | Integer                                                                  | 订购周期数。                                                                                                                                                                                                                                                                                                                                                                                                                  |
| is_auto_renew   | 否    | Integer                                                                  | 是否自动续订。                                                                                                                                                                                                                                                                                                                                                                                                                 |
| used_up_policy  | 否    | String                                                                   | 时长用尽策略： - SHUTDOWN_OR_HIBERNATE：自动关机/休眠。   - PAY_PER_USE：自动按需计费。    |
| create_desktops | 否    | [CreateDesktopReq] object | 创建桌面请求。                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表4CreateDesktopReq 
| 参数                               | 是否必选 | 参数类型                                                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| desktop_type                     | 是    | String                                                                                           | 云桌面类型。 - DEDICATED：专属桌面，单用户。   - SHARED: 多用户共享桌面。            |
| availability_zone                | 否    | String                                                                                           | 可用分区。将桌面创建到指定的可用分区。                                                                                                                                                                                                                                                                                                                                                                                              |
| product_id                       | 是    | String                                                                                           | 套餐ID。                                                                                                                                                                                                                                                                                                                                                                                                            |
| buy_type                         | 否    | String                                                                                           | console页面购买方式。默认值为custom。 - speed：快速购买。   - custom：自定义购买。    |
| image_type                       | 是    | String                                                                                           | 镜像类型。默认值为private。 - private：私有镜像。   - gold：公共镜像。             |
| image_id                         | 是    | String                                                                                           | 镜像ID，用于私有镜像创建桌面场景，配合product_id使用。                                                                                                                                                                                                                                                                                                                                                                                |
| root_volume                      | 是    | [Volume] object                                             | 系统盘。                                                                                                                                                                                                                                                                                                                                                                                                             |
| data_volumes                     | 否    | Array of [Volume] objects                                   | 数据盘列表。                                                                                                                                                                                                                                                                                                                                                                                                           |
| nics                             | 否    | Array of [Nic] objects                                         | 桌面对应的网卡信息，如果不指定则使用默认网卡。                                                                                                                                                                                                                                                                                                                                                                                          |
| security_groups                  | 否    | Array of [SecurityGroupIdInfo] objects         | 桌面使用的安全组，如果不指定则默认使用桌面代理中指定的安全组。                                                                                                                                                                                                                                                                                                                                                                                  |
| desktops                         | 否    | Array of [Desktop] objects                                 | 创建桌面使用的参数列表。长度为1-100。                                                                                                                                                                                                                                                                                                                                                                                            |
| desktop_name                     | 否    | String                                                                                           | 搭配size使用，当size为1时代表桌面名，位数1-15，当size大于1时代表桌面名前缀，位数：1-13。                                                                                                                                                                                                                                                                                                                                                          |
| desktop_ips                      | 否    | Array of strings                                                                                 | 桌面指定分配的ip地址列表,最小为0，最大为100。                                                                                                                                                                                                                                                                                                                                                                                       |
| size                             | 否    | Integer                                                                                          | 创建不分配用户的桌面的个数，和desktops不能同时生效，搭配desktop_name使用。                                                                                                                                                                                                                                                                                                                                                                  |
| email_notification               | 否    | Boolean                                                                                          | 创建成功后是否发送邮件通知桌面用户，默认为true。                                                                                                                                                                                                                                                                                                                                                                                       |
| enterprise_project_id            | 否    | String                                                                                           | 企业项目ID，默认"0。"                                                                                                                                                                                                                                                                                                                                                                                                    |
| ou_name                          | 否    | String                                                                                           | OU名称，在对接AD时使用，需提前在AD中创建OU。                                                                                                                                                                                                                                                                                                                                                                                       |
| tags                             | 否    | Array of [Tag] objects                                         | 标签列表。                                                                                                                                                                                                                                                                                                                                                                                                            |
| apply_shared_vpc_dedicated_param | 否    | [ApplySharedVpcDedicatedParam] object | 共享Vpc专线入参。                                                                                                                                                                                                                                                                                                                                                                                                       |
| eip                              | 否    | [Eip] object                                                   | EIP信息。                                                                                                                                                                                                                                                                                                                                                                                                           |
| desktop_name_policy_id           | 否    | String                                                                                           | 策略id，用于指定生成桌面名称策略，如果指定了桌面名称则优先使用指定的桌面名称。                                                                                                                                                                                                                                                                                                                                                                         |
| hour_package_product_id          | 否    | String                                                                                           | 桌面小时包套餐ID。                                                                                                                                                                                                                                                                                                                                                                                                       |
| hour_package_offering_id         | 否    | String                                                                                           | 桌面小时包offeringID。                                                                                                                                                                                                                                                                                                                                                                                                 |
| if_mount_old_desktop_disk        | 否    | Boolean                                                                                          | 是否在发放新桌面时，挂载旧桌面磁盘为数据盘                                                                                                                                                                                                                                                                                                                                                                                            |
| domain                           | 否    | String                                                                                           | 桌面分配的域。                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表5Volume 
| 参数         | 是否必选 | 参数类型    | 描述                                                                                                                                                                                   |
|:---|:---|:---|:---|
| type       | 是    | String  | 桌面数据盘对应的磁盘类型，需要与系统所提供的磁盘类型相匹配。 -SAS：高IO。 -SSD：超高IO。 -GPSSD：通用型SSD。 |
| size       | 是    | Integer | 磁盘容量，单位GB。系统盘大小范围\[80-32760\]，数据盘范围\[10-32760\]，大小为10的倍数。                                                                                                                            |
| iops       | 否    | Integer | iops，云硬盘每秒进行读写的操作次数。                                                                                                                                                                 |
| throughput | 否    | Integer | 吞吐量，云硬盘每秒成功传送的数据量，即读取和写入的数据量。                                                                                                                                                        |
| kms_id     | 否    | String  | kms密钥id，对创建的磁盘进行加密。                                                                                                                                                                  |
   
 表6Nic 
| 参数        | 是否必选 | 参数类型   | 描述         |
|:---|:---|:---|:---|
| subnet_id | 是    | String | 网卡对应的子网ID。 |
   
 表7SecurityGroupIdInfo 
| 参数 | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| id | 是    | String | 安全组ID。 |
   
 表8Desktop 
| 参数                     | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| user_name              | 是    | String           | 桌面所属的用户，当桌面创建成功后此用户可以登录该桌面。只允许输入大写字母、小写字母、数字、中划线（-）和下划线（_）。域类型为LITE_AD时，使用小写字母或者大写字母开头，长度范围为\[1-20\]。当域类型为LOCAL_AD时，用户名可以使用小写字母或者大写字母或者数字开头，长度范围为\[1-32\]。Windows桌面用户最长支持20个字符，Linux桌面用户最长支持32个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| domain                 | 否    | String           | 用户所属域。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| user_email             | 否    | String           | 合法用户邮箱，桌面创建成功后系统会通过发送邮件的方式通知用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| user_phone             | 否    | String           | 合法用户手机号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| user_group             | 否    | String           | 桌面用户所属的用户组。 - sudo：Linux管理员组。   - default：Linux默认用户组。   - administrators：Windows管理员组。管理员拥有对该桌面的完全访问权，可以做任何需要的更改（禁用操作除外）。   - users：Windows标准用户组。标准用户可以使用大多数软件，并可以更改不影响其他用户的系统设置。    |
| computer_name          | 否    | String           | 桌面名，桌面名必须保证唯一。桌面名称只允许输入大写字母、小写字母、中文、数字、中划线，以字母或数字开头、不能以中划线结尾，长度范围为1\~15(中文字符长度为2，数字及英文字符长度为1)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| os_host_name           | 否    | String           | 系统计算机名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| desktop_name_prefix    | 否    | String           | 桌面名称前缀，不指定"computer_name"时生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| copy_volume_desktop_id | 否    | String           | 需要拷贝数据盘的桌面ID，如果指定了该参数，那么copy_volume_ids不能为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| copy_volume_ids        | 否    | Array of strings | 需要拷贝数据盘桌面的磁盘ID列表，如果指定了该参数，copy_volume_desktop_id不能为空，且磁盘必须属于该桌面。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| if_delete_old_desktop  | 否    | Boolean          | 是否删除按需旧桌面，值为true时，新发放桌面配置并拷贝磁盘后删除旧桌面                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
 表9Tag 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                   |
|:---|:---|:---|:---|
| key   | 是    | String | 标签的键，不能为空，最大长度128个unicode字符。大小写字母，数字，可以包含中划线"-"，下划线"_"，不能包含以下字符"=","\*","\<","\>","\\",",","\|","/"。 |
| value | 否    | String | 标签的值，最大长度43个unicode字符。大小写字母，数字，可以包含中划线"-"，下划线"_"，不能包含以下字符"=","\*","\<","\>","\\",",","\|","/"。       |
   
 表10ApplySharedVpcDedicatedParam 
| 参数                | 是否必选 | 参数类型             | 描述                         |
|:---|:---|:---|:---|
| address           | 否    | String           | 租户指定的共享Vpc专线地址。            |
| port              | 否    | Integer          | 租户指定共享Vpc专线地址端口。           |
| availability_zone | 否    | Array of strings | 开通服务资源使用的可用分区，默认随机使用2个可用区。 |
   
 表11Eip 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| id             | 否    | String  | 桌面绑定的EIP的id，有值时优先绑定EIP。                                                                                                                                                                                                                                                                                                                                                                                |
| type           | 否    | String  | EIP的类型。                                                                                                                                                                                                                                                                                                                                                                                                |
| charge_mode    | 否    | String  | eip带宽计费模式 - TRAFFIC：按流量计费。   - BANDWIDTH：按带宽计费。    |
| bandwidth_size | 否    | Integer | 带宽大小。                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表12OrderExtendParam 
| 参数          | 是否必选 | 参数类型   | 描述                                     |
|:---|:---|:---|:---|
| is_auto_pay | 否    | String | 是否自动付款。true:自动支付; false：不自动支付;默认false。 |
   
#### 响应参数
**状态码：200**
表13响应Body参数 
| 参数       | 参数类型   | 描述                 |
|:---|:---|:---|
| order_id | String | 订单号，下单成功时返回订单ID。   |
| job_id   | String | 任务id，下单成功时返回的任务ID。 |
   
**状态码：400**
表14响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：409**
表15响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：500**
表16响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
#### 请求示例
```
{
  "enterprise_project_id" : "0",
  "hour_package_resources" : [ {
    "period_type" : 2,
    "period_num" : 1,
    "is_auto_renew" : 0,
    "create_desktops" : {
      "desktop_type" : "DEDICATED",
      "email_notification" : true,
      "nics" : [ {
        "subnet_id" : "624afebf-bb07-4b20-89b1-e0a02f1137cd"
      } ],
      "product_id" : "workspace.x86.flexus.xlarge2",
      "enterprise_project_id" : "0",
      "image_type" : "market",
      "image_id" : "4e8aebc3-f4dc-4789-a785-0a1769d44c0d",
      "root_volume" : {
        "type" : "SAS",
        "size" : 80
      },
      "data_volumes" : [ {
        "type" : "SAS",
        "size" : 10
      } ],
      "desktops" : [ {
        "user_name" : "hzh",
        "user_group" : "administrators"
      } ],
      "hour_package_product_id" : "workspace.x86.flexus.xlarge2.120hours"
    },
    "used_up_policy" : "SHUTDOWN_OR_HIBERNATE"
  } ]
}
```
#### 响应示例
**状态码：200**
下单响应体。
```
{
  "order_id" : "string"
}
```
#### 状态码
| 状态码 | 描述                     |
|:---|:---|
| 200 | 下单响应体。                 |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。 |
| 409 | 操作冲突。                  |
| 500 | 服务器内部错误。               |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode.html)。
