# discoveryrule.update

### Описание

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

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

### Параметры

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

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

В дополнение к [стандартным свойствам правила LLD](object#правило_lld),
этот метод принимает следующие параметры.

|Параметр|Тип|Описание|
|----------------|------|----------------|
|filter|объект|Объект фильтра правила LLD, который заменит текущий фильтр.|
|preprocessing|массив|Опции предобработки LLD правила, которые заменят текущие опции предобработки.|

### Возвращаемые значения

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

### Примеры

#### Добавление фильтра к правилу LLD

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

Запрос:

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

Ответ:

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

#### Добавление путей LLD макросов

Запрос:

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

Ответ:

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

#### Отключение трапов

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

Запрос:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "28336",
        "allow_traps": "0"
    },
    "id": 36,
    "auth": "d678e0b85688ce578ff061bd29a20d3b"
}
```

Ответ:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "28336"
        ]
    },
    "id": 36
}
```

#### Обновление опций предобработки LLD правила

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

Запрос:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "44211",
        "preprocessing": [
            {
                "type": "12",
                "params": "$.path.to.json",
                "error_handler": "2",
                "error_handler_params": "5"
            }
        ]
    },
    "auth": "700ca65537074ec963db7efabda78259",
    "id": 1
}
```

Ответ:

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

### Исходный код

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