创建

描述

object mediatype.create(object/array mediaTypes)

此方法允许创建新的媒体类型。

此方法仅适用于超级管理员用户类型。 可以在用户角色设置中撤销调用该方法的权限。 查阅用户角色 了解更多信息。

参数

(object/array) 需要创建的媒介类型。

除了标准媒介类型属性外,该方法还接受以下参数。

参数类型描述
parametersarray脚本 or或webhook 为媒体类型创建的参数。
message_templatesarray为媒体类型创建的消息模板

返回值

(object) 返回一个对象,其中包含在 mediatypeids 属性下创建的媒体类型的 ID。返回的 ID 的顺序与传递的媒体类型的顺序匹配。

示例

创建电子邮件媒介类型

使用自定义 SMTP 端口和消息模板创建新的电子邮件媒介类型。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "mediatype.create",
  4. "params": {
  5. "type": "0",
  6. "name": "Email",
  7. "smtp_server": "mail.example.com",
  8. "smtp_helo": "example.com",
  9. "smtp_email": "[email protected]",
  10. "smtp_port": "587",
  11. "message_format": "1",
  12. "message_templates": [
  13. {
  14. "eventsource": "0",
  15. "recovery": "0",
  16. "subject": "Problem: {EVENT.NAME}",
  17. "message": "Problem \"{EVENT.NAME}\" on host \"{HOST.NAME}\" started at {EVENT.TIME}."
  18. },
  19. {
  20. "eventsource": "0",
  21. "recovery": "1",
  22. "subject": "Resolved in {EVENT.DURATION}: {EVENT.NAME}",
  23. "message": "Problem \"{EVENT.NAME}\" on host \"{HOST.NAME}\" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}."
  24. },
  25. {
  26. "eventsource": "0",
  27. "recovery": "2",
  28. "subject": "Updated problem in {EVENT.AGE}: {EVENT.NAME}",
  29. "message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem \"{EVENT.NAME}\" on host \"{HOST.NAME}\" at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}."
  30. }
  31. ]
  32. },
  33. "id": 1
  34. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "mediatypeids": [
  5. "7"
  6. ]
  7. },
  8. "id": 1
  9. }

创建脚本媒介类型

使用自定义数量值创建新的脚本媒体类型 尝试次数以及尝试次数之间的间隔。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "mediatype.create",
  4. "params": {
  5. "type": "1",
  6. "name": "Push notifications",
  7. "exec_path": "push-notification.sh",
  8. "maxattempts": "5",
  9. "attempt_interval": "11s",
  10. "parameters": [
  11. {
  12. "sortorder": "0",
  13. "value": "{ALERT.SENDTO}"
  14. },
  15. {
  16. "sortorder": "1",
  17. "value": "{ALERT.SUBJECT}"
  18. },
  19. {
  20. "sortorder": "2",
  21. "value": "{ALERT.MESSAGE}"
  22. }
  23. ]
  24. },
  25. "id": 1
  26. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "mediatypeids": [
  5. "8"
  6. ]
  7. },
  8. "id": 1
  9. }

创建 webhook 媒介类型

创建新的 Webhook 媒介类型。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "mediatype.create",
  4. "params": {
  5. "type": "4",
  6. "name": "Webhook",
  7. "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}",
  8. "parameters": [
  9. {
  10. "name": "Message",
  11. "value": "{ALERT.MESSAGE}"
  12. },
  13. {
  14. "name": "Subject",
  15. "value": "{ALERT.SUBJECT}"
  16. },
  17. {
  18. "name": "To",
  19. "value": "{ALERT.SENDTO}"
  20. },
  21. {
  22. "name": "Token",
  23. "value": "<Token>"
  24. }
  25. ]
  26. },
  27. "id": 1
  28. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "mediatypeids": [
  5. "9"
  6. ]
  7. },
  8. "id": 1
  9. }

来源

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