Skip to content

Rule Management

Joskowski Andrzej edited this page Apr 1, 2015 · 18 revisions

This API is used to manage Rules. A Rule is an association between one or more device's components, a set of conditions for those components, and a number of actions that have to be triggered in case those conditions are met.

Supported rule action types

|Type|Target|Description| |-----|:--:|--------------------|---------| |"mail"|["test@example.com"]|Array of recipients' email addresses| |"http"|["http://www.example.com"]|Array of HTTP endpoints where request should be sent. They should expect and accept POST requests.|

HTTP endpoint for alerts

To receive alerts as requests to HTTP endpoint, set "type" in actions section to "http" and "target" in the same section to desired endpoint. Additionally you can add custom HTTP headers to received alerts. To do this, add "http_headers" object to "actions" section if chosen action type is http. Example:

"actions": [
{
    "type": "http",
    "target": [
       "http://test.com"
    ],
    "http_headers":
    {
       "header1": "value1",
       "header2": "value2"
    }
}]

Create a Rule

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
Content-Type HTTP Header Type of body content application/json
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
Request
POST /accounts/{accountId}/rules

{
  "name": "Test Rule",
  "description": "This is a test rule",
  "priority": "Medium",
  "type": "Regular",
  "status": "Active",
  "resetType": "Automatic",
  "actions": [
    {
      "type": "mail",
      "target": [
        "test@example.com"
      ]
    }
  ],
  "population": {
    "ids": [ "685.1.1.1" ],
    "attributes": null
  },
  "conditions": {
    "operator": "OR",
    "values": [
      {
        "component": {
          "dataType": "Number",
          "name": "Temp.01.1"
        },
        "type": "basic",
        "values": [ "25" ],
        "operator": ">"
      }
    ]
  }
}

Response 201 CREATED (application/json)

Clone an existing Rule

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
Content-Type HTTP Header Type of body content application/json
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
ruleId URL Slug The ID of a Rule 6831
Request
POST /accounts/{accountId}/rules/clone/{ruleId}

Response 200 OK (application/json)

Update a Rule

If rule doesn't exist it create a new one. Cannot be used for update of a draft rule.

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
Content-Type HTTP Header Type of body content application/json
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
ruleId URL Slug The ID of a Rule 6831
Request
PUT /accounts/{accountId}/rules/{ruleId}

{
    "name": "Test Rule",
    "description": "This is a test rule",
    "priority": "Medium",
    "type": "Regular",
    "status": "Active",
    "actions": [
    {
        "type": "http",
        "target": [
            "http://test.com"
        ],
        "http_headers":
         {
            "header1": "value1",
            "header2": "value2"
         }
    }
    ],
    "conditions": {
        "operator": "OR",
        "values": [
        {
            "component": {
                "dataType": "Number",
                "name": "Temp.01.1"
            },
            "type": "basic",
            "values": [
                "25"
            ],
            "operator": ">"
        }
        ]
    },
    "resetType": "Automatic",
    "population": {
    "ids": [
        "685.1.1.1"
    ],
    "attributes": null
    }
}

Response 200 OK
{
    "externalId": "6831",
    "domainId": "0d66c8b6-9f4d-4551-a9c8-d356c2dd033d",
    "creationDate": 1411129409587,
    "lastUpdateDate": 1411127836926,
    "status": "Active",
    "actions": [
    {
        "type": "mail",
        "target": [
            "test@example.com"
        ]
    }
    ],
    "id": "541c2041b3700bcbe9c76fc4"
}

Get List of Rules

Get a list of all rules for the specified account.

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
Request
GET /accounts/{accountId}/rules

Response 200 OK (application/json)
[
{
    "externalId": 6831,
    "name": "rule2",
    "description": "test rule",
    "owner": "test@example.com",
    "naturalLanguage": "temperatura Equal 45 Or ",
    "type": "Regular",
    "creationDate": 1411119645083,
    "lastUpdateDate": 1411119645083,
    "resetType": "Manual",
    "priority": "Low",
    "status": "Active",
    "population": {},
    "conditions": {
        "operator": "OR",
        "values": []
    }
}
]

Get one Rule information

Get specific rule details for the account.

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
ruleId URL Slug The ID of a Rule 9bd17edc04e3a07f636af4b7be72a0967c19f0ac
Request
GET /accounts/{accountId}/rules/{ruleId}

Response 200 OK (application/json)
{
   "id": "541c09dd63de1a9f63216f63",
   "creationDate": 1411123677425,
   "domainId": "0d66c8b6-9f4d-4551-a9c8-d356c2dd033d",
   "externalId": "9bd17edc04e3a07f636af4b7be72a0967c19f0ac",
   "lastUpdateDate": 1411123677425,
   "name": "draft2",
   "owner": "test@example.com",
   "status": "Draft"
}

Create a Rule as a Draft

Create a rule with a status - "Draft" for the specified account.

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
Content-Type HTTP Header Type of body content application/json
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
Request
PUT /accounts/{accountId}/rules/draft
{
    "name": "draftRule",
}

Response 200 OK (application/json)
{
    "id": "541c09dd63de1a9f63216f63",
    "creationDate": 1411123677425,
    "domainId": "0d66c8b6-9f4d-4551-a9c8-d356c2dd033d",
    "externalId": "9bd17edc04e3a07f636af4b7be72a0967c19f0ac",
    "lastUpdateDate": 1411123677425,
    "name": "draftRule",
    "owner": "test@example.com",
    "status": "Draft"
}

Update a Status of a Rule

Update the status of the rule. Cannot be used for changing the status of draft rule. Status value should be one of the following: ["Active", "Archived", "On-hold"]

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
Content-Type HTTP Header Type of body content application/json
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
ruleId URL Slug The ID of a Rule 2c6cbf002516cf81913471da4d41daed212bde8f
Request
PUT /accounts/{accountId}/rules/status
{
    "status": "Archived",
}

Response 200 OK (application/json)
{
    "id": "541bfa1eb3700bcbe9c76fc2",
    "actions": [
    {
        "type": "mail",
        "target": [
            "test@example.com"
        ]
    }
    ],
   "creationDate": 1411119645083,
   "domainId": "0d66c8b6-9f4d-4551-a9c8-d356c2dd033d",
   "externalId": "6831",
   "lastUpdateDate": 1411127836926,
   "status": "Archived"
}

Delete a draft rule

Delete a specific draft rule for account

Param Type Description Value
Authorization HTTP Header Access Token Authorization: Bearer eyJ0eX...
accountId URL Slug The ID of an Account 534da46c820cb9f74a0d3de6
ruleId URL Slug The ID of a Rule 2c6cbf002516cf81913471da4d41daed212bde8f
Request
DELETE /accounts/{accountId}/rules/draft/{ruleId}

Response 204 OK

You can’t perform that action at this time.