mediatype.get
説明
integer/array mediatype.get(object parameters)
このメソッドは、指定されたパラメータに従ってメディアタイプを取得することができます。
このメソッドは、すべてのタイプのユーザーが利用できます。 メソッドの呼び出し権限は、ユーザーロールの設定で取り消すことができます。 詳細はユーザーロールを参照してください。
パラメータ
(object) 目的の出力を定義するパラメータです。
このメソッドは以下のパラメータをサポートしています。
メディアタイプのユーザー関連情報を要求する場合、Admin および User タイプのユーザーは、自分自身のユーザーに関するデータのみ取得できます。 例については、Retrieving media types as Admin を参照してください。
| パラメータ | 型 | 説明 |
|---|---|---|
| mediatypeids | ID/array | 指定したIDを持つメディアタイプのみを返します。 |
| mediaids | ID/array | 指定したmediaで使用されているメディアタイプのみを返します。 |
| userids | ID/array | 指定したユーザーで使用されているメディアタイプのみを返します。 |
| selectActions | query | メディアタイプを使用しているアクションを含む actions プロパティを返します。 |
| selectMessageTemplates | query | メディアタイプメッセージの配列を含む message_templates プロパティを返します。パラメータの動作: - Super admin タイプのユーザーで supported |
| selectUsers | query | メディアタイプを使用しているユーザーを含む users プロパティを返します。ユーザータイプに基づく制限については、 user.get を参照してください。 |
| sortfield | string/array | 指定したプロパティで結果をソートします。 指定可能な値: mediatypeid。 |
| filter | object | 指定したフィルターに完全一致する結果のみを返します。 キーがプロパティ名、値が一致対象の単一の値または値の配列であるオブジェクトを受け付けます。 text データ型 のプロパティはサポートしていません。Admin および User タイプのユーザーで指定可能な Media type object プロパティ: mediatypeid, name, type, status, maxattempts。 |
| output | query | 返される Media type object のプロパティ。 Admin および User タイプのユーザーは、次のプロパティのみ取得できます: mediatypeid, name, type, status, maxattempts, description。例については、Retrieving media types as Admin を参照してください。デフォルト: extend。 |
| search | object | 指定したパターンに一致する結果を返します(大文字と小文字を区別しません)。 キーがプロパティ名、値が検索する文字列であるオブジェクトを受け付けます。追加オプションが指定されていない場合、 LIKE "%…%" 検索を実行します。string および text データ型 のプロパティのみをサポートします。Admin および User タイプのユーザーで指定可能な Media type object プロパティ: name, description。 |
| countOutput | boolean | これらのパラメータは reference commentary で説明されています。 |
| editable | boolean | |
| excludeSearch | boolean | |
| limit | integer | |
| preservekeys | boolean | |
| searchByAny | boolean | |
| searchWildcardsEnabled | boolean | |
| sortorder | string/array | |
| startSearch | boolean |
戻り値
(integer/array) 次のいずれかを返します:
- オブジェクトの配列
countOutputパラメータが使用されている場合、取得されたオブジェクトの数
例
メディアタイプの取得
設定済みのすべてのメディアタイプを取得します。次の例では、2つのメディアタイプが返されます。
- email メディアタイプ;
- 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": "障害: {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": "解決済み: {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": "更新された障害: {EVENT.NAME}",
"message": "{USER.FULLNAME} が {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME} に障害を {EVENT.UPDATE.ACTION} しました。\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\n現在の障害ステータスは {EVENT.STATUS}、確認済み: {EVENT.ACK.STATUS} です。"
},
{
"eventsource": "1",
"recovery": "0",
"subject": "ディスカバリ: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
"message": "ディスカバリルール: {DISCOVERY.RULE.NAME}\r\n\r\nデバイスIP: {DISCOVERY.DEVICE.IPADDRESS}\r\nデバイスDNS: {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": "自動登録: {HOST.HOST}",
"message": "ホスト名: {HOST.HOST}\r\nホストIP: {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": "解決済み: {EVENT.NAME}\r\nホスト: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
},
{
"eventsource": "0",
"recovery": "2",
"subject": "",
"message": "{USER.FULLNAME} が {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME} に障害を {EVENT.UPDATE.ACTION} しました"
},
{
"eventsource": "1",
"recovery": "0",
"subject": "",
"message": "ディスカバリ: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
},
{
"eventsource": "2",
"recovery": "0",
"subject": "",
"message": "自動登録: {HOST.HOST}\r\nホストIP: {HOST.IP}\r\nエージェントポート: {HOST.PORT}"
}
],
"parameters": []
}
],
"id": 1
}
Admin としてメディアタイプを取得
Admin タイプのユーザーとして、有効になっているすべてのメディアタイプと、それらのメディアタイプを使用するユーザーを取得します。 次の例では、2つのメディアタイプが返されます。
- ユーザーが1人いるメールメディアタイプ(Admin タイプのユーザー自身のユーザーのみ)
- ユーザーがいない SMS メディアタイプ
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": "extend",
"filter": {
"status": 0
},
"selectUsers": "extend"
},
"id": 1
}
Response:
{
"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
}
スクリプトと Webhook のメディアタイプ取得
次の例では、3 つのメディアタイプが返されます。
- パラメータ付きのスクリプト メディアタイプ
- パラメータなしのスクリプト メディアタイプ
- パラメータ付きの Webhook メディアタイプ
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": ["mediatypeid", "name", "parameters"],
"filter": {
"type": [1, 4]
}
},
"id": 1
}
Response:
{
"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() in ui/include/classes/api/services/CMediaType.php.