mediatype.create

Описание

object mediatype.create(объект/массив mediaTypes)

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

Этот метод доступен только пользователю с типом доступа Супер-администратор. Разрешения на вызов метода можно отозвать в настройках ролей пользователя. Дополнительную информацию см. в разделе Роли пользователей.

Параметры

(объект/массив) Создаваемые типы носителей.

В дополнение к стандартным свойствам типа мультимедиа, метод принимает следующие параметры.

Параметр Тип Описание
parameters массив Параметры Script или webhook, которые необходимо создать для типа носителя.
message_templates массив Шаблоны сообщений, которые будут созданы для типа носителя.

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

(объект) Возвращает объект, который содержит ID созданных способов оповещения, указанных в свойствеmediatypeids. Порядок возвращаемых ID совпадает с порядком переданных способов оповещения.

Примеры

Создание способа оповещения по электронной почте.

Создать новый способ оповещения по электронной почте с настраиваемым SMTP портом и шаблонами сообщений.

Запрос:

{
           "jsonrpc": "2.0",
           "method": "mediatype.create",
           "params": {
               "type": "0",
               "name": "Email",
               "smtp_server": "mail.example.com",
               "smtp_helo": "example.com",
               "smtp_email": "[email protected]",
               "smtp_port": "587",
               "message_format": "1",
               "message_templates": [
                   {
                       "eventsource": "0",
                       "recovery": "0",
                       "subject": "Problem: {EVENT.NAME}",
                       "message": "Problem \"{EVENT.NAME}\" on host \"{HOST.NAME}\" started at {EVENT.TIME}."
                   },
                   {
                       "eventsource": "0",
                       "recovery": "1",
                       "subject": "Resolved in {EVENT.DURATION}: {EVENT.NAME}",
                       "message": "Problem \"{EVENT.NAME}\" on host \"{HOST.NAME}\" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}."
                   },
                   {
                       "eventsource": "0",
                       "recovery": "2",
                       "subject": "Updated problem in {EVENT.AGE}: {EVENT.NAME}",
                       "message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem \"{EVENT.NAME}\" on host \"{HOST.NAME}\" at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}."
                   }
               ]
           },
           "id": 1
       }

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "mediatypeids": [
                   "7"
               ]
           },
           "id": 1
       }

Создание способа оповещения с использованием скрипта

Создать новый способ оповещения с использованием скрипта с пользовательским значением для количества попыток и интервала между ними.

Запрос:

{
           "jsonrpc": "2.0",
           "method": "mediatype.create",
           "params": {
               "type": "1",
               "name": "Push notifications",
               "exec_path": "push-notification.sh",
               "maxattempts": "5",
               "attempt_interval": "11s",
               "parameters": [
                   {
                       "sortorder": "0",
                       "value": "{ALERT.SENDTO}"
                   },
                   {
                       "sortorder": "1",
                       "value": "{ALERT.SUBJECT}"
                   },
                   {
                       "sortorder": "2",
                       "value": "{ALERT.MESSAGE}"
                   }
               ]
           },
           "id": 1
       }

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "mediatypeids": [
                   "8"
               ]
           },
           "id": 1
       }

Создание способа оповещения с использованием вебхука

Создать новый способ оповещения с использованием вебхука.

Запрос:

{
           "jsonrpc": "2.0",
           "method": "mediatype.create",
           "params": {
               "type": "4",
               "name": "Webhook",
               "script": "var Webhook = {\r\n    token: null,\r\n    to: null,\r\n    subject: null,\r\n    message: null,\r\n\r\n    sendMessage: function() {\r\n        // some logic\r\n    }\r\n}",
               "parameters": [
                   {
                       "name": "Message",
                       "value": "{ALERT.MESSAGE}"
                   },
                   {
                       "name": "Subject",
                       "value": "{ALERT.SUBJECT}"
                   },
                   {
                       "name": "To",
                       "value": "{ALERT.SENDTO}"
                   },
                   {
                       "name": "Token",
                       "value": "<Token>"
                   }
               ]
           },
           "id": 1
       }

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "mediatypeids": [
                   "9"
               ]
           },
           "id": 1
       }

Источник

CMediaType::create() в ui/include/classes/api/services/CMediaType.php.