[comment]: # aside:1

[comment]: # ({9103dc79-8098e93a})
# LLD rule prototype object

The following objects are directly related to the `discoveryruleprototype` API.

[comment]: # ({/9103dc79-8098e93a})

[comment]: # ({6e2aa0ce-0c810d05})
### LLD rule prototype

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|itemid|ID|ID of the LLD rule prototype.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*<br>- *required* for update operations|
|ruleid|ID|ID of the parent LLD rule/LLD rule prototype.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*<br>- *required* for create operations|
|delay|string|Update interval of the LLD rule prototype.<br><br>Accepts seconds or time unit with suffix (e.g., 30s, 1m, 2h, 1d) and, optionally, one or more [custom intervals](/manual/config/items/item/custom_intervals), all separated by semicolons. Custom intervals can be a mix of flexible and scheduling intervals.<br><br>Accepts user macros. If used, the value must be a single macro. Multiple macros or macros mixed with text are not supported. Flexible intervals may be written as two macros separated by a forward slash (e.g., `{$FLEX_INTERVAL}/{$FLEX_PERIOD}`).<br><br>Example:<br>`1h;wd1-5h9-18;{$Macro1}/1-7,00:00-24:00;0/6-7,12:00-24:00;{$Macro2}/{$Macro3}`<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "Zabbix agent" (0), "Simple check" (3), "Zabbix internal" (5), "External check" (10), "Database monitor" (11), "IPMI agent" (12), "SSH agent" (13), "TELNET agent" (14), "JMX agent" (16), "HTTP agent" (19), "SNMP agent" (20), "Script" (21), "Browser" (22), or if `type` is set to "Zabbix agent (active)" (7) and `key_` does not contain "mqtt.get"|
|hostid|ID|ID of the host that the LLD rule prototype belongs to.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *constant*<br>- *required* for create operations|
|flags|integer|[Origin](/manual/api/reference_commentary#entity-origin-flags) of the LLD rule prototype.<br><br>Possible values:<br>3 - a low-level discovery rule prototype;<br>7 - a discovered low-level discovery rule prototype.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*|
|interfaceid|ID|ID of the LLD rule prototype's host interface.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if LLD rule prototype belongs to host and `type` is set to "Zabbix agent", "IPMI agent", "JMX agent", or "SNMP agent"<br>- *supported* if LLD rule prototype belongs to host and `type` is set to "Simple check", "External check", "SSH agent", "TELNET agent", or "HTTP agent"|
|key\_|string|LLD rule prototype key. At least one LLD macro is required.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* for create operations<br>- *read-only* for inherited objects|
|name|string|Name of the LLD rule prototype.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* for create operations<br>- *read-only* for inherited objects|
|type|integer|Type of the LLD rule prototype.<br><br>Possible values:<br>0 - Zabbix agent;<br>2 - Zabbix trapper;<br>3 - Simple check;<br>5 - Zabbix internal;<br>7 - Zabbix agent (active);<br>10 - External check;<br>11 - Database monitor;<br>12 - IPMI agent;<br>13 - SSH agent;<br>14 - TELNET agent;<br>16 - JMX agent;<br>18 - Dependent item;<br>19 - HTTP agent;<br>20 - SNMP agent;<br>21 - Script;<br>22 - Browser;<br>23 - Nested.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* for create operations<br>- *read-only* for inherited objects|
|url|string|URL string.<br>Supports user macros, {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {HOST.PORT}, {ITEM.ID}, {ITEM.KEY}.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|allow\_traps|integer|Allow to populate value similarly to the trapper item.<br><br>Possible values:<br>0 - *(default)* Do not allow to accept incoming data;<br>1 - Allow to accept incoming data.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"|
|authtype|integer|Authentication method.<br><br>Possible values if `type` is set to "SSH agent":<br>0 - *(default)* password;<br>1 - public key.<br><br>Possible values if `type` is set to "HTTP agent":<br>0 - *(default)* none;<br>1 - basic;<br>2 - NTLM.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "SSH agent" or "HTTP agent"<br>- *read-only* for inherited objects (if `type` is set to "HTTP agent")|
|description|string|Description of the LLD rule prototype.|
|error|string|Error text if there are problems updating the LLD rule prototype value.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*|
|follow\_redirects|integer|Follow response redirects while polling data.<br><br>Possible values:<br>0 - Do not follow redirects;<br>1 - *(default)* Follow redirects.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|headers|array|Array of [headers](#http-header) that will be sent when performing an HTTP request.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|http\_proxy|string|HTTP(S) proxy connection string.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|ipmi\_sensor|string|IPMI sensor.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "IPMI agent" and `key_` is not set to "ipmi.get"<br>- *supported* if `type` is set to "IPMI agent"<br>- *read-only* for inherited objects|
|jmx\_endpoint|string|JMX agent custom connection string.<br><br>Default: service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "JMX agent"|
|lifetime|string|Time period after which items that are no longer discovered will be deleted. Accepts seconds, time unit with suffix, or a user macro.<br><br>Default: `7d`.|
|lifetime\_type|integer|Scenario to delete lost LLD resources.<br><br>Possible values:<br>0 - *(default)* Delete after lifetime threshold is reached;<br>1 - Do not delete;<br>2 - Delete immediately.|
|enabled\_lifetime|string|Time period after which items that are no longer discovered will be disabled. Accepts seconds, time unit with suffix, or a user macro.<br><br>Default: `0`.|
|enabled\_lifetime\_type|integer|Scenario to disable lost LLD resources.<br><br>Possible values:<br>0 - Disable after lifetime threshold is reached;<br>1 - Do not disable;<br>2 - *(default)* Disable immediately.|
|master\_itemid|ID|ID of the master item.<br>Discovery rule cannot be master item for another discovery rule.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "Dependent item"<br>- *read-only* for inherited objects|
|output\_format|integer|Should the response be converted to JSON.<br><br>Possible values:<br>0 - *(default)* Store raw;<br>1 - Convert to JSON.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|params|string|Additional parameters depending on the type of the LLD rule prototype:<br>- executed script for SSH and Telnet LLD rules;<br>- SQL query for database monitor LLD rules;<br>- formula for calculated LLD rules;<br>- the script for script and browser LLD rules.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "Database monitor", "SSH agent", "TELNET agent", "Script" or "Browser"<br>- *read-only* for inherited objects (if `type` is set to "Script" or "Browser")|
|parameters|object/array|Additional parameters if `type` is set to "Script" or "Browser".<br>Array of objects with `name` and `value` properties, where `name` must be unique.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "Script" or "Browser"<br>- *read-only* for inherited objects|
|password|string|Password for authentication.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "JMX agent" and `username` is set<br>- *supported* if `type` is set to "Simple check", "Database monitor", "SSH agent", "TELNET agent", or "HTTP agent"<br>- *read-only* for inherited objects (if `type` is set to "HTTP agent")|
|post\_type|integer|Type of post data body stored in `posts` property.<br><br>Possible values:<br>0 - *(default)* Raw data;<br>2 - JSON data;<br>3 - XML data.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|posts|string|HTTP(S) request body data.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "HTTP agent" and `post_type` is set to "JSON data" or "XML data"<br>- *supported* if `type` is set to "HTTP agent" and `post_type` is set to "Raw data"<br>- *read-only* for inherited objects|
|privatekey|string|Name of the private key file.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "SSH agent" and `authtype` is set to "public key"|
|publickey|string|Name of the public key file.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "SSH agent" and `authtype` is set to "public key"|
|query\_fields|array|Array of [query fields](#http-query-field) that will be sent when performing an HTTP request.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|request\_method|integer|Type of request method.<br><br>Possible values:<br>0 - *(default)* GET;<br>1 - POST;<br>2 - PUT;<br>3 - HEAD.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|retrieve\_mode|integer|What part of response should be stored.<br><br>Possible values if `request_method` is set to "GET", "POST", or "PUT":<br>0 - *(default)* Body;<br>1 - Headers;<br>2 - Both body and headers will be stored.<br><br>Possible values if `request_method` is set to "HEAD":<br>1 - Headers.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|snmp\_oid|string|SNMP OID.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "SNMP agent"<br>- *read-only* for inherited objects|
|ssl\_cert\_file|string|Public SSL Key file path.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|ssl\_key\_file|string|Private SSL Key file path.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|ssl\_key\_password|string|Password for SSL Key file.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|state|integer|State of the LLD rule prototype.<br><br>Possible values:<br>0 - *(default)* normal;<br>1 - not supported.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*|
|status|integer|Status of the LLD rule prototype.<br><br>Possible values:<br>0 - *(default)* enabled LLD rule prototype;<br>1 - disabled LLD rule prototype.|
|status\_codes|string|Ranges of required HTTP status codes, separated by commas. Also supports user macros as part of comma separated list.<br><br>Example: 200,200-{$M},{$M},200-400<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|templateid|ID|ID of the parent template LLD rule prototype.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*|
|timeout|string|Item data polling request timeout.<br>Accepts seconds or time unit with suffix (e.g., 30s, 1m). Also accepts user macros.<br><br>Possible values range: 1-600s.<br><br>Default: "" - use proxy/global settings.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "Zabbix agent" (0), "Simple check" (3) and `key_` does not start with "`vmware.`" and "`icmpping`", "Zabbix agent (active)" (7), "External check" (10), "Database monitor" (11), "SSH agent" (13), "TELNET agent" (14), "HTTP agent" (19), "SNMP agent" (20) and `snmp_oid` starts with "`walk[`" or "`get[`", "Script" (21), "Browser" (22)<br>- *read-only* for inherited objects|
|trapper\_hosts|string|Allowed hosts.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "Zabbix trapper", or if `type` is set to "HTTP agent" and `allow_traps` is set to "Allow to accept incoming data"|
|username|string|Username for authentication.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "SSH agent", "TELNET agent", or if `type` is set to "JMX agent" and `password` is set<br>- *supported* if `type` is set to "Simple check", "Database monitor", or "HTTP agent"<br>- *read-only* for inherited objects (if `type` is set to "HTTP agent")|
|uuid|string|Universal unique identifier, used for linking imported LLD rule prototypes to already existing ones. Auto-generated, if not given.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if the LLD rule prototype belongs to a template|
|verify\_host|integer|Whether to validate that the host name for the connection matches the one in the host's certificate.<br><br>Possible values:<br>0 - *(default)* Do not validate;<br>1 - Validate.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|
|verify\_peer|integer|Whether to validate that the host's certificate is authentic.<br><br>Possible values:<br>0 - *(default)* Do not validate;<br>1 - Validate.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `type` is set to "HTTP agent"<br>- *read-only* for inherited objects|

[comment]: # ({/6e2aa0ce-0c810d05})

[comment]: # ({ab5307fa-caf82a93})
#### HTTP header

The header object has the following properties:

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--------|---------------------------------------------------|-----------|
|name|string|HTTP header name.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|value|string|Header value.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/ab5307fa-caf82a93})

[comment]: # ({5b4177f3-0c63a63b})
#### HTTP query field

The query field object defines a name and value that is used to specify a URL parameter.
It has the following properties:

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--------|---------------------------------------------------|-----------|
|name|string|Name of the parameter.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|value|string|Parameter value.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/5b4177f3-0c63a63b})

[comment]: # ({87597f1d-bc5ce0af})
### LLD rule prototype filter

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|conditions|object/array|Set of [filter conditions](#lld-rule-prototype-filter-condition) to use for filtering results. The conditions will be sorted in the order of their placement in the formula.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|evaltype|integer|Filter condition [evaluation method](/manual/discovery/low_level_discovery#filter).<br><br>Possible values:<br>0 - And/Or;<br>1 - And;<br>2 - Or;<br>3 - Custom expression.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|eval\_formula|string|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*|
|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `evaltype` is set to "custom expression"|

[comment]: # ({/87597f1d-bc5ce0af})

[comment]: # ({cd3f8c03-5bd71a86})
#### LLD rule prototype filter condition

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|macro|string|LLD macro to perform the check on.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|value|string|Value to compare with.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `operator` is set to "matches regular expression" or "does not match regular expression"|
|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `evaltype` of [LLD rule prototype filter object](#lld-rule-prototype-filter) is set to "custom expression"|
|operator|integer|Condition operator.<br><br>Possible values:<br>8 - *(default)* matches regular expression;<br>9 - does not match regular expression;<br>12 - exists;<br>13 - does not exist.|

::: notetip
To better understand how to use filters with various
types of expressions, see examples on the
[discoveryruleprototype.get](get#retrieving-filter-conditions) and
[discoveryruleprototype.create](create#using-a-custom-expression-filter) method
pages.
:::

[comment]: # ({/cd3f8c03-5bd71a86})

[comment]: # ({99ea4653-ec3a36b7})
### LLD macro path

The LLD macro path has the following properties:

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|lld\_macro|string|LLD macro.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|path|string|Selector for value which will be assigned to corresponding macro.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/99ea4653-ec3a36b7})

[comment]: # ({58801fad-e8aecce9})
### LLD rule prototype preprocessing

The LLD rule prototype preprocessing object has the following properties.

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|type|integer|The preprocessing option type.<br><br>Possible values:<br>5 - Regular expression;<br>11 - XML XPath;<br>12 - JSONPath;<br>14 - Matches regular expression;<br>15 - Does not match regular expression;<br>16 - Check for error in JSON;<br>17 - Check for error in XML;<br>20 - Discard unchanged with heartbeat;<br>21 - JavaScript;<br>23 - Prometheus to JSON;<br>24 - CSV to JSON;<br>25 - Replace;<br>27 - XML to JSON;<br>28 - SNMP walk value;<br>29 - SNMP walk to JSON;<br>30 - SNMP get value.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|params|string|Additional parameters used by preprocessing option. Multiple parameters are separated by the newline (\\n) character.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "Regular expression" (5), "XML XPath" (11), "JSONPath" (12), "Matches regular expression" (14), "Does not match regular expression" (15), "Check for error in JSON" (16), "Check for error in XML" (17), "Discard unchanged with heartbeat" (20), "JavaScript" (21), "Prometheus to JSON" (23), "CSV to JSON" (24), "Replace" (25), "SNMP walk value" (28), "SNMP walk to JSON" (29), or "SNMP get value" (30)|
|error\_handler|integer|Action type used in case of preprocessing step failure.<br><br>Possible values:<br>0 - Error message is set by Zabbix server;<br>1 - Discard value;<br>2 - Set custom value;<br>3 - Set custom error message.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `type` is set to "Regular expression" (5), "XML XPath" (11), "JSONPath" (12), "Matches regular expression" (14), "Does not match regular expression" (15), "Check for error in JSON" (16), "Check for error in XML" (17), "Prometheus to JSON" (23), "CSV to JSON" (24), "XML to JSON" (27), "SNMP walk value" (28), "SNMP walk to JSON" (29), or "SNMP get value" (30)|
|error\_handler\_params|string|Error handler parameters.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `error_handler` is set to "Set custom value" or "Set custom error message"|

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|pattern^1^|output^2^|<|0, 1, 2, 3|
|11|XML XPath|path^3^|<|<|0, 1, 2, 3|
|12|JSONPath|path^3^|<|<|0, 1, 2, 3|
|14|Matches regular expression|pattern^1^|<|<|0, 1, 2, 3|
|15|Does not match regular expression|pattern^1^|<|<|0, 1, 2, 3|
|16|Check for error in JSON|path^3^|<|<|0, 1, 2, 3|
|17|Check for error in XML|path^3^|<|<|0, 1, 2, 3|
|20|Discard unchanged with heartbeat|seconds^4, 5^|<|<|<|
|21|JavaScript|script^2^|<|<|<|
|23|Prometheus to JSON|pattern^5, 6^|<|<|0, 1, 2, 3|
|24|CSV to JSON|character^2^|character^2^|0,1|0, 1, 2, 3|
|25|Replace|search string^2^|replacement^2^|<|<|
|27|XML to JSON|<|<|<|0, 1, 2, 3|
|28|SNMP walk value|OID^2^|Format:<br>0 - Unchanged<br>1 - UTF-8 from Hex-STRING<br>2 - MAC from Hex-STRING<br>3 - Integer from BITS|<|0, 1, 2, 3|
|29|SNMP walk to JSON^7^|Field name^2^|OID prefix^2^|Format:<br>0 - Unchanged<br>1 - UTF-8 from Hex-STRING<br>2 - MAC from Hex-STRING<br>3 - Integer from BITS|0, 1, 2, 3|
|30|SNMP get value|Format:<br>1 - UTF-8 from Hex-STRING<br>2 - MAC from Hex-STRING<br>3 - Integer from BITS|<|<|0, 1, 2, 3|

^1^ regular expression<br>
^2^ string<br>
^3^ JSONPath or XML XPath<br>
^4^ positive integer (with support of time suffixes, e.g. 30s, 1m, 2h,
1d)<br>
^5^ user macro<br>
^6^ 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.<br>
^7^ Supports multiple "Field name,OID prefix,Format records" records delimited by a new line character.

[comment]: # ({/58801fad-e8aecce9})

[comment]: # ({0a09af98-e4056f02})
### LLD rule prototype overrides

The LLD rule prototype 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](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|name|string|Unique override name.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|step|integer|Unique order number of the override.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|stop|integer|Stop processing next overrides if matches.<br><br>Possible values:<br>0 - *(default)* don't stop processing overrides;<br>1 - stop processing overrides if filter matches.|
|filter|object|Override filter.|
|operations|object/array|Override operations.|

[comment]: # ({/0a09af98-e4056f02})

[comment]: # ({ecb89ce9-eb1755ad})
#### LLD rule prototype override filter

The LLD rule prototype 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](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|conditions|object/array|Set of [override filter conditions](#lld-rule-prototype-override-filter-condition) to use for matching the discovered objects. The conditions will be sorted in the order of their placement in the formula.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|evaltype|integer|Override filter condition [evaluation method](/manual/discovery/low_level_discovery#override).<br><br>Possible values:<br>0 - And/Or;<br>1 - And;<br>2 - Or;<br>3 - Custom expression.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|eval\_formula|string|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*|
|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `evaltype` is set to "custom expression"|

[comment]: # ({/ecb89ce9-eb1755ad})

[comment]: # ({d05d7a0f-78df0c99})
##### LLD rule prototype override filter condition

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|macro|string|LLD macro to perform the check on.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|value|string|Value to compare with.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `operator` is set to "matches regular expression" or "does not match regular expression"|
|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `evaltype` of [LLD rule prototype override filter object](#lld-rule-prototype-override-filter) is set to "custom expression"|
|operator|integer|Condition operator.<br><br>Possible values:<br>8 - *(default)* matches regular expression;<br>9 - does not match regular expression;<br>12 - exists;<br>13 - does not exist.|

[comment]: # ({/d05d7a0f-78df0c99})

[comment]: # ({316adf0a-f48571a7})
#### LLD rule prototype override operation

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|operationobject|integer|Type of discovered object to perform the action.<br><br>Possible values:<br>0 - Item prototype;<br>1 - Trigger prototype;<br>2 - Graph prototype;<br>3 - Host prototype.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|operator|integer|Override condition [operator](/manual/discovery/low_level_discovery#discovery-rule).<br><br>Possible values:<br>0 - *(default)* equals;<br>1 - does not equal;<br>2 - contains;<br>3 - does not contain;<br>8 - matches;<br>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|object/array|Override operation tag object for trigger and host prototype objects.|
|optemplate|object/array|Override operation template object for host prototype object.|
|opinventory|object|Override operation inventory object for host prototype object.|

[comment]: # ({/316adf0a-f48571a7})

[comment]: # ({08a56934-3b334927})
##### LLD rule prototype override operation status

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|status|integer|Override the status for selected object.<br><br>Possible values:<br>0 - Create enabled;<br>1 - Create disabled.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/08a56934-3b334927})

[comment]: # ({6f7628f0-1d3a7323})
##### LLD rule prototype override operation discover

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|discover|integer|Override the discover status for selected object.<br><br>Possible values:<br>0 - Yes, continue discovering the objects;<br>1 - No, new objects will not be discovered and existing ones will be marked as lost.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/6f7628f0-1d3a7323})

[comment]: # ({bcc7c880-68053e07})
##### LLD rule prototype override operation period

LLD rule prototype override operation period is an update interval value that is set to discovered item.
It has the following properties:

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|delay|string|Override the update interval of the item prototype.<br><br>Accepts seconds or time unit with suffix (e.g., 30s, 1m, 2h, 1d) and, optionally, one or more [custom intervals](/manual/config/items/item/custom_intervals), all separated by semicolons. Custom intervals can be a mix of flexible and scheduling intervals.<br><br>Accepts user macros or LLD macros. If used, the value must be a single macro. Multiple macros or macros mixed with text are not supported. Flexible intervals may be written as two macros separated by a forward slash (e.g., `{$FLEX_INTERVAL}/{$FLEX_PERIOD}`).<br><br>Example:<br>`1h;wd1-5h9-18;{$Macro1}/1-7,00:00-24:00;0/6-7,12:00-24:00;{$Macro2}/{$Macro3}`<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/bcc7c880-68053e07})

[comment]: # ({bd76588c-b2c95fc0})
##### LLD rule prototype override operation history

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|history|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/bd76588c-b2c95fc0})

[comment]: # ({dab2c5e2-5f38e1de})
##### LLD rule prototype override operation trends

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|trends|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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/dab2c5e2-5f38e1de})

[comment]: # ({f9761131-56d24096})
##### LLD rule prototype override operation severity

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|severity|integer|Override the severity of trigger prototype.<br><br>Possible values:<br>0 - *(default)* not classified;<br>1 - information;<br>2 - warning;<br>3 - average;<br>4 - high;<br>5 - disaster.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/f9761131-56d24096})

[comment]: # ({8b298685-60427262})
##### LLD rule prototype override operation tag

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|tag|string|New tag name.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|
|value|string|New tag value.|

[comment]: # ({/8b298685-60427262})

[comment]: # ({d853766a-4734353e})
##### LLD rule prototype override operation template

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|templateid|ID|Override the template of host prototype linked templates.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/d853766a-4734353e})

[comment]: # ({6dcedf17-207a5109})
##### LLD rule prototype override operation inventory

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

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|inventory\_mode|integer|Override the host prototype inventory mode.<br><br>Possible values:<br>-1 - disabled;<br>0 - *(default)* manual;<br>1 - automatic.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*|

[comment]: # ({/6dcedf17-207a5109})
