Update Alert Rule

Update an alert rule. Any parameter (that is not null) included the request body can be updated.

Request Format

POST https://{apigw-address}/event-service/v2.1/alert-rules?action=update

Request Parameters (URI)

Name

Location (Path/Query)

Mandatory/Optional

Data Type

Description

orgId

Query

Mandatory

String

The organization ID which the asset belongs to. How to get orgId>>

isPatchUpdate

Query

Mandatory

Boolean

  • true (default) = Only the fields specified in the parameters are updated. The values of those fields not specified will be retained.
  • false = The fields specified in the parameters are updated. Those fields not specified will have their existing values (if any) deleted.

Request Parameters (Body)

Note

You must specify either measurepointId or deviceStatus as the trigger of the alert.

Name

Mandatory/Optional

Data type

Description

ruleId

Mandatory

String

The alert rule ID.

ruleDesc

Mandatory

StringI18n

Specify the alert rule’s description in its respective locale’s language. For more details on the structure and locales supported, see Internationalized name struct

modelId

Mandatory

String

The model ID. How to get modelID>>

measurepointId

Optional

String

The measurement point ID. You must specify either measurepointId or deviceStatus as the trigger of the alert. How to get pointId>>

deviceStatus

Optional

String

The device status, such as “offline”. You must specify either measurepointId or deviceStatus as the trigger of the alert. See Setting State-based Alerts.

condition

Mandatory

String

The query expression. For example, “${temperature} = 19” indicates that the value of the measurement point “temperature” is 19. A slash “/” is used to express the hierarchical relationship, for which only one downward layer is supported now. For example, “${pointA/att1} = 18” indicates the “att1” attribute value of the measurement point “A” is 18. How to use expression>>

severityId

Mandatory

String

The alert severity ID.

contentId

Mandatory

String

The alert content ID.

tags

Optional

Map

The user-defined tags. (The Key and Value are of String type.) For details, see How to use tags

scope

Mandatory

Array of AssetNode Structs

Indicates the scope of the asset to which the alert applies to. For details, see AssetNode struct.

isEnabled

Optional

Boolean

  • true (default) = enables the alert rule
  • false = does not enable the alert rule

triggeringDelayTimer

Optional

Integer

The amount of time to delay triggering the alert. The unit is seconds with a range between [60 - 10800]. The alert will only be triggered when an anomaly that matches the alert rule occurs and does not return to normal within the set time. To trigger the alert immediately, set the time to 0. For more information, see Tutorial: Setting Alert Triggering Delay Timer.

AssetNode Struct

Name

Required or Not

Data Type

Description

treeId

true

String

The asset tree ID. If it is set as “all”, it indicates that this is a special node, standing for the globality of the organization.

assetId

true

String

The asset ID. How to get assetId>>

Samples

Request Sample

url: https://{apigw-address}/event-service/v2.1/alert-rules?action=update&orgId=yourOrgId&isPatchUpdate=false
method: POST
requestBody:
{
    "alertRule": {
        "ruleId": "user BID",
        "ruleDesc": {
      "defaultValue": "Grid is connected from converter",
            "i18nValue": {
                "en_US": "Grid is connected from converter",
                "zh_CN": "电网由变频器连接"
            }
        },
        "modelId": "EnOS_Solar_CombinerBox",
        "measurepointId": "CBX.BranchStateAttr",
        "condition": "${CBX.BranchStateAttr} = 18",
        "severityId": "WARN",
        "contentId": "planetTemperature",
        "tags": {
            "key1": "v1"
        },
        "scope": [{
            "treeId": "ptde66nd",
            "assetId": "FbFy8qyz"
        }],
        "isEenabled": true
     }
}

Return Sample

{
    "code": 0,
    "msg": "OK",
    "requestId": "4873095e-621d-4cfd-bc2c-edb520f574ea",
    "data": null
}

Java SDK Sample

public void testUpdateAlertRule() {
    private static String accessKey = "yourAppAccessKey";
    private static String secretKey = "yourAppSecretKey";
    private static String orgId = "yourOrgId";
    private static String url = "https://{apigw-address}";
    UpdateAlertRuleRequest request = new UpdateAlertRuleRequest();
    request.setOrgId(orgId);
    request.setRuleId("yourRuleID");
    Map < String, String > map = new HashMap < > ();
    map.put("yourTagKey", "yourTagValue");
    request.setTags(map);
    request.setIsPatchUpdate(true);
    try {
        UpdateAlertRuleResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
            .url(url)
            .getResponse(request, UpdateAlertRuleResponse.class);
        System.out.println(response);
    } catch (Exception e) {
        System.out.print(e);
    }
}