
# 操作设备
#### 功能介绍
应用服务器可调用此接口对设备执行操作。
#### URI
POST /v5/iotps/{project_id}/devices/{device_id}/action
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                 |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 最小长度：**1** 最大长度：**32**                                                                       |
| device_id  | 是    | String | 设备ID，用于唯一标识一个设备，在注册设备时由物联网平台分配获得。（生成规则为"product_id" + "_" + "node_id"拼接而成） 最小长度：**1** 最大长度：**128** |
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数                  | 是否必选 | 参数类型                                                                                 | 描述                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| action              | 是    | String                                                                               | 对设备执行的操作，当前仅支持： - resetDeviceSecret：重置秘钥。应用服务器可调用此接口重置设备秘钥，携带指定秘钥时平台将设备秘钥重置为指定的秘钥，不携带秘钥时平台将自动生成一个新的随机秘钥返回。注意：NB设备秘钥由于协议特殊性，只支持十六进制秘钥接入。 - triggerBootstrapDevice：重引导设备。应用服务器可调用此接口重引导设备，平台向设备下发重引导命令，通知已发放的设备重引导。注意：当前命令通道为同步命令通道。 |
| reset_device_secret | 否    | [ResetDeviceSecret] object |                                                                                                                                                                                                                                    |
   
 表4ResetDeviceSecret 
| 参数     | 是否必选 | 参数类型   | 描述                                                            |
|:---|:---|:---|:---|
| secret | 是    | String | 设备秘钥，设置该字段时平台将设备秘钥重置为指定值，若不设置则由平台自动生成。 最小长度：**8** 最大长度：**32** |
   
#### 响应参数
**状态码： 200**
表5响应Body参数 
| 参数                  | 参数类型                                                                        | 描述 |
|:---|:---|:---|
| reset_device_secret | [DeviceSecret] object |    |
   
 表6DeviceSecret 
| 参数        | 参数类型   | 描述                                                        |
|:---|:---|:---|
| device_id | String | 设备ID，用于唯一标识一个设备，在注册设备时由物联网平台分配获得。 最小长度：**0** 最大长度：**256** |
| secret    | String | 设备秘钥。 最小长度：**8** 最大长度：**32**                              |
   
#### 请求示例
- 操作设备（重引导设备）
  ```
  POST https://{endpoint}/v5/iotps/{project_id}/devices/d4922d8a-6c8e-4396-852c-164aefa6638f/action
  {
    "action" : "allocateDevice"
  }
  ```
- 操作设备（重置设备密钥）
  ```
  POST https://{endpoint}/v5/iotps/{project_id}/devices/d4922d8a-6c8e-4396-852c-164aefa6638f/action
  {
    "action" : "resetDeviceSecret",
    "reset_device_secret" : {
      "secret" : "3b935a250c50dc2c6d481d048cefdc3c"
    }
  }
  ```
#### 响应示例
**状态码： 200**
OK
- 示例 1
  ```
  { }
  ```
- 示例 2
  ```
  {
    "reset_device_secret" : {
      "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "secret" : "3b935a250c50dc2c6d481d048cefdc3c"
    }
  }
  ```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 403 | Forbidden             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iotps/ErrorCode.html)。
