manual:api:reference:action:create

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
manual:api:reference:action:create [2021/04/19 18:16]
manual:api:reference:action:create [2021/04/19 18:19]
martins-v old revision restored (2021/01/28 15:46)
Line 1: Line 1:
 +===== action.create =====
  
 +==== Description ====
 +
 +''​object action.create(object/​array **actions**)''​
 +
 +This method allows to create new actions.
 +
 +==== Parameters ====
 +
 +''​(object/​array)''​ Actions to create.
 +
 +Additionally to the [[object#​action|standard action properties]],​ the method accepts the following parameters.
 +
 +^ Parameter ^ [[:​manual/​api/​reference_commentary#​data_types|Type]] ^ Description ^
 +| filter | object | Action [[:​manual/​api/​reference/​action/​object#​action_filter|filter]] object for the action. |
 +| operations | array | Action [[:​manual/​api/​reference/​action/​object#​action_operation|operations]] to create for the action. |
 +| recovery_operations | array |Action ​ [[:​manual/​api/​reference/​action/​object#​action_recovery_operation|recovery operations]] to create for the action. |
 +| acknowledge_operations | array | Action [[:​manual/​api/​reference/​action/​object#​action_update_operation|update operations]] to create for the action. |
 +
 +
 +
 +==== Return values ====
 +
 +''​(object)''​ Returns an object containing the IDs of the created actions under the ''​actionids''​ property. The order of the returned IDs matches the order of the passed actions.
 +
 +==== Examples ====
 +
 +=== Create a trigger action ===
 +
 +Create an action that will be run when a trigger from host "​30045"​ that has the word "​memory"​ in its name goes into problem state. The action must first send a message to all users in user group "​7"​. If the event is not resolved in 4 minutes, it will run script "​3"​ on all hosts in group "​2"​. On trigger recovery it will notify all users who received any messages regarding the problem before. On trigger update, message with custom subject and body will be sent to all who left acknowledgments and comments via all media types.
 +
 +Request:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​action.create",​
 +    "​params":​ {
 +        "​name":​ "​Trigger action",​
 +        "​eventsource":​ 0,
 +        "​status":​ 0,
 +        "​esc_period":​ "​2m",​
 +        "​filter":​ {
 +            "​evaltype":​ 0,
 +            "​conditions":​ [
 +                {
 +                    "​conditiontype":​ 1,
 +                    "​operator":​ 0,
 +                    "​value":​ "​10084"​
 +                },
 +                {
 +                    "​conditiontype":​ 3,
 +                    "​operator":​ 2,
 +                    "​value":​ "​memory"​
 +                }
 +            ]
 +        },
 +        "​operations":​ [
 +            {
 +                "​operationtype":​ 0,
 +                "​esc_period":​ "​0s",​
 +                "​esc_step_from":​ 1,
 +                "​esc_step_to":​ 2,
 +                "​evaltype":​ 0,
 +                "​opmessage_grp":​ [
 +                    {
 +                        "​usrgrpid":​ "​7"​
 +                    }
 +                ],
 +                "​opmessage":​ {
 +                    "​default_msg":​ 1,
 +                    "​mediatypeid":​ "​1"​
 +                }
 +            },
 +            {
 +                "​operationtype":​ 1,
 +                "​esc_step_from":​ 3,
 +                "​esc_step_to":​ 4,
 +                "​evaltype":​ 0,
 +                "​opconditions":​ [
 +                    {
 +                        "​conditiontype":​ 14,
 +                        "​operator":​ 0,
 +                        "​value":​ "​0"​
 +                    }
 +                ],
 +                "​opcommand_grp":​ [
 +                    {
 +                        "​groupid":​ "​2"​
 +                    }
 +                ],
 +                "​opcommand":​ {
 +                    "​type":​ 4,
 +                    "​scriptid":​ "​3"​
 +                }
 +            }
 +        ],
 +        "​recovery_operations":​ [
 +            {
 +                "​operationtype":​ "​11",​
 +                "​opmessage":​ {
 +                    "​default_msg":​ 1
 +                }
 +            }    ​
 +        ],
 +        "​acknowledge_operations":​ [
 +            {
 +                "​operationtype":​ "​12",​
 +                "​opmessage":​ {
 +                    "​default_msg":​ 0,
 +                    "​message":​ "​Custom update operation message body",
 +                    "​subject":​ "​Custom update operation message subject"​
 +                }
 +            }
 +        ]
 +    },
 +    "​auth":​ "​038e1d7b1735c6a5436ee9eae095879e",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Response:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​actionids":​ [
 +            "​17"​
 +        ]
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +=== Create a discovery action ===
 +
 +Create an action that will link discovered hosts to template "​30085"​.
 +
 +Request:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​action.create",​
 +    "​params":​ {
 +        "​name":​ "​Discovery action",​
 +        "​eventsource":​ 1,
 +        "​status":​ 0,
 +        "​esc_period":​ "​0s",​
 +        "​filter":​ {
 +            "​evaltype":​ 0,
 +            "​conditions":​ [
 +                {
 +                    "​conditiontype":​ 21,
 +                    "​value":​ "​1"​
 +                },
 +                {
 +                    "​conditiontype":​ 10,
 +                    "​value":​ "​2"​
 +                }
 +            ]
 +        },
 +        "​operations":​ [
 +            {
 +                "​esc_step_from":​ 1,
 +                "​esc_period":​ "​0s",​
 +                "​optemplate":​ [
 +                    {
 +                        "​templateid":​ "​10091"​
 +                    }
 +                ],
 +                "​operationtype":​ 6,
 +                "​esc_step_to":​ 1
 +            }
 +        ]
 +    },
 +    "​auth":​ "​038e1d7b1735c6a5436ee9eae095879e",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Response:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​actionids":​ [
 +            "​18"​
 +        ]
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +=== Using a custom expression filter ===
 +
 +Create a trigger action that will use a custom filter condition. The action must send a message for each trigger with severity higher or equal to "​Warning"​ for hosts "​10084"​ and "​10106"​. The formula IDs "​A",​ "​B"​ and "​C"​ have been chosen arbitrarily.
 +
 +Request:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​action.create",​
 +    "​params":​ {
 +        "​name":​ "​Trigger action",​
 +        "​eventsource":​ 0,
 +        "​status":​ 0,
 +        "​esc_period":​ "​2m",​
 +        "​filter":​ {
 +            "​evaltype":​ 3,
 +            "​formula":​ "A and (B or C)",
 +            "​conditions":​ [
 +                {
 +                    "​conditiontype":​ 4,
 +                    "​operator":​ 5,
 +                    "​value":​ "​2",​
 +                    "​formulaid":​ "​A"​
 +                },
 +                {
 +                    "​conditiontype":​ 1,
 +                    "​operator":​ 0,
 +                    "​value":​ "​10084",​
 +                    "​formulaid":​ "​B"​
 +                },
 +                {
 +                    "​conditiontype":​ 1,
 +                    "​operator":​ 0,
 +                    "​value":​ "​10106",​
 +                    "​formulaid":​ "​C"​
 +                }
 +            ]
 +        },
 +        "​operations":​ [
 +            {
 +                "​operationtype":​ 0,
 +                "​esc_period":​ "​0s",​
 +                "​esc_step_from":​ 1,
 +                "​esc_step_to":​ 2,
 +                "​evaltype":​ 0,
 +                "​opmessage_grp":​ [
 +                    {
 +                        "​usrgrpid":​ "​7"​
 +                    }
 +                ],
 +                "​opmessage":​ {
 +                    "​default_msg":​ 1,
 +                    "​mediatypeid":​ "​1"​
 +                }
 +            }
 +        ]
 +    },
 +    "​auth":​ "​038e1d7b1735c6a5436ee9eae095879e",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Response:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​actionids":​ [
 +            "​18"​
 +        ]
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +=== Create agent autoregistration rule ===
 +
 +Add a host to host group "Linux servers"​ when host name contains "​SRV"​ or metadata contains "​CentOS"​.
 +
 +Request:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​action.create",​
 +    "​params":​ {
 +        "​name":​ "​Register Linux servers",​
 +        "​eventsource":​ "​2",​
 +        "​status":​ "​0",​
 +        "​filter":​ {
 +            "​evaltype":​ "​2",​
 +            "​formula":​ "A or B",
 +            "​conditions":​ [
 +                {
 +                    "​conditiontype":​ "​22",​
 +                    "​operator":​ "​2",​
 +                    "​value":​ "​SRV",​
 +                    "​value2":​ "",​
 +                    "​formulaid":​ "​B"​
 +                },
 +                {
 +                    "​conditiontype":​ "​24",​
 +                    "​operator":​ "​2",​
 +                    "​value":​ "​CentOS",​
 +                    "​value2":​ "",​
 +                    "​formulaid":​ "​A"​
 +                }
 +            ]
 +        },
 +        "​operations":​ [
 +            {
 +                "​actionid":​ "​9",​
 +                "​operationtype":​ "​4",​
 +                "​esc_period":​ "​0",​
 +                "​esc_step_from":​ "​1",​
 +                "​esc_step_to":​ "​1",​
 +                "​evaltype":​ "​0",​
 +                "​opgroup":​ [
 +                    {
 +                        "​operationid":​ "​16",​
 +                        "​groupid":​ "​2"​
 +                    }
 +                ]
 +            }
 +        ]
 +    },
 +    "​auth":​ "​038e1d7b1735c6a5436ee9eae095879e",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Response:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​actionids":​ [
 +            19
 +        ]
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +==== See also ====
 +
 +  * [[object#​action_filter|Action filter]]
 +  * [[object#​action_operation|Action operation]]
 +
 +==== Source ====
 +
 +CAction::​create() in //​ui/​include/​classes/​api/​services/​CAction.php//​.