mediatype.get

Opis

integer/array mediatype.get(object parameters)

Ta metoda umożliwia pobieranie typów mediów zgodnie z podanymi parametrami.

Ta metoda jest dostępna dla użytkowników dowolnego typu. Uprawnienia do wywołania tej metody mogą zostać cofnięte w ustawieniach roli użytkownika. Więcej informacji można znaleźć w sekcji User roles.

Parametry

(object) Parametry definiujące żądane dane wyjściowe.

Metoda obsługuje następujące parametry.

Podczas żądania informacji o typach mediów powiązanych z użytkownikiem, użytkownicy typu Admin i User mogą pobierać dane tylko o własnym użytkowniku. Przykład znajduje się w sekcji Pobieranie typów mediów jako Admin.

Parametr Typ Opis
mediatypeids ID/array Zwracaj tylko typy mediów o podanych ID.
mediaids ID/array Zwracaj tylko typy mediów używane przez podane media.
userids ID/array Zwracaj tylko typy mediów używane przez podanych użytkowników.
selectActions query Zwracaj właściwość actions z akcjami używającymi typu mediów.
selectMessageTemplates query Zwracaj właściwość message_templates z tablicą komunikatów typu mediów.

Zachowanie parametru:
- obsługiwane dla użytkowników typu Super admin
selectUsers query Zwracaj właściwość users z użytkownikami używającymi typu mediów.

Ograniczenia zależne od typu użytkownika opisano w user.get.
sortfield string/array Sortuj wynik według podanych właściwości.

Możliwe wartości: mediatypeid.
filter object Zwracaj tylko te wyniki, które dokładnie odpowiadają podanemu filtrowi.

Akceptuje obiekt, w którym klucze są nazwami właściwości, a wartościami są pojedyncza wartość lub tablica wartości do dopasowania.

Nie obsługuje właściwości typu danych text data type.

Możliwe właściwości obiektu typu mediów dla użytkowników typu Admin i User: mediatypeid, name, type, status, maxattempts.
output query Właściwości obiektu typu mediów, które mają zostać zwrócone.

Użytkownicy typu Admin i User mogą pobierać tylko następujące właściwości: mediatypeid, name, type, status, maxattempts, description. Przykład znajduje się w sekcji Pobieranie typów mediów jako Admin.

Domyślnie: extend.
search object Zwracaj wyniki pasujące do podanego wzorca (bez rozróżniania wielkości liter).

Akceptuje obiekt, w którym klucze są nazwami właściwości, a wartościami są ciągi znaków do wyszukania. Jeśli nie podano dodatkowych opcji, zostanie wykonane wyszukiwanie LIKE "%…%".

Obsługuje tylko właściwości typu danych string i text data type.

Możliwe właściwości obiektu typu mediów dla użytkowników typu Admin i User: name, description.
countOutput boolean Te parametry opisano w komentarzu referencyjnym.
editable boolean
excludeSearch boolean
limit integer
preservekeys boolean
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

Zwracane wartości

(integer/array) Zwraca:

  • tablicę obiektów;
  • liczbę pobranych obiektów, jeśli został użyty parametr countOutput.

Przykłady

Pobieranie typów mediów

Pobierz wszystkie skonfigurowane typy mediów. Poniższy przykład zwraca dwa typy mediów:

  • typ mediów e-mail;
  • typ mediów SMS.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "selectMessageTemplates": "extend"
    },
    "id": 1
}

Odpowiedź:

{
    "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": "Problem rozpoczął się o {EVENT.TIME} dnia {EVENT.DATE}\r\nNazwa problemu: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nPoziom ważności: {EVENT.SEVERITY}\r\nDane operacyjne: {EVENT.OPDATA}\r\nID oryginalnego problemu: {EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "Rozwiązano: {EVENT.NAME}",
                    "message": "Problem został rozwiązany o {EVENT.RECOVERY.TIME} dnia {EVENT.RECOVERY.DATE}\r\nNazwa problemu: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nPoziom ważności: {EVENT.SEVERITY}\r\n\r\nID oryginalnego problemu: {EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "Zaktualizowany problem: {EVENT.NAME}",
                    "message": "{USER.FULLNAME} wykonał(a) akcję {EVENT.UPDATE.ACTION} dla problemu dnia {EVENT.UPDATE.DATE} o {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nBieżący stan problemu to {EVENT.STATUS}, potwierdzony: {EVENT.ACK.STATUS}."
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "Wykrywanie: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
                    "message": "Reguła wykrywania: {DISCOVERY.RULE.NAME}\r\n\r\nIP urządzenia: {DISCOVERY.DEVICE.IPADDRESS}\r\nDNS urządzenia: {DISCOVERY.DEVICE.DNS}\r\nStan urządzenia: {DISCOVERY.DEVICE.STATUS}\r\nCzas działania urządzenia: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nNazwa usługi urządzenia: {DISCOVERY.SERVICE.NAME}\r\nPort usługi urządzenia: {DISCOVERY.SERVICE.PORT}\r\nStan usługi urządzenia: {DISCOVERY.SERVICE.STATUS}\r\nCzas działania usługi urządzenia: {DISCOVERY.SERVICE.UPTIME}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "Autorejestracja: {HOST.HOST}",
                    "message": "Nazwa hosta: {HOST.HOST}\r\nIP hosta: {HOST.IP}\r\nPort agenta: {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\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "",
                    "message": "ROZWIĄZANO: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "",
                    "message": "{USER.FULLNAME} wykonał(a) akcję {EVENT.UPDATE.ACTION} dla problemu dnia {EVENT.UPDATE.DATE} o {EVENT.UPDATE.TIME}"
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "",
                    "message": "Wykrywanie: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "",
                    "message": "Autorejestracja: {HOST.HOST}\r\nIP hosta: {HOST.IP}\r\nPort agenta: {HOST.PORT}"
                }
            ],
            "parameters": []
        }
    ],
    "id": 1
}

Pobieranie typów mediów jako Admin

Jako użytkownik typu Admin pobierz wszystkie typy mediów, które są włączone, wraz z użytkownikami korzystającymi z tych typów mediów. Poniższy przykład zwraca dwa typy mediów:

  • typ mediów e-mail z jednym użytkownikiem (tylko własny użytkownik użytkownika typu Admin);
  • typ mediów SMS bez użytkowników.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "filter": {
            "status": 0
        },
        "selectUsers": "extend"
    },
    "id": 1
}

Odpowiedź:

{
    "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
}

Pobieranie typów nośników skryptu i webhooka

Poniższy przykład zwraca trzy typy nośników:

  • typ nośnika skryptu z parametrami;
  • typ nośnika skryptu bez parametrów;
  • typ nośnika webhooka z parametrami.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": ["mediatypeid", "name", "parameters"],
        "filter": {
            "type": [1, 4]
        }
    },
    "id": 1
}

Odpowiedź:

{
    "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
}

Zobacz także

Źródło

CMediaType::get() w ui/include/classes/api/services/CMediaType.php.