
# 设备告警产生通知
#### 功能介绍
应用服务器在调用设施云平台的创建规则触发条件（Resource:device.alarm，Event:active）、创建规则动作、修改规则触发条件接口配置并激活规则后，当设施云平台中的设备告警产生时，设施云平台会向应用服务器推送通知消息。
#### URI
POST /应用服务器创建设备告警产生通知规则时的Url决定
#### 请求参数
表1请求Body参数 
| 参数          | 是否必选 | 参数类型                                                                                                                           | 描述                                                                                                                                |
|:---|:---|:---|:---|
| resource    | 是    | String                                                                                                                         | **参数说明**：订阅的资源名称。 **取值范围**：device.alarm。                                                  |
| event       | 是    | String                                                                                                                         | **参数说明**：订阅的资源事件 **取值范围**：active。                                                        |
| event_time  | 是    | String                                                                                                                         | **参数说明**：设备告警产生事件生成的时间。 **取值范围**：yyyy-MM-dd'T'HH:mm:ss.SSS'Z'，例如2023-08-04T10:01:59.815Z。 |
| notify_data | 是    | [DeviceAlarmActiveNotifyData] object | **参数说明**：推送消息。                                                                                                                    |
   
 表2DeviceAlarmActiveNotifyData 
| 参数     | 是否必选 | 参数类型                                                                                                                             | 描述                   |
|:---|:---|:---|:---|
| header | 是    | [DeviceChangeNotifyDataHeader] object | **参数说明**：推送消息header。 |
| body   | 是    | [DeviceAlarmActive] object                       | **参数说明**：推送消息body。   |
   
 表3DeviceChangeNotifyDataHeader 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                       |
|:---|:---|:---|:---|
| instance_id | 否    | String | **参数说明**：实例ID。 **取值范围**：长度为8-32的字符串。                              |
| device_id   | 否    | String | **参数说明**：设备ID，用于唯一标识一个设备，在注册设备时由设施云平台分配获得。 **取值范围**：长度不超过256的字符串。 |
| product_id  | 否    | String | **参数说明**：设备所属的产品ID。 **取值范围**：长度不超过36的字符串。                         |
   
 表4DeviceAlarmActive 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                  |
|:---|:---|:---|:---|
| device_id         | 否    | String | **参数说明**：设备ID。                                                                                      |
| alarm_id          | 否    | String | **参数说明**：告警ID。                                                                                      |
| alarm_name        | 否    | String | **参数说明**：告警名称。                                                                                      |
| alarm_level       | 否    | String | **参数说明**：告警等级。 **取值范围**：Critical、Major、Minor、Info。         |
| alarm_status      | 否    | String | **参数说明**：告警状态。 **取值范围**：CREATED、CLOSED。                     |
| description       | 否    | String | **参数说明**：告警描述。                                                                                      |
| alarm_source_id   | 否    | String | **参数说明**：告警源id，产生告警对应的规则id。故障告警时格式为：规则集id/规则id。                                                     |
| alarm_source_type | 否    | String | **参数说明**：告警类型。 **取值范围**：当前支持枚举值：linkageRule、diagnosisRule。 |
| addition_info     | 否    | String | **参数说明**：附加信息。                                                                                      |
| active_time       | 否    | String | **参数说明**：发生时间。 **取值范围**：yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。      |
| alarm_properties  | 否    | String | **参数说明**：具体告警点位信息。                                                                                  |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                       |
|:---|:---|:---|
| error_code | String | **参数说明**：错误码。 **取值范围**：长度8-36。   |
| error_msg  | String | **参数说明**：错误描述。 **取值范围**：长度2-512。 |
   
#### 请求示例
```
{
  "resource" : "device.alarm",
  "event" : "active",
  "event_time" : "2023-08-04T10:01:59.815Z",
  "notify_data" : {
    "header" : {
      "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "product_id" : "ABC123456789"
    },
    "body" : {
      "alarm_name" : "battery_level_low100",
      "device_id" : "6143f2d9e7f1160f7938bbef_deviceid01",
      "recovery_reason" : "string",
      "alarm_level" : "CRITICAL",
      "active_reason" : "battery level 20%",
      "active_source" : "DEVICE",
      "active_time" : "2023-08-04T10:01:58.815Z",
      "product_id" : "6143f2d9e7f1160f7938bbef",
      "alarm_id" : "5cdd438e6485456c943f69a2e3d08c30",
      "detail" : "battery level is low",
      "recovery_time" : "2023-08-04T10:01:59.815Z",
      "user" : "90f10fd592a949a8a5ad3413f89c3cc3",
      "space_id" : "c748effa9e8047349fbffcaf77b39c74",
      "status" : "FAULT"
    }
  }
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "result" : "success"
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | OK          |
| 400 | Bad Request |
   
