
# 分配用户 - AttachInstances
#### 功能介绍
将桌面分配给用户。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/Workspace/doc?api=AttachInstances)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                       | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                             | 别名 | 依赖的授权项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  |:---|:---|:---|:---|:---|:---|
  | workspace:desktops:attach | Write | desktop \*  | - g:ResourceTag/\<tag-key\>   - g:EnterpriseProjectId    | -  | - vpc:ports:get  - ims:images:get  - ims:images:list  - ims:images:share  - ims:images:updateMemberStatus  - ims:images:deleteMember  - ims:images:addMember   |
     
  
 
#### URI
POST /v2/{project_id}/desktops/attach
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
 表2请求Body参数 
| 参数                     | 是否必选 | 参数类型                                                                                                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| desktops               | 否    | Array of [AttachInstancesDesktopInfo] objects | 桌面信息列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| image_type             | 否    | String                                                                                              | 镜像类型，涉及变更镜像时需传（可选）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| image_id               | 否    | String                                                                                              | 模板ID，涉及变更镜像时需传（可选）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| desktop_name_policy_id | 否    | String                                                                                              | 策略id，用于指定生成桌面名称策略，如果指定了桌面名称则优先使用指定的桌面名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| encrypt_type           | 否    | String                                                                                              | 加密类型。 - KEEP：保持原有加密状态   - UNENCRYPTED：不加密   - ENCRYPTED：加密（需同步上传kms_id）    |
| kms_id                 | 否    | String                                                                                              | 密钥ID，encrypt_type为ENCRYPTED时必传。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表3AttachInstancesDesktopInfo 
| 参数                | 是否必选 | 参数类型                                                                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| desktop_id        | 否    | String                                                                                        | 待分配的桌面ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| user_name         | 否    | String                                                                                        | 桌面所属的用户，当桌面分配成功后此用户可以登录该桌面。只允许输入大写字母、小写字母、数字、中划线（-）和下划线（_）。域类型为LITE_AD时，使用小写字母或者大写字母开头，长度范围为\[1-20\]。当域类型为LOCAL_AD时，用户名可以使用小写字母或者大写字母或者数字开头，长度范围为\[1-32\]。Windows桌面用户最长支持20个字符，Linux桌面用户最长支持32个字符。用户名不能与分配的机器名重名。 attach_user_infos为空时,必填,attach_user_infos优先级更高                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| user_id           | 否    | String                                                                                        | 用户id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| user_email        | 否    | String                                                                                        | 合法用户邮箱，桌面分配成功后系统会通过发送邮件的方式通知用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| user_group        | 否    | String                                                                                        | 桌面用户所属的用户组,attach_user_infos为空时,必填,attach_user_infos优先级更高。 - sudo：Linux管理员组。   - default：Linux默认用户组。   - administrators：Windows管理员组。管理员拥有对该桌面的完全访问权，可以做任何需要的更改（禁用操作除外）。   - users：Windows标准用户组。标准用户可以使用大多数软件，并可以更改不影响其他用户的系统设置。    |
| computer_name     | 否    | String                                                                                        | 桌面名，桌面名必须保证唯一。只允许输入大写字母、小写字母、数字、中划线（-）和下划线（_）；以字母开头且不允许以中划线（-）结尾；长度范围为\[1-15\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| is_clear_data     | 否    | Boolean                                                                                       | 该字段只有当解绑和绑定为同一个用户时生效。表示绑定时是否清理桌面数据，true：清理，false：不清理，默认值为true。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| attach_user_infos | 否    | Array of [AttachInstancesUserInfo] objects | 待分配的用户信息列表,只有多用户桌面分配多人时有效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表4AttachInstancesUserInfo 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| user_id    | 否    | String | 当type字段为USER时，填写用户id；当type字段为GROUP时，填写用户组id，后端服务会校验组id是否存在；                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| user_name  | 是    | String | 桌面分配对象的名称，当type类型USER时填写用户名字；当type类型GROUP时填写用户组名称。 - 当type类型USER时：桌面所属的用户，当桌面分配成功后此用户可以登录该桌面。只允许输入大写字母、小写字母、数字、中划线（-）和下划线（_）。域类型为LITE_AD时，使用小写字母或者大写字母开头，长度范围为\[1-20\]。当域类型为LOCAL_AD时，用户名可以使用小写字母或者大写字母或者数字开头，长度范围为\[1-64\]。Windows桌面用户最长支持20个字符，Linux桌面用户最长支持64个字符。后端服务会校验用户名是否存在，并且用户名不能与机器名重复。   - 当type类型GROUP时：只能为中文、字母、数字及特殊符号-_。                                                                                                   |
| domain     | 否    | String | 用户所属域。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| user_group | 是    | String | 桌面用户所属的用户组。 - sudo：Linux管理员组。   - default：Linux默认用户组。   - administrators：Windows管理员组。管理员拥有对该桌面的完全访问权，可以做任何需要的更改（禁用操作除外）。   - users：Windows标准用户组。标准用户可以使用大多数软件，并可以更改不影响其他用户的系统设置。    |
| type       | 否    | String | 对象类型，可选值为，默认值为USER： - USER：用户。   - GROUP：用户组。                                                                                                                                                                                                                                                                                                                                                                                             |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数     | 参数类型   | 描述           |
|:---|:---|:---|
| job_id | String | 创建分配桌面总任务id。 |
   
**状态码：400**
表6响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：401**
表7响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：403**
表8响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：404**
表9响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：409**
表10响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：500**
表11响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
#### 请求示例
```
POST /v2/0bec5db98280d2d02fd6c00c2de791ce/desktops/attach
{
  "desktops" : [ {
    "desktop_id" : "string",
    "user_name" : "string",
    "user_group" : "string",
    "computer_name" : "string",
    "is_clear_data" : "true"
  } ],
  "image_type" : "string",
  "image_id" : "string",
  "desktop_name_policy_id" : "string"
}
```
#### 响应示例
**状态码：200**
正常。
```
{
  "job_id" : "string"
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 正常。                     |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 409 | 操作冲突。                   |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode.html)。
