Updated on 2024-06-27 GMT+08:00

Create a Device Group

Function

This API is used by an application to create a device group. Up to 1000 device groups, including parent device groups and child device groups, can be created in a Huawei Cloud account. The maximum number of group levels is five. It means that the relationship tree of groups can have up to five levels.

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-group

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Parameter description: project ID. For details about how to obtain the project ID, see Obtaining a Project 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. X-Subject-Token in the response header returned by the API 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

name

No

String

Parameter description: device group name, which must be unique in a single resource space. Value: The value can contain a maximum of 64 characters. Only letters, digits, underscores (_), and question marks (?) are allowed. '#().,& %@!-.

Minimum: 1

Maximum: 64

description

No

String

Parameter description: device group description. Value: The value can contain a maximum of 64 characters. Only letters, digits, underscores (_), and question marks (?) are allowed. '#().,& %@!-.

Minimum: 1

Maximum: 64

super_group_id

No

String

** Parameter description**: parent device group ID. If this parameter is carried, a child device group is created in the device group. Dynamic groups do not support this parameter. Value: The value can contain a maximum of 36 characters, including hexadecimal strings and hyphens (-).

app_id

No

String

Parameter description: resource space ID. This parameter is optional. If you have multiple resource spaces, you can use this parameter to specify the resource space to which the device group to create will belong. If this parameter is not specified, the device group to create will belong to the default resource space. Value: The value can contain a maximum of 36 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

group_type

No

String

Parameter description: device group type. A static device group is used by default. When a dynamic device group is used, enter the dynamic device group rule.

dynamic_group_rule

No

String

Parameter description: The syntax of dynamic device group rules is the same as that of advanced search. You only need to fill in the where clause.

Response Parameters

Status code: 201

Table 4 Response body parameters

Parameter

Type

Description

group_id

String

Device group ID. The ID is unique and is allocated by the platform during device group creation.

name

String

Device group name, which must be unique in a single resource space.

description

String

Device group description.

super_group_id

String

ID of the parent device group.

group_type

String

Device group type, which can be dynamic or static.

dynamic_group_rule

String

Dynamic device group rule.

Example Requests

  • Creates a static device group named GroupA.

    POST https://{endpoint}/v5/iot/{project_id}/device-group
    
    {
      "name" : "GroupA",
      "description" : "GroupA",
      "super_group_id" : "04ed32dc1b0025b52fe3c01a27c2b0a8",
      "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka",
      "group_type" : "STATIC"
    }
  • Creates a dynamic device group named GroupA.

    POST https://{endpoint}/v5/iot/{project_id}/device-group
    
    {
      "name" : "GroupA",
      "description" : "GroupA",
      "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka",
      "dynamic_group_rule" : "product_id = '63fef97897bacf7a56438cba'",
      "group_type" : "DYNAMIC"
    }

Example Responses

Status code: 201

Created

{
  "group_id" : "04ed32dc1b0025b52fe3c01a27c2babc",
  "name" : "GroupA",
  "description" : "GroupA",
  "super_group_id" : "04ed32dc1b0025b52fe3c01a27c2b0a8",
  "group_type" : "STATIC",
  "dynamic_group_rule" : null
}

Status Codes

Status Code

Description

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.