mediatype.get
Описание
integer/array mediatype.get(object parameters)
Метод позволяет получать типы медиа в соответствии с заданными параметрами.
Этот метод доступен пользователям любого типа. Разрешения на вызов метода можно отозвать в настройках роли пользователя. Дополнительную информацию см. в разделе Роли пользователей.
Параметры
(object) Параметры, определяющие требуемый результат.
Метод поддерживает следующие параметры.
При запросе информации, связанной с пользователями, о типах медиа Admin и User могут получать данные только о собственном пользователе. Пример см. в разделе Получение типов медиа как Admin.
| Parameter | Type | Description |
|---|---|---|
| mediatypeids | ID/array | Возвращать только типы медиа с указанными ID. |
| mediaids | ID/array | Возвращать только типы медиа, используемые указанным media. |
| userids | ID/array | Возвращать только типы медиа, используемые указанными пользователями. |
| selectActions | query | Возвращать свойство actions с действиями, которые используют тип медиа. |
| selectMessageTemplates | query | Возвращать свойство message_templates с массивом сообщений типа медиа.Поведение параметра: - supported для пользователей типа Super admin |
| selectUsers | query | Возвращать свойство users с пользователями, которые используют тип медиа.См. user.get для ограничений в зависимости от типа пользователя. |
| sortfield | string/array | Сортировать результат по указанным свойствам. Возможные значения: mediatypeid. |
| filter | object | Возвращать только те результаты, которые точно соответствуют указанному фильтру. Принимает объект, где ключи — это имена свойств, а значения — либо одно значение, либо массив значений для сравнения. Не поддерживает свойства с типом данных text.Возможные свойства объекта типа медиа для пользователей типа Admin и User: mediatypeid, name, type, status, maxattempts. |
| output | query | Свойства объекта типа медиа, которые нужно вернуть. Пользователи типа Admin и User могут получать только следующие свойства: mediatypeid, name, type, status, maxattempts, description. Пример см. в разделе Получение типов медиа как Admin.По умолчанию: extend. |
| search | object | Возвращать результаты, соответствующие указанному шаблону (без учета регистра). Принимает объект, где ключи — это имена свойств, а значения — строки для поиска. Если дополнительные параметры не указаны, будет выполнен поиск LIKE "%…%".Поддерживает только свойства с типом данных string и text.Возможные свойства объекта типа медиа для пользователей типа Admin и User: name, description. |
| countOutput | boolean | Эти параметры описаны в комментарии к справочнику. |
| editable | boolean | |
| excludeSearch | boolean | |
| limit | integer | |
| preservekeys | boolean | |
| searchByAny | boolean | |
| searchWildcardsEnabled | boolean | |
| sortorder | string/array | |
| startSearch | boolean |
Возвращаемые значения
(целое число/массив) Возвращает либо:
- массив объектов;
- количество извлеченных объектов, если был использован параметр
countOutput.
Примеры
Получение типов оповещений
Получить все настроенные типы оповещений. Следующий пример возвращает два типа оповещений:
- тип оповещения по электронной почте;
- тип оповещения по SMS.
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": "extend",
"selectMessageTemplates": "extend"
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": [
{
"mediatypeid": "1",
"type": "0",
"name": "Email",
"smtp_server": "mail.example.com",
"smtp_helo": "example.com",
"smtp_email": "[email protected]",
"exec_path": "",
"gsm_modem": "",
"username": "",
"passwd": "",
"status": "0",
"smtp_port": "25",
"smtp_security": "0",
"smtp_verify_peer": "0",
"smtp_verify_host": "0",
"smtp_authentication": "0",
"maxsessions": "1",
"maxattempts": "3",
"attempt_interval": "10s",
"message_format": "0",
"script": "",
"timeout": "30s",
"process_tags": "0",
"show_event_menu": "1",
"event_menu_url": "",
"event_menu_name": "",
"description": "",
"provider": "0",
"message_templates": [
{
"eventsource": "0",
"recovery": "0",
"subject": "Problem: {EVENT.NAME}",
"message": "Проблема началась в {EVENT.TIME} {EVENT.DATE}\r\nИмя проблемы: {EVENT.NAME}\r\nУзел сети: {HOST.NAME}\r\nСерьезность: {EVENT.SEVERITY}\r\nОперативные данные: {EVENT.OPDATA}\r\nИсходный ID проблемы: {EVENT.ID}\r\n{TRIGGER.URL}"
},
{
"eventsource": "0",
"recovery": "1",
"subject": "Resolved: {EVENT.NAME}",
"message": "Проблема была решена в {EVENT.RECOVERY.TIME} {EVENT.RECOVERY.DATE}\r\nИмя проблемы: {EVENT.NAME}\r\nУзел сети: {HOST.NAME}\r\nСерьезность: {EVENT.SEVERITY}\r\n\r\nИсходный ID проблемы: {EVENT.ID}\r\n{TRIGGER.URL}"
},
{
"eventsource": "0",
"recovery": "2",
"subject": "Updated problem: {EVENT.NAME}",
"message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} проблему в {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nТекущий статус проблемы: {EVENT.STATUS}, подтверждено: {EVENT.ACK.STATUS}."
},
{
"eventsource": "1",
"recovery": "0",
"subject": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
"message": "Правило обнаружения: {DISCOVERY.RULE.NAME}\r\n\r\nIP устройства: {DISCOVERY.DEVICE.IPADDRESS}\r\nDNS устройства: {DISCOVERY.DEVICE.DNS}\r\nСтатус устройства: {DISCOVERY.DEVICE.STATUS}\r\nВремя работы устройства: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nИмя сервиса устройства: {DISCOVERY.SERVICE.NAME}\r\nПорт сервиса устройства: {DISCOVERY.SERVICE.PORT}\r\nСтатус сервиса устройства: {DISCOVERY.SERVICE.STATUS}\r\nВремя работы сервиса устройства: {DISCOVERY.SERVICE.UPTIME}"
},
{
"eventsource": "2",
"recovery": "0",
"subject": "Autoregistration: {HOST.HOST}",
"message": "Имя узла сети: {HOST.HOST}\r\nIP узла сети: {HOST.IP}\r\nПорт агента: {HOST.PORT}"
}
],
"parameters": []
},
{
"mediatypeid": "3",
"type": "2",
"name": "SMS",
"smtp_server": "",
"smtp_helo": "",
"smtp_email": "",
"exec_path": "",
"gsm_modem": "/dev/ttyS0",
"username": "",
"passwd": "",
"status": "0",
"smtp_port": "25",
"smtp_security": "0",
"smtp_verify_peer": "0",
"smtp_verify_host": "0",
"smtp_authentication": "0",
"maxsessions": "1",
"maxattempts": "3",
"attempt_interval": "10s",
"message_format": "1",
"script": "",
"timeout": "30s",
"process_tags": "0",
"show_event_menu": "1",
"event_menu_url": "",
"event_menu_name": "",
"description": "",
"provider": "0",
"message_templates": [
{
"eventsource": "0",
"recovery": "0",
"subject": "",
"message": "{EVENT.SEVERITY}: {EVENT.NAME}\r\nУзел сети: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
},
{
"eventsource": "0",
"recovery": "1",
"subject": "",
"message": "RESOLVED: {EVENT.NAME}\r\nУзел сети: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
},
{
"eventsource": "0",
"recovery": "2",
"subject": "",
"message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} проблему в {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}"
},
{
"eventsource": "1",
"recovery": "0",
"subject": "",
"message": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
},
{
"eventsource": "2",
"recovery": "0",
"subject": "",
"message": "Autoregistration: {HOST.HOST}\r\nIP узла сети: {HOST.IP}\r\nПорт агента: {HOST.PORT}"
}
],
"parameters": []
}
],
"id": 1
}
Получение типов оповещений в роли Admin
Пользователь типа Admin может получить все включенные типы оповещений вместе с пользователями, которые используют эти типы оповещений. Следующий пример возвращает два типа оповещений:
- тип оповещений email с одним пользователем (только собственный пользователь пользователя типа Admin);
- тип оповещений SMS без пользователей.
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": "extend",
"filter": {
"status": 0
},
"selectUsers": "extend"
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": [
{
"mediatypeid": "1",
"type": "0",
"name": "Email",
"status": "0",
"description": "",
"maxattempts": "3",
"users": [
{
"userid": "3",
"username": "database-admin",
"name": "John",
"surname": "Doe",
"url": "",
"autologin": "0",
"autologout": "0",
"lang": "default",
"refresh": "30s",
"theme": "default",
"attempt_failed": "0",
"attempt_ip": "",
"attempt_clock": "0",
"rows_per_page": "50",
"timezone": "default",
"roleid": "2",
"provisioned": "0"
}
]
},
{
"mediatypeid": "3",
"type": "2",
"name": "SMS",
"status": "0",
"description": "",
"maxattempts": "3",
"users": []
}
],
"id": 1
}
Получение способов оповещения с использованием скриптов и вебхуков
В следующем примере возвращаются три способа оповещения:
- способ оповещения с использованием скрипта с параметрами;
- способ оповещения с использованием скрипта без параметров;
- способ оповещения с использованием вебхука с параметрами.
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": ["mediatypeid", "name", "parameters"],
"filter": {
"type": [1, 4]
}
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": [
{
"mediatypeid": "10",
"name": "Script with parameters",
"parameters": [
{
"sortorder": "0",
"value": "{ALERT.SENDTO}"
},
{
"sortorder": "1",
"value": "{EVENT.NAME}"
},
{
"sortorder": "2",
"value": "{ALERT.MESSAGE}"
},
{
"sortorder": "3",
"value": "Zabbix alert"
}
]
},
{
"mediatypeid": "13",
"name": "Script without parameters",
"parameters": []
},
{
"mediatypeid": "11",
"name": "Webhook",
"parameters": [
{
"name": "alert_message",
"value": "{ALERT.MESSAGE}"
},
{
"name": "event_update_message",
"value": "{EVENT.UPDATE.MESSAGE}"
},
{
"name": "host_name",
"value": "{HOST.NAME}"
},
{
"name": "trigger_description",
"value": "{TRIGGER.DESCRIPTION}"
},
{
"name": "trigger_id",
"value": "{TRIGGER.ID}"
},
{
"name": "alert_source",
"value": "Zabbix"
}
]
}
],
"id": 1
}
Смотрите также
Источник
CMediaType::get() в ui/include/classes/api/services/CMediaType.php.