Help Center/ Workspace/ API Reference/ Workspace APIs/ Desktop/ Unbinding Users in Batches
Updated on 2026-02-10 GMT+08:00

Unbinding Users in Batches

Function

Unbinds desktops from users in batches.

Debugging

You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.

  • If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
  • If you are using identity policy-based authorization, the following identity policy-based permissions are required.

    Action

    Access Level

    Resource Type (*: required)

    Condition Key

    Alias

    Dependencies

    workspace:desktops:batchDetach

    Write

    desktop *

    • g:ResourceTag/<tag-key>

    • g:EnterpriseProjectId

    -

    vpc:ports:get

URI

POST /v2/{project_id}/desktops/batch-detach

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID.

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

desktops

No

Array of DetachInstancesDesktopInfo objects

List of unbound desktops.

Table 3 DetachInstancesDesktopInfo

Parameter

Mandatory

Type

Description

desktop_id

No

String

ID of the assigned desktop.

is_detach_all_users

No

Boolean

Whether to disassociate all users. The value true will invalidate detach_user_infos and all users will be disassociated. If the value is false, detach_user_infos will be used to specify the users to disassociate.

detach_user_infos

No

Array of DetachInstancesUserInfo objects

List of users to whom desktops are to be unassigned.

Table 4 DetachInstancesUserInfo

Parameter

Mandatory

Type

Description

user_id

No

String

If type is set to USER, enter the user ID. If type is set to GROUP, enter the user group ID. The backend service checks whether the group ID exists.

user_name

Yes

String

Name of the object whose assigned desktop was removed. If type is set to USER, enter the username. If type is set to GROUP, enter the user group name.

  • If type is set to USER, the value is the username of the desktop user. After the desktop is assigned, the user can log in to the desktop. Only letters, digits, hyphens (-), and underscores (_) are allowed. When the domain type is LITE_AD, the value contains 1 to 20 characters starting with a letter. When the domain type is LOCAL_AD, the value contains 1 to 64 characters starting with a letter or digit. A Windows desktop username can contain a maximum of 20 characters, and a Linux desktop username can contain a maximum of 64 characters. The backend service checks whether the username exists. The username cannot be the same as the desktop name.

  • If type is set to GROUP, the value can contain only letters, digits, hyphens (-), and underscores (_).

domain

No

String

Domain to which the user belongs.

user_group

No

String

User group to which the desktop user belongs.

  • sudo: Linux administrator group

  • default: default Linux user group

  • administrators: Windows administrator group. Administrators have full access to the desktop and can make any required changes except for forbidden operations.

  • users: standard Windows user group. Standard users can use most software programs and change system settings that do not affect other users.

type

No

String

Object type. The default value is USER. The options are:

  • USER: user

  • GROUP: user group

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

failed_operation_list

Array of VmOperateResult objects

Desktops on which operations failed.

job_id

String

Task ID. For desktops in a desktop pool, the specific value of job_id is returned. For common desktops, the value of this parameter is empty.

success_job_ids

Array of strings

Job IDs of successful internal service operations.

Table 6 VmOperateResult

Parameter

Type

Description

desktop_id

String

Desktop ID.

desktop_name

String

Desktop name.

error_code

String

Error code.

error_msg

String

Cause of the operation failure.

Status code: 400

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error message.

error_detail

String

Error details.

encoded_authorization_message

String

Encrypted detailed reason for rejection. You can call the API decode-authorization-message of STS to decrypt the reason.

Status code: 401

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error message.

error_detail

String

Error details.

encoded_authorization_message

String

Encrypted detailed reason for rejection. You can call the API decode-authorization-message of STS to decrypt the reason.

Status code: 403

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error message.

error_detail

String

Error details.

encoded_authorization_message

String

Encrypted detailed reason for rejection. You can call the API decode-authorization-message of STS to decrypt the reason.

Status code: 404

Table 10 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error message.

error_detail

String

Error details.

encoded_authorization_message

String

Encrypted detailed reason for rejection. You can call the API decode-authorization-message of STS to decrypt the reason.

Status code: 409

Table 11 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error message.

error_detail

String

Error details.

encoded_authorization_message

String

Encrypted detailed reason for rejection. You can call the API decode-authorization-message of STS to decrypt the reason.

Status code: 500

Table 12 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error message.

error_detail

String

Error details.

encoded_authorization_message

String

Encrypted detailed reason for rejection. You can call the API decode-authorization-message of STS to decrypt the reason.

Example Requests

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"
    } ]
  } ]
}

Example Responses

Status code: 200

Normal.

{
  "failed_operation_list" : [ ],
  "job_id" : "string"
}

Status Codes

Status Code

Description

200

Normal.

400

The request cannot be understood by the server due to malformed syntax.

401

Authentication failed.

403

No operation permissions.

404

No resources found.

409

Operation conflict.

500

An internal service error occurred. For details about the error code, see the error code description.

Error Codes

See Error Codes.