[comment]: # ({d756b50a-d756b50a})
# discoveryrule.update

[comment]: # ({/d756b50a-d756b50a})

[comment]: # ({5ceb4e4b-0d23e0d8})
### Описание

`object discoveryrule.update(объект/массив lldRules)`

Этот метод позволяет обновлять существующие правила LLD.

::: noteclassic
Этот метод доступен только пользователям с типом доступа *Администратор* и *Супер-администратор*.
Разрешения на вызов метода можно отозвать в настройках ролей пользователя.
Дополнительную информацию см. в разделе [Роли пользователей](/manual/web_interface/frontend_sections/users/user_roles).
:::

[comment]: # ({/5ceb4e4b-0d23e0d8})

[comment]: # ({c79f083e-cf98658c})
### Параметры

`(object/array)` Свойства правила LLD, которые необходимо обновить.

Свойство `itemid` должно быть определено для каждого правила LLD, все остальные
свойства являются необязательными. Будут обновлены только переданные свойства, все
остальные останутся без изменений.

Дополнительно к [стандартным свойствам правила LLD](object#lld-rule), метод принимает следующие параметры.

|Parameter|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|filter|object|[Фильтр правила LLD](/manual/api/reference/discoveryrule/object#lld-rule-filter) для замены существующего фильтра.|
|preprocessing|object/array|Параметры [предобработки правила LLD](/manual/api/reference/discoveryrule/object#lld-rule-preprocessing) для замены существующих параметров предобработки.<br><br>[Поведение параметра](/manual/api/reference_commentary#parameter-behavior):<br>- *только для чтения* для наследуемых объектов|
|lld\_macro\_paths|object/array|Параметры [lld\_macro\_path](/manual/api/reference/discoveryrule/object#lld-macro-path) правила LLD для замены существующих параметров lld\_macro\_path.<br><br>[Поведение параметра](/manual/api/reference_commentary#parameter-behavior):<br>- *только для чтения* для наследуемых объектов|
|overrides|object/array|Параметры [переопределений правила LLD](/manual/api/reference/discoveryrule/object#lld-rule-overrides) для замены существующих параметров переопределений.<br><br>[Поведение параметра](/manual/api/reference_commentary#parameter-behavior):<br>- *только для чтения* для наследуемых объектов|

[comment]: # ({/c79f083e-cf98658c})

[comment]: # ({6f962e26-6f962e26})
### Возвращаемые значения

`(объект)` Возвращает объект, который содержит ID обновленных правил LLD, указанных в свойстве `itemids`.

[comment]: # ({/6f962e26-6f962e26})

[comment]: # ({b41637d2-b41637d2})
### Примеры

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({e13e1807-67c9278f})
#### Добавление фильтра к правилу LLD

Добавьте фильтр, чтобы содержимое макроса *{\#FSTYPE}* соответствовало регулярному выражению *\@File systems for discovery*.

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "22450",
        "filter": {
            "evaltype": 1,
            "conditions": [
                {
                    "macro": "{#FSTYPE}",
                    "value": "@File systems for discovery"
                }
            ]
        }
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "22450"
        ]
    },
    "id": 1
}
```

[comment]: # ({/e13e1807-67c9278f})

[comment]: # ({d95f4004-f3fd4d6c})
#### Добавление путей макросов LLD

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "22450",
        "lld_macro_paths": [
            {
                "lld_macro": "{#MACRO1}",
                "path": "$.json.path"
            }
        ]
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "22450"
        ]
    },
    "id": 1
}
```

[comment]: # ({/d95f4004-f3fd4d6c})

[comment]: # ({1e8f3244-8d8cc019})
#### Отключение trap-обработки

Отключить trap-обработку LLD для правила обнаружения.

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "28336",
        "allow_traps": 0
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "28336"
        ]
    },
    "id": 1
}
```

[comment]: # ({/1e8f3244-8d8cc019})

[comment]: # ({f24aa3ff-bef0a5f5})
#### Обновление параметров предварительной обработки правила LLD

Обновите правило LLD с правилом предварительной обработки "JSONPath".

[Запрос](/manual/api#performing-requests):

```json
{
    "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
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "44211"
        ]
    },
    "id": 1
}
```

[comment]: # ({/f24aa3ff-bef0a5f5})

[comment]: # ({5e692d62-3f18a1c3})
#### Обновление скрипта правила LLD

Обновите скрипт правила LLD, указав другой скрипт, и удалите ненужные
параметры, которые использовались предыдущим скриптом.

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "23865",
        "parameters": [],
        "script": "Zabbix.log(3, 'Log test');\nreturn 1;"
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "23865"
        ]
    },
    "id": 1
}
```

[comment]: # ({/5e692d62-3f18a1c3})

[comment]: # ({99c7f9d7-11121314})
#### Обновление срока жизни правила LLD

Обновите правило LLD, чтобы отключать больше не обнаруживаемый объект
через 12 часов и удалять его через 7 дней.

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "46864",
        "lifetime_type": 0, 
        "lifetime": "7d",
        "enabled_lifetime_type": 0,
        "enabled_lifetime": "12h"
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "46864"
        ]
    },
    "id": 1
}
```

[comment]: # ({/99c7f9d7-11121314})

[comment]: # ({6a73b645-6a73b645})
### Источник

CDiscoveryRule::update() в
*ui/include/classes/api/services/CDiscoveryRule.php*.

[comment]: # ({/6a73b645-6a73b645})
