discoveryrule.update
Description
object discoveryrule.update(object/array lldRules)
This method allows to update existing LLD rules.
This method is only available to Admin and Super admin user types. Permissions to call the method can be revoked in user role settings. See User roles for more information.
Parameters
(object/array)
LLD rule properties to be updated.
The itemid
property must be defined for each LLD rule, all other properties are optional. Only the passed properties will be updated, all others will remain unchanged.
Additionally to the standard LLD rule properties, the method accepts the following parameters.
Parameter | Type | Description |
---|---|---|
filter | object | LLD rule filter object to replace the current filter. |
preprocessing | array | LLD rule preprocessing options to replace the current preprocessing options. Parameter behavior: - read-only for inherited objects |
lld_macro_paths | array | LLD rule lld_macro_path options. Parameter behavior: - read-only for inherited objects |
overrides | array | LLD rule overrides options. Parameter behavior: - read-only for inherited objects |
Return values
(object)
Returns an object containing the IDs of the updated LLD rules under the itemids
property.
Examples
Adding a filter to an LLD rule
Add a filter so that the contents of the {#FSTYPE} macro would match the @File systems for discovery regexp.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "22450",
"filter": {
"evaltype": 1,
"conditions": [
{
"macro": "{#FSTYPE}",
"value": "@File systems for discovery"
}
]
}
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"22450"
]
},
"id": 1
}
Adding LLD macro paths
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "22450",
"lld_macro_paths": [
{
"lld_macro": "{#MACRO1}",
"path": "$.json.path"
}
]
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"22450"
]
},
"id": 1
}
Disable trapping
Disable LLD trapping for discovery rule.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "28336",
"allow_traps": 0
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28336"
]
},
"id": 1
}
Updating LLD rule preprocessing options
Update an LLD rule with preprocessing rule “JSONPath”.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "44211",
"preprocessing": [
{
"type": 12,
"params": "$.path.to.json",
"error_handler": 2,
"error_handler_params": "5"
}
]
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"44211"
]
},
"id": 1
}
Updating LLD rule script
Update an LLD rule script with a different script and remove unnecessary parameters that were used by previous script.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "23865",
"parameters": [],
"script": "Zabbix.log(3, 'Log test');\nreturn 1;"
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"23865"
]
},
"id": 1
}
Source
CDiscoveryRule::update() in ui/include/classes/api/services/CDiscoveryRule.php.