Business Rules APIs
Listing the available business rule instances
Overview
Description |
Returns the list of business rule instances that are currently available. |
API Context |
/business-rules/instances |
HTTP Method |
GET |
Request/Response Format |
application/json |
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
tooling |
curl command syntax
curl -X GET "https://<HOST_NAME>:<PORT>/business-rules/instances" -u admin:admin -k
Sample curl command
curl -X GET "https://localhost:9743/business-rules/instances" -u admin:admin -k
Sample output
[ "Found Business Rules", "Loaded available business rules", [ [ { "ruleTemplateUUID": "identifying-continuous-production-decrease", "properties": { "timeInterval": "6", "timeRangeInput": "5", "email": "example@email.com", "validateTimeRange": "function validateTimeRange(number) {\n\tif (!isNaN(number) && (number > 0)) {\n\t\treturn number;\n\t} else {\n\t\tthrow 'A positive number expected for time range';\n\t}\n}", "getUsername": "function getUsername(email) {\n\tif (email.match(/\\S+@\\S+/g)) {\n\t\tif (email.match(/\\S+@\\S+/g)[0] === email) {\n\t\t\treturn email.split('@')[0];\n\t\t}\n\t\tthrow 'Invalid email address provided';\n\t}\n\tthrow 'Invalid email address provided';\n}", "timeRange": "5", "username": "example" }, "uuid": "samplesiddhiapp", "name": "SampleSiddhiApp", "templateGroupUUID": "3432442", "type": "template" }, 1 ] ], 0 ]
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes. |
Delete business rule with given UUID
Overview
Description |
Deletes the business rule with the given UUID. |
API Context |
/business-rules/instances/{businessRuleInstanceID}?force-delete=false |
HTTP Method |
DELETE |
Request/Response Format |
application/json |
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
tooling |
Parameter Description
Parameter |
Description |
{businessRuleInstanceID} |
The UUID (Uniquely Identifiable ID) of the business rules instance to be deleted. |
curl command syntax
curl -X DELETE "https://<HOST_NAME>:<PORT>/business-rules/instances/business-rule-1?force-delete=false" -H "accept: application/json" -u admin:admin
Sample curl command
curl -X DELETE "https://localhost:9743/business-rules/instances/business-rule-1?force-delete=false" -H "accept: application/json" -u admin:admin
Sample output
[ "Deletion Successful", "Successfully deleted the business rule", 6 ]
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes . |
Fetch template group with the given UUID
Overview
Description |
Returns the template group that has the given UUID. |
API Context |
/business-rules/template-groups/{templateGroupID} |
HTTP Method |
GET |
Request/Response Format |
application/json
|
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
tooling |
Parameter description
Parameter |
Description |
{templateGroupID} |
The UUID of the template group to be fetched. |
curl command syntax
curl -X GET "https://<HOST_NAME>:<PORT>/business-rules/template-groups/{templateGroupID}" -u admin:admin -k
Sample curl command
curl -X GET "https://localhost:9743/business-rules/template-groups/sweet-factory" -u admin:admin -k
Sample output
[ "Found Template Group", "Loaded template group with uuid '3432442'", { "uuid": "3432442", "name": "Sweet Factory", "description": "Configure Sweet Factory Rules", "ruleTemplates": [ { "uuid": "identifying-continuous-production-decrease", "name": "Identify Continuous Production Decrease", "type": "template", "instanceCount": "many", "script": "var timeRange = validateTimeRange(${timeRangeInput});\nvar username = getUsername('${email}');\n\n// Validates the input provided for time range\nfunction validateTimeRange(number) {\n\tif (!isNaN(number) && (number > 0)) {\n\t\treturn number;\n\t} else {\n\t\tthrow 'A positive number expected for time range';\n\t}\n}\n\n// Gets the username from provided email\nfunction getUsername(email) {\n\tif (email.match(/\\S+@\\S+/g)) {\n\t\tif (email.match(/\\S+@\\S+/g)[0] === email) {\n\t\t\treturn email.split('@')[0];\n\t\t}\n\t\tthrow 'Invalid email address provided';\n\t}\n\tthrow 'Invalid email address provided';\n}", "description": "Alert factory managers if rate of production continuously decreases for `X` time period", "templates": [ { "type": "siddhiApp", "content": "@App:name('SweetFactory-TrendAnalysis')\n\n@source(type='http', @map(type='json'))\ndefine stream SweetProductionStream (name string, amount double, factoryId int);\n\n@sink(type='log', @map(type='text', @payload(\"\"\"\nHi ${username},\nProduction at Factory has gone\nfrom to in ${timeInterval} seconds!\"\"\")))\ndefine stream ContinousProdReductionStream (factoryId int, initaltime long, finalTime long, initalamout double, finalAmount double);\n\nfrom
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes . |
Fetch rule template of specific UUID available under a template group with specific UUID
Overview
Description |
Returns the rule template with the specified UUID that is defined under the template group with the specified UUID. |
API Context |
/business-rules/template-groups/{templateGroupID}/templates/{ruleTemplateID} |
HTTP Method |
GET |
Request/Response Format |
application/json |
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
Tooling |
Parameter description
Parameter |
Description |
{templateGroupID} |
The UUID of the template group from which the specified rule template needs to be retrieved. |
{ruleTemplateID} |
The UUID of the rule template that needs to be retrieved from the specified template group. |
curl command syntax
curl -X GET "https://localhost:9743/business-rules/template-groups/{templateGroupID}/templates/{ruleTemplateID}" -u admin:admin -k
Sample curl command
curl -X GET "https://localhost:9643/business-rules/template-groups/sweet-factory/templates/identifying-continuous-production-decrease" -u admin:admin -k
Sample output
[ "Found Rule Template", "Loaded rule template with uuid 'identifying-continuous-production-decrease'", { "uuid": "identifying-continuous-production-decrease", "name": "Identify Continuous Production Decrease", "type": "template", "instanceCount": "many", "script": "var timeRange = validateTimeRange(${timeRangeInput});\nvar username = getUsername('${email}');\n\n// Validates the input provided for time range\nfunction validateTimeRange(number) {\n\tif (!isNaN(number) && (number > 0)) {\n\t\treturn number;\n\t} else {\n\t\tthrow 'A positive number expected for time range';\n\t}\n}\n\n// Gets the username from provided email\nfunction getUsername(email) {\n\tif (email.match(/\\S+@\\S+/g)) {\n\t\tif (email.match(/\\S+@\\S+/g)[0] === email) {\n\t\t\treturn email.split('@')[0];\n\t\t}\n\t\tthrow 'Invalid email address provided';\n\t}\n\tthrow 'Invalid email address provided';\n}", "description": "Alert factory managers if rate of production continuously decreases for `X` time period", "templates": [ { "type": "siddhiApp", "content": "@App:name('SweetFactory-TrendAnalysis')\n\n@source(type='http', @map(type='json'))\ndefine stream SweetProductionStream (name string, amount double, factoryId int);\n\n@sink(type='log', @map(type='text', @payload(\"\"\"\nHi ${username},\nProduction at Factory has gone\nfrom to in ${timeInterval} seconds!\"\"\")))\ndefine stream ContinousProdReductionStream (factoryId int, initaltime long, finalTime long, initalamout do
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes . |
Fetch available template groups
Overview
Description |
Returns all the template groups that are currently available in the SI setup. |
API Context |
/business-rules/template-groups |
HTTP Method |
GET |
Request/Response Format |
application/json |
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
Tooling |
curl command syntax
curl -X GET "https://<HOST_NAME>:<PORT>/business-rules/template-groups" -u admin:admin -k
Sample curl command
curl -X GET "https://localhost:9743/business-rules/template-groups" -u admin:admin -k
Sample output
[ "Found Template Groups", "Loaded available template groups", [ { "uuid": "stock-exchange", "name": "Stock Exchange", "description": "Domain for stock exchange analytics", "ruleTemplates": [ { "uuid": "stock-exchange-input", "name": "Stock Exchange Input", "type": "input", "instanceCount": "many", "script": "", "description": "configured http source to receive stock exchange updates", "templates": [ { "type": "siddhiApp", "content": "@App:name('appName1')\n@Source(type = 'http', receiver.url='${receiverUrl}', basic.auth.enabled='false',\n@map(type='text'))\ndefine stream StockInputStream(symbol string, price float, volume long, name string);", "exposedStreamDefinition": "define stream StockInputStream(symbol string, price float, volume long, name string);" } ], "properties": { "receiverUrl": { "fieldName": "Receiver URL", "description": "Enter the URL of the http receiver for text messages. One URL can only be used once", "defaultValue": "https://localhost:8005/stockInputStream" } } }, { "uuid": "stock-exchange-output", "name": "Stock Exchange Output", "type": "output", "instanceCount": "many", "script": "", "description": "configured output to log the filtered stock exchange data", "templates": [ { "type": "siddhiApp", "content": "@App:name('appName2')\n\ndefine stream StockOutputStream(companyName string, companySymbol string, sellingPrice float);\
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes. |
Fetch business rule instance with given UUID
Overview
Description |
Returns the business rule instance with the given UUID. |
API Context |
/business-rules/instances/{businessRuleInstanceID} |
HTTP Method |
GET |
Request/Response Format |
application/json
|
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
Tooling |
Parameter description
Parameter |
Description |
{businessRuleInstanceID} |
The UUID of the business rules instance to be fetched. |
curl command syntax
curl -X GET "https://<HOST_NAME>:<PORT>/business-rules/instances/{businessRuleInstanceID}" -H "accept: application/json" -u admin:admin -k
Sample curl command
curl -X GET "https://localhost:9743/business-rules/instances/business-rule-1" -H "accept: application/json" -u admin:admin -k
Sample output
[ "Found Business Rule", "Loaded business rule with uuid 'sample'", { "ruleTemplateUUID": "identifying-continuous-production-decrease", "properties": { "timeInterval": "6", "timeRangeInput": "5", "email": "example@email.com", "validateTimeRange": "function validateTimeRange(number) {\n\tif (!isNaN(number) && (number > 0)) {\n\t\treturn number;\n\t} else {\n\t\tthrow 'A positive number expected for time range';\n\t}\n}", "getUsername": "function getUsername(email) {\n\tif (email.match(/\\S+@\\S+/g)) {\n\t\tif (email.match(/\\S+@\\S+/g)[0] === email) {\n\t\t\treturn email.split('@')[0];\n\t\t}\n\t\tthrow 'Invalid email address provided';\n\t}\n\tthrow 'Invalid email address provided';\n}", "timeRange": "5", "username": "example" }, "uuid": "sample", "name": "Sample", "templateGroupUUID": "3432442", "type": "template" } ]
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes. |
Create and save a business rule
Overview
Description |
Creates and saves a business rule. |
API Context |
/business-rules/instances?deploy={deploymentStatus} |
HTTP Method |
POST |
Request/Response Format |
application/json
|
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
Tooling |
Parameter description
curl command syntax
Sample curl command
curl -X POST "https://localhost:9743/business-rules/instances?deploy=true" -H "accept: application/json" -H "content-type: multipart/form-data" -F 'businessRule={"name":"Business Rule 5","uuid":"business-rule-5","type":"template","templateGroupUUID":"sweet-factory","ruleTemplateUUID":"identifying-continuous-production-decrease","properties":{"timeInterval":"6","timeRangeInput":"5","email":"example@email.com"}}' -u admin:admin -k
Sample output
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes . |
Update business rules instance with given UUID
Overview
Description |
Updates the business rules instance with the given UUID. |
API Context |
/business-rules/instances/{businessRuleInstanceID}?deploy={deploymentStatus} |
HTTP Method |
PUT |
Request/Response Format |
application/json |
Authentication |
Basic |
Username |
admin |
Password |
admin |
Runtime |
Tooling |
Parameter description
{businessRuleInstanceID} |
The UUID of the business rules instance to be updated. |
{deploymentStatus} |
|
Sample curl command
curl -X PUT "https://localhost:9743/business-rules/instances/business-rule-5?deploy=true" -H "accept: application/json" -H "content-type: application/json" -d '{"name":"Business Rule 5","uuid":"business-rule-5","type":"template","templateGroupUUID":"sweet-factory","ruleTemplateUUID":"identifying-continuous-production-decrease","properties":{"timeInterval":"9","timeRangeInput":"8","email":"newexample@email.com"}}' -u admin:admin -k
Response
HTTP Status Code |
200 or 404
For descriptions of the HTTP status codes, see HTTP Status Codes. |
Top