Help Center/ Workspace/ API Reference/ Workspace APIs/ Desktop/ Unbinding Users in Batches
Updated on 2025-07-14 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.

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 header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

No

String

User token.

It can be obtained by calling the IAM API that is used to obtain a user token. The value of X-Subject-Token in the response header is the user token.

Content-Type

No

String

MIME type of the request body.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

desktops

No

Array of DetachInstancesDesktopInfo objects

List of unbound desktops.

Table 4 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 AttachInstancesUserInfo objects

List of users to whom desktops are to be unassigned.

Table 5 AttachInstancesUserInfo

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

No

String

Name of the object assigned with a desktop. 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 (_).

user_group

No

String

Specifies the 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. Options:

  • USER: user

  • GROUP: user group

Response Parameters

Status code: 200

Table 6 Response body parameters

Parameter

Type

Description

failed_operation_list

Array of VmOperateResult objects

Desktops on which operations failed.

job_id

String

Task ID.

Table 7 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 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error description.

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 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error description.

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 10 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error description.

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 11 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error description.

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 12 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error description.

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 13 Response body parameters

Parameter

Type

Description

error_code

String

Error code, which is returned upon failure.

error_msg

String

Error description.

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

{
  "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" : [ {
    "desktop_id" : "string",
    "desktop_name" : "string",
    "error_code" : "string",
    "error_msg" : "string"
  } ],
  "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, see the error code description.

Error Codes

See Error Codes.