
# 预批量分配用户 - BatchAssociateInstances
#### 功能介绍
预批量将桌面分配给用户。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/Workspace/doc?api=BatchAssociateInstances)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                     | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | workspace:desktops:prepAttachUsers | Write | desktop \*  | - g:ResourceTag/\<tag-key\>   - g:EnterpriseProjectId    | -  | -      |
     
  
 
#### URI
POST /v2/{project_id}/desktops/pre-batch-attach
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
表2请求Body参数 
| 参数           | 是否必选 | 参数类型                                                                                                        | 描述        |
|:---|:---|:---|:---|
| desktops     | 否    | Array of [AttachInstancesDesktopInfo] objects | 桌面信息列表。   |
| users        | 否    | Array of [AttachInstancesUserInfo] objects       | 用户信息列表。   |
| assign_model | 否    | [AssignModelInfo] object                                 | 批量分配桌面策略。 |
   
 表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：用户组。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表5AssignModelInfo 
| 参数                       | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| assign_dimension         | 否    | String  | 分配的维度，当前支持 - USER: "用户为维度"   - DESKTOP:"桌面为维度"两种。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| priority_strategy        | 否    | String  | 优先分配的策略，策略名为规则为{维度}_{子策略} - USER_NO_DESKTOP: 用户维度-无桌面   - USER_FIXED_DESKTOP_NUM: 用户维度-桌面个数固定   - DESKTOP_ASSIGN_USER_PRIORITY： 桌面维度-用户优先   - DESKTOP_ASSIGN_FIXED_USER： 桌面维度-固定用户   - DESKTOP_ASSIGN_USERS_OR_GROUPS： 桌面维度-为每台桌面分配所选的所有用户（组）   - FIXED_RELATION: 使用参数中的固定分配关系    |
| desktop_assigin_user_num | 否    | Integer | 每个桌面自动分配的用户数，当子策略为 DESKTOP_ASSIGN_FIXED_USER 必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| user_assigin_desktop_num | 否    | Integer | 每个用户自动分配桌面数，当子策略为 USER_NO_DESKTOP、USER_FIXED_DESKTOP_NUM必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| desktop_name_policy_id   | 否    | String  | 策略id，用于指定生成桌面名称策略，如果指定了桌面名称则优先使用指定的桌面名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数                    | 参数类型                                                                                                         | 描述                                         |
|:---|:---|:---|
| assign_dimension      | String                                                                                                       | 分配的维度，当前支持"用户为维度"、"桌面为维度"两种。               |
| desktop               | Array of [DesktopDimensionAttachInfo] objects | 桌面维度结果，如果assign_dimension为DEKSTOP，那么取这个结果。 |
| user                  | Array of [UserDimensionAttachInfo] objects       | 用户维度结果，如果assign_dimension为USER，那么取这个结果。    |
| desktops_attach_infos | Array of [AttachInstancesDesktopInfo] objects | 桌面分配关系。                                    |
   
 表7DesktopDimensionAttachInfo 
| 参数           | 参数类型    | 描述                   |
|:---|:---|:---|
| desktop_name | String  | 桌面名称。                |
| desktop_id   | String  | 桌面id。                |
| user_num     | Integer | 计划分配用户数。             |
| user_name    | String  | 计划分配用户名称，如果有多个用逗号隔开。 |
   
 表8UserDimensionAttachInfo 
| 参数           | 参数类型    | 描述                   |
|:---|:---|:---|
| user_name    | String  | 用户名称。                |
| user_id      | String  | 桌面id。                |
| desktop_num  | Integer | 计划分配桌面数。             |
| desktop_name | String  | 计划分配桌面名称，如果有多个用逗号隔开。 |
   
 表9AttachInstancesDesktopInfo 
| 参数                | 参数类型                                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| 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 | 待分配的用户信息列表,只有多用户桌面分配多人时有效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表10AttachInstancesUserInfo 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| 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：用户组。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
**状态码：400**
表11响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：401**
表12响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：403**
表13响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：404**
表14响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
**状态码：500**
表15响应Body参数 
| 参数                            | 参数类型   | 描述                                                           |
|:---|:---|:---|
| error_code                    | String | 错误码，失败时返回。                                                   |
| error_msg                     | String | 错误描述。                                                        |
| error_detail                  | String | 错误详情。                                                        |
| encoded_authorization_message | String | 加密后的详细拒绝原因，用户可以自行调用STS服务的decode-authorization-message接口进行解密。 |
   
#### 请求示例
```
{
  "desktops" : [ {
    "desktop_id" : "b41a8cc1-4813-47a0-bf3a-7800fcd5b581"
  }, {
    "desktop_id" : "5f4ed564-14eb-44fd-8ff7-0483725a532b"
  }, {
    "desktop_id" : "dfdddcf4-f943-43b4-987b-e5785022d6c5"
  } ],
  "users" : [ {
    "user_id" : "3f6cc4c5d1ff4a79ab826b7964e9ff5d",
    "user_name" : "user1",
    "user_group" : "administrators"
  }, {
    "user_id" : "21bb9f13e6ff42fb96cd62489c446935",
    "user_name" : "user2",
    "user_group" : "administrators"
  } ],
  "assign_model" : {
    "assign_dimension" : "USER",
    "priority_strategy" : "USER_NO_DESKTOP",
    "desktop_assigin_user_num" : 2
  }
}
```
#### 响应示例
**状态码：200**
预批量分配云桌面响应。
```
{
  "assign_dimension" : "USER",
  "desktop" : [ ],
  "user" : [ {
    "user_name" : "user1",
    "user_id" : "21bb9f13e6ff42fb96cd62489c446935",
    "desktop_num" : 1,
    "desktop_name" : "MARKETNOUSER17"
  }, {
    "user_name" : "user2",
    "user_id" : "3f6cc4c5d1ff4a79ab826b7964e9ff5d",
    "desktop_num" : 1,
    "desktop_name" : "MARKETNOUSER18"
  } ]
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 预批量分配云桌面响应。             |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode.html)。
