> LLD rule object

The following objects are directly related to the discoveryrule API.

LLD rule

The low-level discovery rule object has the following properties.

Property Type Description
itemid string (readonly) ID of the LLD rule.
delay
(required)
string Update interval of the LLD rule. Accepts seconds or time unit with suffix and with or without one or more custom intervals that consist of either flexible intervals and scheduling intervals as serialized strings. Also accepts user macros. Flexible intervals could be written as two macros separated by a forward slash. Intervals are separated by a semicolon.
hostid
(required)
string ID of the host that the LLD rule belongs to.
interfaceid
(required)
string ID of the LLD rule's host interface. Used only for host LLD rules.

Not required for Zabbix agent (active), Zabbix internal, Zabbix trapper, dependent and database monitor LLD rules.
key_
(required)
string LLD rule key.
name
(required)
string Name of the LLD rule.
type
(required)
integer Type of the LLD rule.

Possible values:
0 - Zabbix agent;
2 - Zabbix trapper;
3 - simple check;
5 - Zabbix internal;
7 - Zabbix agent (active);
10 - external check;
11 - database monitor;
12 - IPMI agent;
13 - SSH agent;
14 - TELNET agent;
16 - JMX agent;
18 - Dependent item;
19 - HTTP agent;
20 - SNMP agent;
url
(required)
string URL string, required for HTTP agent LLD rule. Supports user macros, {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}.
allow_traps integer HTTP agent LLD rule field. Allow to populate value as in trapper item type also.

0 - (default) Do not allow to accept incoming data.
1 - Allow to accept incoming data.
authtype integer Used only by SSH agent or HTTP agent LLD rules.

SSH agent authentication method possible values:
0 - (default) password;
1 - public key.

HTTP agent authentication method possible values:
0 - (default) none
1 - basic
2 - NTLM
description string Description of the LLD rule.
error string (readonly) Error text if there are problems updating the LLD rule value.
follow_redirects integer HTTP agent LLD rule field. Follow response redirects while pooling data.

0 - Do not follow redirects.
1 - (default) Follow redirects.
headers object HTTP agent LLD rule field. Object with HTTP(S) request headers, where header name is used as key and header value as value.

Example:
{ "User-Agent": "Zabbix" }
http_proxy string HTTP agent LLD rule field. HTTP(S) proxy connection string.
ipmi_sensor string IPMI sensor. Used only by IPMI LLD rules.
jmx_endpoint string JMX agent custom connection string.

Default value:
service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi
lifetime string Time period after which items that are no longer discovered will be deleted. Accepts seconds, time unit with suffix and user macro.

Default: 30d.
master_itemid integer Master item ID.
Recursion up to 3 dependent items and maximum count of dependent items equal to 999 are allowed.
Discovery rule cannot be master item for another discovery rule.

Required for Dependent item.
output_format integer HTTP agent LLD rule field. Should response be converted to JSON.

0 - (default) Store raw.
1 - Convert to JSON.
params string Additional parameters depending on the type of the LLD rule:
- executed script for SSH and Telnet LLD rules;
- SQL query for database monitor LLD rules;
- formula for calculated LLD rules.
password string Password for authentication. Used by simple check, SSH, Telnet, database monitor, JMX and HTTP agent LLD rules.
post_type integer HTTP agent LLD rule field. Type of post data body stored in posts property.

0 - (default) Raw data.
2 - JSON data.
3 - XML data.
posts string HTTP agent LLD rule field. HTTP(S) request body data. Used with post_type.
privatekey string Name of the private key file.
publickey string Name of the public key file.
query_fields array HTTP agent LLD rule field. Query parameters. Array of objects with 'key':'value' pairs, where value can be empty string.
request_method integer HTTP agent LLD rule field. Type of request method.

0 - (default) GET
1 - POST
2 - PUT
3 - HEAD
retrieve_mode integer HTTP agent LLD rule field. What part of response should be stored.

0 - (default) Body.
1 - Headers.
2 - Both body and headers will be stored.

For request_method HEAD only 1 is allowed value.
snmp_oid string SNMP OID.
ssl_cert_file string HTTP agent LLD rule field. Public SSL Key file path.
ssl_key_file string HTTP agent LLD rule field. Private SSL Key file path.
ssl_key_password string HTTP agent LLD rule field. Password for SSL Key file.
state integer (readonly) State of the LLD rule.

Possible values:
0 - (default) normal;
1 - not supported.
status integer Status of the LLD rule.

Possible values:
0 - (default) enabled LLD rule;
1 - disabled LLD rule.
status_codes string HTTP agent LLD rule field. Ranges of required HTTP status codes separated by commas. Also supports user macros as part of comma separated list.

Example: 200,200-{$M},{$M},200-400
templateid string (readonly) ID of the parent template LLD rule.
timeout string HTTP agent LLD rule field. Item data polling request timeout. Support user macros.

default: 3s
maximum value: 60s
trapper_hosts string Allowed hosts. Used by trapper LLD rules or HTTP agent LLD rules.
username string Username for authentication. Used by simple check, SSH, Telnet, database monitor, JMX and HTTP agent LLD rules.

Required by SSH and Telnet LLD rules.
verify_host integer HTTP agent LLD rule field. Whether to validate that the host name for the connection matches the one in the host's certificate.

0 - (default) Do not validate.
1 - Validate.
verify_peer integer HTTP agent LLD rule field. Whether to validate that the host's certificate is authentic.

0 - (default) Do not validate.
1 - Validate.

Note that for some methods (update, delete) the required/optional parameter combination is different.

LLD rule filter

The LLD rule filter object defines a set of conditions that can be used to filter discovered objects. It has the following properties:

Property Type Description
conditions
(required)
array Set of filter conditions to use for filtering results.
evaltype
(required)
integer Filter condition evaluation method.

Possible values:
0 - and/or;
1 - and;
2 - or;
3 - custom expression.
eval_formula string (readonly) Generated expression that will be used for evaluating filter conditions. The expression contains IDs that reference specific filter conditions by its formulaid. The value of eval_formula is equal to the value of formula for filters with a custom expression.
formula string User-defined expression to be used for evaluating conditions of filters with a custom expression. The expression must contain IDs that reference specific filter conditions by its formulaid. The IDs used in the expression must exactly match the ones defined in the filter conditions: no condition can remain unused or omitted.

Required for custom expression filters.

LLD rule filter condition

The LLD rule filter condition object defines a separate check to perform on the value of an LLD macro. It has the following properties:

Property Type Description
macro
(required)
string LLD macro to perform the check on.
value
(required)
string Value to compare with.
formulaid string Arbitrary unique ID that is used to reference the condition from a custom expression. Can only contain capital-case letters. The ID must be defined by the user when modifying filter conditions, but will be generated anew when requesting them afterward.
operator integer Condition operator.

Possible values:
8 - (default) matches regular expression;
9 - does not match regular expression.

To better understand how to use filters with various types of expressions, see examples on the discoveryrule.get and discoveryrule.create method pages.

LLD macro path

The LLD macro path has the following properties:

Property Type Description
lld_macro
(required)
string LLD macro.
path
(required)
string Selector for value which will be assigned to corresponding macro.

LLD rule preprocessing

The LLD rule preprocessing object has the following properties.

Property Type Description
type
(required)
integer The preprocessing option type.

Possible values:
5 - Regular expression matching;
11 - XML XPath;
12 - JSONPath;
15 - Does not match regular expression;
16 - Check for error in JSON;
17 - Check for error in XML;
20 - Discard unchanged with heartbeat;
23 - Prometheus to JSON;
24 - CSV to JSON;
25 - Replace.
params
(required)
string Additional parameters used by preprocessing option. Multiple parameters are separated by LF (\n) character.
error_handler
(required)
integer Action type used in case of preprocessing step failure.

Possible values:
0 - Error message is set by Zabbix server;
1 - Discard value;
2 - Set custom value;
3 - Set custom error message.
error_handler_params
(required)
string Error handler parameters. Used with error_handler.

Must be empty, if error_handler is 0 or 1.
Can be empty if, error_handler is 2.
Cannot be empty, if error_handler is 3.

The following parameters and error handlers are supported for each preprocessing type.

Preprocessing type Name Parameter 1 Parameter 2 Parameter 3 Supported error handlers
5 Regular expression pattern1 output2 0, 1, 2, 3
11 XML XPath path3 0, 1, 2, 3
12 JSONPath path3 0, 1, 2, 3
15 Does not match regular expression pattern1 0, 1, 2, 3
16 Check for error in JSON path3 0, 1, 2, 3
17 Check for error in XML path3 0, 1, 2, 3
20 Discard unchanged with heartbeat seconds4, 5, 6
23 Prometheus to JSON pattern5, 7 0, 1, 2, 3
24 CSV to JSON character2 character2 0,1 0, 1, 2, 3
25 Replace search string2 replacement2

1 regular expression
2 string
3 JSONPath or XML XPath
4 positive integer (with support of time suffixes, e.g. 30s, 1m, 2h, 1d)
5 user macro
6 LLD macro
7 Prometheus pattern following the syntax: <metric name>{<label name>="<label value>", ...} == <value>. Each Prometheus pattern component (metric, label name, label value and metric value) can be user macro.
8 Prometheus output following the syntax: <label name>.

LLD rule overrides

The LLD rule overrides object defines a set of rules (filters, conditions and operations) that are used to override properties of different prototype objects. It has the following properties:

Property Type Description
name
(required)
string Unique override name.
step
(required)
integer Unique order number of the override.
stop integer Stop processing next overrides if matches.

Possible values:
0 - (default) don't stop processing overrides;
1 - stop processing overrides if filter matches.
filter object Override filter.
operations array Override operations.

LLD rule override filter

The LLD rule override filter object defines a set of conditions that if they match the discovered object the override is applied. It has the following properties:

Property Type Description
evaltype
(required)
integer Override filter condition evaluation method.

Possible values:
0 - and/or;
1 - and;
2 - or;
3 - custom expression.
conditions
(required)
array Set of override filter conditions to use for matching the discovered objects.
eval_formula string (readonly) Generated expression that will be used for evaluating override filter conditions. The expression contains IDs that reference specific override filter conditions by its formulaid. The value of eval_formula is equal to the value of formula for filters with a custom expression.
formula string User-defined expression to be used for evaluating conditions of override filters with a custom expression. The expression must contain IDs that reference specific override filter conditions by its formulaid. The IDs used in the expression must exactly match the ones defined in the override filter conditions: no condition can remain unused or omitted.

Required for custom expression override filters.

LLD rule override filter condition

The LLD rule override filter condition object defines a separate check to perform on the value of an LLD macro. It has the following properties:

Property Type Description
macro
(required)
string LLD macro to perform the check on.
value
(required)
string Value to compare with.
formulaid string Arbitrary unique ID that is used to reference the condition from a custom expression. Can only contain capital-case letters. The ID must be defined by the user when modifying filter conditions, but will be generated anew when requesting them afterward.
operator integer Condition operator.

Possible values:
8 - (default) matches regular expression;
9 - does not match regular expression.

LLD rule override operation

The LLD rule override operation is combination of conditions and actions to perform on the prototype object. It has the following properties:

Property Type Description
operationobject
(required)
integer Type of discovered object to perform the action.

Possible values:
0 - Item prototype;
1 - Trigger prototype;
2 - Graph prototype;
3 - Host prototype.
operator integer Override condition operator.

Possible values:
0 - (default) equals;
1 - does not equal;
2 - contains;
3 - does not contain;
8 - matches;
9 - does not match.
value string Pattern to match item, trigger, graph or host prototype name depending on selected object.
opstatus object Override operation status object for item, trigger and host prototype objects.
opdiscover object Override operation discover status object (all object types).
opperiod object Override operation period (update interval) object for item prototype object.
ophistory object Override operation history object for item prototype object.
optrends object Override operation trends object for item prototype object.
opseverity object Override operation severity object for trigger prototype object.
optag array Override operation tag object for trigger prototype object.
optemplate array Override operation template object for host prototype object.
opinventory object Override operation inventory object for host prototype object.
LLD rule override operation status

LLD rule override operation status that is set to discovered object. It has the following properties:

Property Type Description
status
(required)
integer Override the status for selected object.

Possible values:
0 - Create enabled;
1 - Create disabled.
LLD rule override operation discover

LLD rule override operation discover status that is set to discovered object. It has the following properties:

Property Type Description
discover
(required)
integer Override the discover status for selected object.

Possible values:
0 - Yes, continue discovering the objects;
1 - No, new objects will not be discovered and existing ones will me marked as lost.
LLD rule override operation period

LLD rule override operation period is an update interval value (supports custom intervals) that is set to discovered item. It has the following properties:

Property Type Description
delay
(required)
string Override the update interval of the item prototype. Accepts seconds or a time unit with suffix (30s,1m,2h,1d) as well as flexible and scheduling intervals and user macros or LLD macros. Multiple intervals are separated by a semicolon.
LLD rule override operation history

LLD rule override operation history value that is set to discovered item. It has the following properties:

Property Type Description
history
(required)
string Override the history of item prototype which is a time unit of how long the history data should be stored. Also accepts user macro and LLD macro.

LLD rule override operation trends value that is set to discovered item. It has the following properties:

Property Type Description
trends
(required)
string Override the trends of item prototype which is a time unit of how long the trends data should be stored. Also accepts user macro and LLD macro.
LLD rule override operation severity

LLD rule override operation severity value that is set to discovered trigger. It has the following properties:

Property Type Description
severity
(required)
integer Override the severity of trigger prototype.

Possible values are: 0 - (default) not classified;
1 - information;
2 - warning;
3 - average;
4 - high;
5 - disaster.
LLD rule override operation tag

LLD rule override operation tag object contains tag name and values that are set to discovered trigger. It has the following properties:

Property Type Description
tag
(required)
string Override the tag name of trigger prototype tags.
value string Override the tag value of trigger prototype tags.
LLD rule override operation template

LLD rule override operation template object that is linked to discovered host. It has the following properties:

Property Type Description
templateid
(required)
string Override the template of host prototype linked templates.
LLD rule override operation inventory

LLD rule override operation inventory mode value that is set to discovered host. It has the following properties:

Property Type Description
inventory_mode
(required)
integer Override the host prototype inventory mode.

Possible values are:
-1 - disabled;
0 - (default) manual;
1 - automatic.