Rule Engine API
Rule Engine API provides HTTP API to control engine and its rules.
Get Rule Engine CloudGateway
GET /v3/sites/{site_id}/rule_engine
Returns information about the rule engine on the specified site.
Request
$ curl http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
Response
Rule engine information:
{
"engine": {
"id": "4ebd5454-44bf-44ec-b85f-88da766c918c",
"state": "ACTIVE",
"timezone": "UTC"
}
}
engineobject#Rule Engine information.
engine.idstring#Rule Engine ID.
engine.statestring#Can be
ACTIVEorSUSPENDED.
engine.timezonestring#The time zone is the same as the site's time zone.
Suspend Rule Engine CloudGateway
POST /v3/sites/{site_id}/rule_engine/suspend
Suspends the rule engine on the specified site.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/suspend \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'
Response
Rule engine information:
{
"engine": {
"id": "4ebd5454-44bf-44ec-b85f-88da766c918c",
"state": "SUSPENDED",
"timezone": "UTC"
}
}
engineobject#Rule Engine information.
engine.idstring#Rule Engine ID.
engine.statestring#Can be
ACTIVEorSUSPENDED.
engine.timezonestring#The time zone is the same as the site's time zone.
Resume Rule Engine CloudGateway
POST /v3/sites/{site_id}/rule_engine/resume
Resumes a previously suspended rule engine on the specified site.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/resume \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'
Response
Rule engine information:
{
"engine": {
"id": "4ebd5454-44bf-44ec-b85f-88da766c918c",
"state": "ACTIVE",
"timezone": "UTC"
}
}
engineobject#Rule Engine information.
engine.idstring#Rule Engine ID.
engine.statestring#Can be
ACTIVEorSUSPENDED.
engine.timezonestring#The time zone is the same as the site's time zone.
Create Rule CloudGateway
POST /v3/sites/{site_id}/rule_engine/rules
Creates a new rule in the rule engine on the specified site.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"slug": "start-generator-1",
"script": {
"code": "...",
"runtime_version": "V3"
},
"disable": false
}'
Body Parameters
slugstringrequired#The slug of the new rule.
scriptobjectrequired#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
disableboolean#The the new rule will be disabled after creation.
Response
Information about the created rule:
{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-1",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#Rule information.
rule.idstring#Rule ID.
rule.slugstring#Rule slug.
scriptobject#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
rule.disabledboolean#Indicates whether rule is enabled or disabled.
rule.statestring#Can be
STARTEDorSTOPPED.
List Rules CloudGateway
GET /v3/sites/{site_id}/rule_engine/rules
Returns all rules configured in the rule engine on the specified site.
Request
$ curl http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'
Response
List of rules:
{
"rules": [{
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-1",
"script": {
"code": "...",
"runtime_version": "V3"
},
"disabled": false,
"state": "STARTED"
}]
}
Get Rule CloudGateway
GET /v3/sites/{site_id}/rule_engine/rules/{rule_id}
Retrieves information about a specific rule.
Request
$ curl http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98 \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'
Response
Rule information:
{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-1",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#Rule information.
rule.idstring#Rule ID.
rule.slugstring#Rule slug.
scriptobject#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
rule.disabledboolean#Indicates whether rule is enabled or disabled.
rule.statestring#Can be
STARTEDorSTOPPED.
Update Rule CloudGateway
PATCH /v3/sites/{site_id}/rule_engine/rules/{rule_id}
Updates rule. Currently only rule slug can be updated.
Request
$ curl -X PATCH \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98 \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"slug": "start-generator-low-battery"
}'
Body Parameters
slugstring#The new slug of the rule.
Response
Updated rule:
{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#Rule information.
rule.idstring#Rule ID.
rule.slugstring#Rule slug.
scriptobject#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
rule.disabledboolean#Indicates whether rule is enabled or disabled.
rule.statestring#Can be
STARTEDorSTOPPED.
Update Rule Script CloudGateway
POST /v3/sites/{site_id}/rule_engine/rules/{rule_id}/update_script
Updates only the script of an existing rule.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98/update_script \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"script": {
"code": "...",
"runtime_version": "V3"
}
}'
Body Parameters
scriptobject#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
Response
Updated rule:
{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#Rule information.
rule.idstring#Rule ID.
rule.slugstring#Rule slug.
scriptobject#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
rule.disabledboolean#Indicates whether rule is enabled or disabled.
rule.statestring#Can be
STARTEDorSTOPPED.
Disable Rule CloudGateway
POST /v3/sites/{site_id}/rule_engine/rules/{rule_id}/disable
Disables a specific rule.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98/disable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'
Response
Disabled rule:
{
"rule": {
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": true,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
}
}
ruleobject#Rule information.
rule.idstring#Rule ID.
rule.slugstring#Rule slug.
scriptobject#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
rule.disabledboolean#Indicates whether rule is enabled or disabled.
rule.statestring#Can be
STARTEDorSTOPPED.
Batch Disable Rules CloudGateway
POST /v3/sites/{site_id}/rule_engine/rules/batch_disable
Disables multiple rules at once.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/batch_disable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"rule_ids": ["c6cea573-a85f-4642-8e63-9a3e04b9ef98", "b2d9abe6-82cd-4f68-8844-5282f294e763"]
}'
Body Parameters
rule_idsarray of stringsrequired#List of rule IDs to disable.
Response
Disabled rules:
{
"rules": [{
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": true,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
},
{
"id": "b2d9abe6-82cd-4f68-8844-5282f294e763",
"slug": "electrolysers-control",
"disabled": true,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STOPPED"
}]
}
Enable Rule CloudGateway
POST /v3/sites/{site_id}/rule_engine/rules/{rule_id}/enable
Enables a specific rule.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/b2d9abe6-82cd-4f68-8844-5282f294e763/enable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'
Response
Enabled rule:
{
"rule": {
"id": "b2d9abe6-82cd-4f68-8844-5282f294e763",
"slug": "electrolysers-control",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STOPPED"
}
}
ruleobject#Rule information.
rule.idstring#Rule ID.
rule.slugstring#Rule slug.
scriptobject#Rule script information.
script.codestring#Rule script code as base64 encoded string.
script.runtime_versionstring#V1orV3.
rule.disabledboolean#Indicates whether rule is enabled or disabled.
rule.statestring#Can be
STARTEDorSTOPPED.
Batch Enable Rules CloudGateway
POST /v3/sites/{site_id}/rule_engine/rules/batch_enable
Enables multiple rules at once.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/batch_enable \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"rule_ids": ["c6cea573-a85f-4642-8e63-9a3e04b9ef98", "b2d9abe6-82cd-4f68-8844-5282f294e763"]
}'
Body Parameters
rule_idsarray of stringsrequired#List of rule IDs to enable.
Response
Enabled rules:
{
"rules": [{
"id": "c6cea573-a85f-4642-8e63-9a3e04b9ef98",
"slug": "start-generator-low-battery",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STARTED"
},
{
"id": "b2d9abe6-82cd-4f68-8844-5282f294e763",
"slug": "electrolysers-control",
"disabled": false,
"script": {
"code": "...",
"runtime_version": "V3"
},
"state": "STOPPED"
}]
}
Delete Rule CloudGateway
DELETE /v3/sites/{site_id}/rule_engine/rules/{rule_id}
Deletes a specific rule.
Request
$ curl -X DELETE \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/c6cea573-a85f-4642-8e63-9a3e04b9ef98 \
-H 'X-Enapter-Auth-Token: {ACCESS_TOKEN}'
Batch Delete Rules CloudGateway
POST /v3/sites/{site_id}/rule_engine/rules/batch_delete
Deletes multiple rules at once.
Request
$ curl -X POST \
http://api.enapter.com/v3/sites/fecbbba0-79f2-4e9e-a6f0-69a310ab110b/rule_engine/rules/batch_delete \ -H'X-Enapter-Auth-Token: {ACCESS_TOKEN}' \
-d '{
"rule_ids": ["c6cea573-a85f-4642-8e63-9a3e04b9ef98", "b2d9abe6-82cd-4f68-8844-5282f294e763"]
}'
Body Parameters
rule_idsarray of stringsrequired#List of rule IDs to delete.