Updated on 2024-12-02 GMT+08:00

Bind a Device Policy

Function

This API is used by an application to bind a policy to devices in batches on the IoT platform. Currently, the target type can be device or product. When the target type is product, the policy takes effect on all devices under the product.

Debugging

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

URI

POST /v5/iot/{project_id}/device-policies/{policy_id}/bind

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Parameter description: project ID. For details, see Obtaining a Project ID.

policy_id

Yes

String

Policy ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

No

String

Parameter description: user token. You can obtain the token by calling the IAM API Obtaining a User Token Through Password Authentication. In the returned response header, X-Subject-Token is the desired user token. For details about how to obtain the token, see Token Authentication.

Instance-Id

No

String

Parameter description: instance ID. Unique identifier of each instance in the physical multi-tenant scenario. Mandatory for professional editions and recommended in other cases. Log in to the IoTDA console and choose Overview in the navigation pane to view the instance ID. For details, see Viewing Instance Details.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

target_type

Yes

String

Parameter description: type of the target bound to the policy.

Value: device, product, and app (the entire resource space).

target_ids

Yes

Array of strings

ID list of targets bound to the policy.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

policy_id

String

Policy ID.

target_type

String

Parameter description: target type of a policy.

Value: device, product, and app (the entire resource space).

success_targets

Array of strings

ID list of successful targets.

failure_targets

Array of DevicePolicyBindOrUnbindFailureDetail objects

ID list of failed targets.

Table 5 DevicePolicyBindOrUnbindFailureDetail

Parameter

Type

Description

target_id

String

ID of the failed target.

error_code

String

Error code.

error_msg

String

Error details.

Example Requests

  • Binds a policy to a device.

    POST https://{endpoint}/v5/iot/{project_id}/device-policies/{policy_id}/bind
    
    {
      "target_type" : "device",
      "target_ids" : [ "64a7ba7ef9cb063d27e16b97_123456", "64a7ba7ef9cb063d27e16b97_123457" ]
    }
  • Binds a policy to a product.

    POST https://{endpoint}/v5/iot/{project_id}/device-policies/{policy_id}/bind
    
    {
      "target_type" : "product",
      "target_ids" : [ "64a7ba7ef9cb063d27e16b97" ]
    }

Example Responses

Status code: 200

OK

{
  "policy_id" : "5c90fa7d3c4e4405e8525079",
  "target_type" : "device",
  "success_targets" : [ "64a7ba7ef9cb063d27e16b97_123456", "64a7ba7ef9cb063d27e16b97_123457" ],
  "failure_targets" : [ {
    "target_id" : "64a7ba7ef9cb063d27e16b97_123458",
    "error_code" : "IOTDA.015204",
    "error_msg" : "Operation not allowed. The number of policies bound to the target reaches the upper limit (5)."
  } ]
}

Status Codes

Status Code

Description

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.