[comment]: # ({36f834f7-36f834f7})
# template.update

[comment]: # ({/36f834f7-36f834f7})

[comment]: # ({c65d8691-f8425904})
### Описание

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

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

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

[comment]: # ({/c65d8691-f8425904})

[comment]: # ({80d66659-5d06cf34})
### Параметры

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

Для каждого шаблона должно быть определено свойство `templateid`, все остальные
свойства необязательны. Будут обновлены только указанные свойства, все
остальные останутся без изменений.

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

|Parameter|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|groups|object/array|[Группы шаблонов](/manual/api/reference/templategroup/object), которые заменят текущие группы шаблонов, к которым принадлежат шаблоны.<br><br>Группы шаблонов должны иметь определенным только свойство `groupid`.|
|tags|object/array|[Теги шаблона](/manual/api/reference/template/object#template-tag), которые заменят текущие теги шаблона.|
|macros|object/array|[Пользовательские макросы](/manual/api/reference/usermacro/object), которые заменят текущие пользовательские макросы для указанных шаблонов.|
|templates|object/array|[Шаблоны](/manual/api/reference/template/object), которые заменят текущие связанные шаблоны. Шаблоны, которые не переданы, будут только отвязаны.<br><br>У шаблонов должно быть определено только свойство `templateid`.|
|templates\_clear|object/array|[Шаблоны](/manual/api/reference/template/object), которые нужно отвязать и очистить от указанных шаблонов.<br><br>У шаблонов должно быть определено только свойство `templateid`.|

[comment]: # ({/80d66659-5d06cf34})

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

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

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

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

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

[comment]: # ({7ee813bd-cc534212})
#### Изменение стандартных свойств шаблона

Измените техническое имя шаблона на "Linux by Zabbix agent Custom", видимое имя на "My template" и обновите описание шаблона.

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

```json
{
    "jsonrpc": "2.0",
    "method": "template.update",
    "params": {
        "templateid": "10086",
        "host": "Linux by Zabbix agent Custom",
        "name": "My template",
        "description": "This is a custom Linux template."
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "templateids": [
            "10086"
        ]
    },
    "id": 1
}
```

[comment]: # ({/7ee813bd-cc534212})

[comment]: # ({2b5d5c60-9dbdf129})
#### Обновление групп шаблона

Заменяет все группы шаблона для указанного шаблона на другую.

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

```json
{
    "jsonrpc": "2.0",
    "method": "template.update",
    "params": {
        "templateid": "10086",
        "groups": [
            {
                "groupid": "24"
            } 
        ]
    },
    "id": 1
}
```


Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "templateids": [
            "10086"
        ]
    },
    "id": 1
}
```

[comment]: # ({/2b5d5c60-9dbdf129})

[comment]: # ({b5383db9-e7972b69})
#### Обновление тегов шаблона

Замените все теги шаблона на другие.

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

```json
{
    "jsonrpc": "2.0",
    "method": "template.update",
    "params": {
        "templateid": "10086",
        "tags": [
            {
                "tag": "host-name",
                "value": "{HOST.NAME}"
            }
        ]
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "templateids": [
            "10086"
        ]
    },
    "id": 1
}
```

[comment]: # ({/b5383db9-e7972b69})

[comment]: # ({e808d272-bfacef5d})
#### Обновление макросов шаблона

Заменяет все макросы шаблона на другой.

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

```json
{
    "jsonrpc": "2.0",
    "method": "template.update",
    "params": {
        "templateid": "10086",
        "macros": [
            {
                "macro": "{$MY_MACRO}",
                "value": "new_value"
            }
        ]
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "templateids": [
            "10086"
        ]
    },
    "id": 1
}
```

[comment]: # ({/e808d272-bfacef5d})

[comment]: # ({c0bea3a1-0c7e70df})
#### Обновление связанных шаблонов

Отвяжите (без очистки) все шаблоны от указанного шаблона и привяжите к нему другой шаблон.

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

```json
{
    "jsonrpc": "2.0",
    "method": "template.update",
    "params": {
        "templateid": "10086",
        "templates": [
            {
                "templateid": "10087"
            }
        ]
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "templateids": [
            "10086"
        ]
    },
    "id": 1
}
```

[comment]: # ({/c0bea3a1-0c7e70df})

[comment]: # ({69f01ba0-3a06a003})
#### Очистка связанных шаблонов шаблона

Отвязать и очистить указанный шаблон от конкретного связанного шаблона.

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

```json
{
    "jsonrpc": "2.0",
    "method": "template.update",
    "params": {
        "templateid": "10086",
        "templates_clear": [
            {
                "templateid": "10087"
            }
        ]
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "templateids": [
            "10086"
        ]
    },
    "id": 1
}
```

[comment]: # ({/69f01ba0-3a06a003})

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

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

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