
# 批量解绑用户 - BatchDetachInstances
#### 功能介绍
批量将桌面和用户解绑。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/Workspace/doc?api=BatchDetachInstances)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                            | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                | 别名 | 依赖的授权项        |
  |:---|:---|:---|:---|:---|:---|
  | workspace:desktops:batchDetach | Write | desktop \*  | - g:ResourceTag/\<tag-key\>   - g:EnterpriseProjectId    | -  | vpc:ports:get |
     
  
 
#### URI
POST /v2/{project_id}/desktops/batch-detach
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
表2请求Body参数 
| 参数       | 是否必选 | 参数类型                                                                                                     | 描述         |
|:---|:---|:---|:---|
| desktops | 否    | Array of [DetachInstancesDesktopInfo] objects | 解绑的桌面信息列表。 |
   
 表3DetachInstancesDesktopInfo 
| 参数                  | 是否必选 | 参数类型                                                                                               | 描述                                                                                   |
|:---|:---|:---|:---|
| desktop_id          | 否    | String                                                                                             | 分配的桌面ID。                                                                             |
| is_detach_all_users | 否    | Boolean                                                                                            | 表示解关联所有用户：true，如果指定那么detach_user_infos会失效；指定解关联用户：false，通过detach_user_infos指定解关联的用户。 |
| detach_user_infos   | 否    | Array of [DetachInstancesUserInfo] objects | 解分配的用户信息列表。                                                                          |
   
 表4DetachInstancesUserInfo 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| 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参数 
| 参数                    | 参数类型                                                                                | 描述                             |
|:---|:---|:---|
| failed_operation_list | Array of [VmOperateResult] objects | 操作失败桌面列表。                      |
| job_id                | String                                                                              | 任务ID,池桌面返回job_id,普通桌面job_id为空。 |
| success_job_ids       | Array of strings                                                                    | 内部服务操作成功jobId                  |
   
 表6VmOperateResult 
| 参数           | 参数类型   | 描述         |
|:---|:---|:---|
| desktop_id   | String | 桌面ID。      |
| desktop_name | String | 桌面名称。      |
| error_code   | String | 操作失败的错误码。  |
| error_msg    | String | 操作失败的原因描述。 |
   
**状态码：400**
表7响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：401**
表8响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：403**
表9响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：404**
表10响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：409**
表11响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：500**
表12响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
#### 请求示例
```
POST /v2/0bec5db98280d2d02fd6c00c2de791ce/desktops/batch-detach
{
  "desktops" : [ {
    "desktop_id" : "string",
    "is_detach_all_users" : "false",
    "detach_user_infos" : [ {
      "user_id" : "string",
      "user_name" : "string",
      "user_group" : "string",
      "type" : "USER"
    } ]
  } ]
}
```
#### 响应示例
**状态码：200**
正常。
```
{
  "failed_operation_list" : [ ],
  "job_id" : "string"
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 正常。                     |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 409 | 操作冲突。                   |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode.html)。
