This resource address creates a new rule for the specified alert action.
Upon success, MarkLogic Server returns status code 202 (Accepted). If the alert already exists or if the payload is malformed, a status code of 400 (Bad Request) is returned. A status code of 401 (Unauthorized) is returned if the user does not have the necessary privileges.
manage-admin
rolehttp://marklogic.com/xdmp/privileges/manage-admin
http://marklogic.com/xdmp/privileges/manage
privilege, plus one of the following privileges:
http://marklogic.com/xdmp/privileges/admin/database
http://marklogic.com/xdmp/privileges/admin/database/database-ID
http://marklogic.com/xdmp/privileges/admin/database/alerts/database-ID
The structure of the data in a create rule request is as shown below.
Note: The properties described here are for XML payloads. In general they are the same for
JSON, with the exception that options
is expressed in singular form.
name
description
user-id
query
action-name
external-security-id
user-name
options
curl -X POST --anyauth --user admin:admin --header "Content-Type:application/json" \ -d '{ "name": "my-rule", "description": "log to ErrorLog.txt", "user-name": "manageadmin", "query": { "wordQuery": { "text": "Yorick" } }, "action-name": "", "option": [] }' \ http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config ==> Creates a new rule, named "my-rule", for the alert action, "xdmp:log2."
curl -X POST --anyauth --user admin:admin --header "Content-Type:application/json" \ -d '{ "name": "my-query-rule", "description": "log to ErrorLog.txt", "user-name": "admin", "query": { "orQuery": { "queries": [ { "notQuery": { "query": { "collectionQuery": { "uris": [ "latest" ] } } } }, { "collectionQuery": { "uris": [ "uni-temporal" ] } }, { "elementRangeQuery": { "element": [ "systemEnd" ], "operator": ">", "value": [ { "type": "dateTime", "val": "2021-12-01T00:00:00" } ] } }, { "notQuery": { "query": { "collectionQuery": { "uris": [ "very good" ] } } } } ] } }, "action-name": "", "option": [] }' \ http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config ==> Creates a new rule, named "my-query-rule", for the alert action, "xdmp:log2."
curl -X POST --anyauth --user admin:admin --header "Content-Type:application/xml" \ -d '<alert-rule-properties xmlns="http://marklogic.com/manage/alert-rule/properties"> <name>my-query-rule</name> <description>Description for XML</description> <query> <cts:and-query xmlns:cts="http://marklogic.com/cts"> <cts:not-query> <cts:collection-query> <cts:uri>newest</cts:uri> </cts:collection-query> </cts:not-query> <cts:collection-query> <cts:uri>uni-temporal</cts:uri> </cts:collection-query> <cts:element-range-query operator=">"> <cts:element>systemEnd</cts:element> <cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2021-12-01T00:00:00</cts:value> </cts:element-range-query> </cts:and-query> </query> </alert-rule-properties>' \ http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config ==> Creates a new rule with input of XML, named "my-query-rule", for the alert action, "xdmp:log2."
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.