/api/tree/rules¶
The rules endpoint is used for bulk merging, replacing or deleting the entire ruleset of a tree. Instead of calling the tree/rule
endpoint multiple times for a single rule, you can supply a list of rules that will be merged into, or replace, the current rule set. Note that the GET
verb is not supported for this endpoint. To fetch the ruleset, load the tree via the /tree
endpoint. Also, all data must be provided in request content, query strings are not supported.
Verbs¶
POST - Merge rule sets
PUT - Replace the entire rule set
DELETE - Delete a rule
Requests¶
A request to store data must be an array of objects in the content of the request. The same fields as required for the /api/tree/rule endpoint are supported.
Response¶
A successful response to a POST
or PUT
request will return a 204
response code without body content. Successful DELETE
calls will return with a 204
status code and no body content. If a tree does not have any rules, the DELETE
request will still return a 204
. When modifying data, if no changes were present, i.e. the call did not provide any data to store, the response will be a 304
without any body content. If the requested tree did not exist in the system, a 404
will be returned with an error message. If invalid data was supplied a 400
error will be returned.
POST/PUT¶
Issuing a POST
will merge the given rule set with any that already exist. This means that if a rule already exists for one of the given rules, only the fields given will be modified in the existing rule. Using the PUT
method will replace all of the rules for the given tree with the new set. Any existing rules for the tree will be deleted before the new rules are stored.
Note
All of the rules in the request array must belong to the same treeId
or a 400
exception will be returned. Likewise, all of the rules will pass validation and must include the level
and order
fields.
Example POST Request¶
http://localhost:4242/api/tree/rule?treeId=1&level=0&order=0&type=METRIC&separator=.&method_override=post
Example Content Request¶
[
{
"treeId": 1,
"level": 0,
"order": 0,
"type": "METRIC",
"description": "Metric split rule",
"split": "\\."
},
{
"treeId": 1,
"level": 0,
"order": 1,
"type": "tagk",
"field": "fqdn",
"description": "Hostname for the device"
},
{
"treeId": 1,
"level": 1,
"order": 0,
"type": "tagk",
"field": "department"
"description": "Department that owns the device"
}
]
DELETE¶
Using the DELETE
method will remove all rules from a tree. A successful deletion will respond with a 204
status code and no content body. If the tree did not exist, a 404
error will be returned.
Warning
This method cannot be undone.
Example DELETE Request¶
http://localhost:4242/api/tree/rules?treeId=1&method_override=delete