[comment]: # ({02ea8022-02ea8022})
# usermacro.get

[comment]: # ({/02ea8022-02ea8022})

[comment]: # ({78b5ab06-28befc82})
### Описание

`integer/array usermacro.get(параметры объекта)`

Метод позволяет получить хостовые и глобальные макросы в соответствии с заданными параметрами.

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

[comment]: # ({/78b5ab06-28befc82})

[comment]: # ({0f02ef4c-141835f9})
### Параметры

`(object)` Параметры, определяющие требуемый результат.

Метод поддерживает следующие параметры.

|Parameter|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|globalmacro|flag|Вернуть глобальные макросы вместо макросов узла сети.|
|globalmacroids|ID/array|Вернуть только глобальные макросы с указанными ID.|
|groupids|ID/array|Вернуть только макросы узла сети, которые принадлежат узлам сети или шаблонам из указанных групп узлов сети или групп шаблонов.|
|hostids|ID/array|Вернуть только макросы, которые принадлежат указанным узлам сети или шаблонам.|
|hostmacroids|ID/array|Вернуть только макросы узла сети с указанными ID.|
|inherited|boolean|Если установлено значение `true`, вернуть только пользовательские макросы прототипа узла сети, унаследованные от шаблона.|
|selectHostGroups|query|Вернуть группы узлов сети, к которым принадлежит макрос узла сети, в свойстве [`hostgroups`](/manual/api/reference/hostgroup/object).<br><br>Используется только при получении макросов узла сети.|
|selectHosts|query|Вернуть узлы сети, к которым принадлежит макрос узла сети, в свойстве [`hosts`](/manual/api/reference/host/object).<br><br>Используется только при получении макросов узла сети.|
|selectTemplateGroups|query|Вернуть группы шаблонов, к которым принадлежит макрос шаблона, в свойстве [`templategroups`](/manual/api/reference/templategroup/object).<br><br>Используется только при получении макросов шаблона.|
|selectTemplates|query|Вернуть шаблоны, к которым принадлежит макрос узла сети, в свойстве [`templates`](/manual/api/reference/template/object).<br><br>Используется только при получении макросов узла сети.|
|sortfield|string/array|Сортировать результат по указанным свойствам.<br><br>Возможные значения: `macro`.|
|countOutput|boolean|Эти параметры описаны в [справочном комментарии](/manual/api/reference_commentary#common-get-method-parameters).|
|editable|boolean|^|
|excludeSearch|boolean|^|
|filter|object|^|
|limit|integer|^|
|output|query|^|
|preservekeys|boolean|^|
|search|object|^|
|searchByAny|boolean|^|
|searchWildcardsEnabled|boolean|^|
|sortorder|string/array|^|
|startSearch|boolean|^|

[comment]: # ({/0f02ef4c-141835f9})

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

`(целое число/массив)` Возвращает либо:

- · массив объектов;
- · количество извлеченных объектов, если использовался параметр `countOutput`.

[comment]: # ({/7223bab1-7223bab1})

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

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

[comment]: # ({4540e2f0-7089e052})
#### Получение макросов узла сети для узла сети

Получить все макросы узла сети, определенные для узла сети "10198".

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

```json
{
    "jsonrpc": "2.0",
    "method": "usermacro.get",
    "params": {
        "output": "extend",
        "hostids": "10198"
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostmacroid": "9",
            "hostid": "10198",
            "macro": "{$INTERFACE}",
            "value": "eth0",
            "description": "",
            "type": "0",
            "automatic": "0"
        },
        {
            "hostmacroid": "11",
            "hostid": "10198",
            "macro": "{$SNMP_COMMUNITY}",
            "value": "public",
            "description": "",
            "type": "0",
            "automatic": "0"
        }
    ],
    "id": 1
}
```

[comment]: # ({/4540e2f0-7089e052})

[comment]: # ({885a2441-f0872791})
#### Получение макросов узла сети для шаблона

Получите макросы узла сети, определенные для шаблона "10265", которые содержат "STATUS" в имени макроса.

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

```json
{
    "jsonrpc": "2.0",
    "method": "usermacro.get",
    "params": {
        "output": "extend",
        "hostids": "10265",
        "search": {
            "macro": "STATUS"
        }
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostmacroid": "6709",
            "hostid": "10265",
            "macro": "{$APACHE.STATUS.HOST}",
            "value": "",
            "description": "Имя хоста или IP-адрес узла сети страницы состояния Apache.",
            "type": "0",
            "automatic": "0",
            "config": {
                "type": "1",
                "priority": "1",
                "section_name": "",
                "label": "Узел сети страницы состояния Apache",
                "description": "Имя хоста или IP-адрес узла сети страницы состояния Apache.",
                "required": "1",
                "regex": "",
                "options": []
            }
        },
        {
            "hostmacroid": "814",
            "hostid": "10265",
            "macro": "{$APACHE.STATUS.PATH}",
            "value": "server-status?auto",
            "description": "Путь URL страницы состояния Apache.",
            "type": "0",
            "automatic": "0",
            "config": {
                "type": "1",
                "priority": "3",
                "section_name": "",
                "label": "Путь страницы состояния Apache",
                "description": "Путь URL страницы состояния Apache.",
                "required": "1",
                "regex": "",
                "options": []
            }
        },
        {
            "hostmacroid": "815",
            "hostid": "10265",
            "macro": "{$APACHE.STATUS.PORT}",
            "value": "80",
            "description": "Порт страницы состояния Apache.",
            "type": "0",
            "automatic": "0",
            "config": {
                "type": "1",
                "priority": "2",
                "section_name": "",
                "label": "Порт страницы состояния Apache",
                "description": "В диапазоне от 1 до 65535 включительно.",
                "required": "1",
                "regex": "^-?([0-9]+|(([0-9]+)\\.([0-9]+)))$",
                "options": []
            }
        },
        {
            "hostmacroid": "816",
            "hostid": "10265",
            "macro": "{$APACHE.STATUS.SCHEME}",
            "value": "http",
            "description": "Схема запроса, которая может быть HTTP или HTTPS.",
            "type": "0",
            "automatic": "0",
            "config": {
                "type": "2",
                "priority": "4",
                "section_name": "",
                "label": "Схема запроса",
                "description": "Схема запроса, которая может быть HTTP или HTTPS.",
                "required": "0",
                "regex": "",
                "options": [
                    {
                        "value": "http",
                        "text": "HTTP"
                    },
                    {
                        "value": "https",
                        "text": "HTTPS"
                    }
                ]
            }
        }
    ],
    "id": 1
}
```

[comment]: # ({/885a2441-f0872791})

[comment]: # ({93c3e1f5-29b64a7a})
#### Получение глобальных макросов

Получить все глобальные макросы.

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

```json
{
    "jsonrpc": "2.0",
    "method": "usermacro.get",
    "params": {
        "output": "extend",
        "globalmacro": true
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "globalmacroid": "6",
            "macro": "{$SNMP_COMMUNITY}",
            "value": "public",
            "description": "",
            "type": "0"
        }
    ],
    "id": 1
}
```

[comment]: # ({/93c3e1f5-29b64a7a})

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

CUserMacro::get() в *ui/include/classes/api/services/CUserMacro.php*.

[comment]: # ({/26db0ec2-26db0ec2})
