[comment]: # translation:outdated

[comment]: # ({502c65c3-502c65c3})
# > 动作对象

以下对象与`动作` API 直接相关。

[comment]: # ({/502c65c3-502c65c3})

[comment]: # ({50d8d434-73117797})
### 动作

动作对象具有以下属性。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|actionid|字符|*（只读）* 动作 ID。|
|**esc\_period**<br>（必需）|字符|默认操作步骤持续时间。必须至少为 60 秒。接受秒、带后缀的时间单位和用户宏。<br><br>请注意，仅对触发器、内部和服务动作支持升级，问题恢复和更新操作不支持升级。 |
|**eventsource**<br>（必需）|整数|*（常量）* 动作将处理的事件的类型。<br><br>参见 [event "source" 属性](/manual/api/reference/event/object#事件) 以获取支持的事件类型列表。|
|**name**<br>（必需）|字符| 动作名称。|
|status|整数| 动作是启用还是禁用。<br><br>可用值：<br>0 - *（默认）* 启用；<br>1 - 禁用。|
|pause\_suppressed|整数|是否在维护期间暂停升级。<br><br>可用值：<br>0 - 不要暂停升级；<br>1 - *（默认）* 暂停升级。<br><br>请注意，此参数仅对触发器动作有效。|
|notify\_if\_canceled|整数|取消升级时是否通知。<br><br>可用值：<br>0 - 取消升级时不通知；<br>1 - *（默认）* 取消升级时通知。<br><br>请注意，此参数仅对触发器动作有效。|
注意，对于某些方法（更新、删除），必需/可选参数组合是不同的。

[comment]: # ({/50d8d434-73117797})

[comment]: # ({fe2c9309-8757165b})
### 动作操作

动作操作对象定义执行动作时执行的操作。它具有以下属性。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|operationid|string|*（只读）*动作操作的 ID。|
|**operationtype**<br>（必需）|integer|操作类型。<br><br>可用值：<br>0 - 发送信息；<br>1 - 全局脚本；<br>2 - 添加主机；<br>3 - 删除主机；<br>4 -添加到主机组；<br>5 - 从主机组删除；<br>6 - 链接到模板；<br>7 - 取消与模板的关联；<br>8 - 启用主机；<br>9 - 禁用主机；<br>10 -设置主机资产模式。<br><br>请注意，触发器和服务动作只支持类型 '0' 和 '1' ，内部动作只支持类型 '0'。 发现和自动注册操作支持所有类型。|
|actionid|string|*（只读）* 动作操作所属的动作 ID。|
|esc\_period|string|以秒为单位的升级步骤的持续时间。必须大于 60 秒。接受秒、带后缀的时间单位和用户宏。如果设置为 0 或0s，则将使用默认的 动作 升级周期。<br><br>默认： 0s。<br><br>请注意，仅触发器、内部和服务操作支持升级，问题恢复和更新操作不支持升级。|
|esc\_step\_from|integer|开始升级的 Step 。<br><br>默认：1。<br><br>请注意，仅触发器、内部和服务操作支持升级，问题恢复和更新操作不支持升级。|
|esc\_step\_to|integer|结束升级的 Step。<br><br>默认：1。<br><br>请注意，仅触发器、内部和服务操作支持升级，问题恢复和更新操作不支持升级。|
|evaltype|integer| 操作条件计算方法。<br><br>可用值：<br>0 - *（默认）* AND / OR；<br>1 - AND；<br>2 - OR。|
|opcommand|object|对象包含操作运行的全局脚本上的数据。<br><br>每个对象具有以下属性：`scriptid` - *（字符串）* 脚本的 ID。<br><br>被全局脚本操作所需要。|
|opcommand\_grp|array|要在其上运行全局脚本的主机组。<br><br>每个对象具有以下属性：<br>`opcommand_grpid` - *（字符串，只读）* 对象 ID；<br>`operationid` - *（字符串，只读）* 操作 ID；<br>`groupid` - *（字符串）* 主机组 ID。<br><br>在 `opcommand_hst` 未被设置的情况下，被全局脚本操作所需要。|
|opcommand\_hst|array|要在其上运行全局脚本的主机。<br><br>每个对象具有以下属性：<br>`opcommand_hstid` - *（字符串，只读）* 对象 ID；<br>`operationid` - *（字符串，只读）* 操作 ID；<br>`hostid` - *（字符串）* 主机 ID；如果设置为 0 命令将运行在当前主机。<br><br>在 `opcommand_grp`未被设置的情况下，被全局脚本操作所需要。 |
|opconditions|array|用于触发 动作 的操作条件。<br><br>动作操作条件 [ 如下所述 ](/manual/api/reference/action/object#动作操作条件)。|
|opgroup|array|用于添加主机的主机组。<br><br>每个对象具有以下属性：<br>`operationid` - *（字符串，只读）* 操作 ID ；<br>`groupid` - *（字符串）* 主机组 ID 。<br><br>被 "添加到主机组" 和 "从主机组删除" 操作所需要。|
|opmessage|object|包含有关操作发送的消息的数据的对象。<br><br> 动作操作消息 对象 [ 如下所述 ](/manual/api/reference/action/object#动作操作消息)。<br><br> 被消息操作所需要。|
|opmessage\_grp|array| 要向其发送消息的用户组。<br><br>每个对象具有以下属性：<br>`operationid` - *（字符串，只读）* 操作 ID；<br>`usrgrpid` - *（字符串）* 用户组 ID。<br><br>在 `opmessage_usr` 未被设置的情况下，被全局脚本操作所需要。|
|opmessage\_usr|array|要向其发送消息的用户。<br><br>每个对象具有以下属性：<br>`operationid` - *（字符串）* 操作 ID；<br>`userid` - *（字符串）* 用户 ID。<br><br>在 `opmessage_grp` 未被设置的情况下，被全局脚本操作所需要。|
|optemplate|array|要将主机链接到的模板。<br><br>每个对象具有以下属性：<br>`operationid` - *（字符串，只读）* 操作 ID；<br>`templateid` - *（字符串）* 模板 ID 。<br><br>被 "链接到模板" 和 "取消与模板的关联" 操作所需要。|
|opinventory|object|要将主机设置的资产模式。<br><br>对象具有以下属性：<br>`operationid` - *（字符串，只读）* 操作 ID；<br>`inventory_mode` - *（字符串）* 资产模式。<br><br>被 "设置主机资产模式" 操作所需要。|

[comment]: # ({/fe2c9309-8757165b})

[comment]: # ({cd5c99d1-4aeccf9f})
#### 动作操作消息

操作消息对象包含有关操作将发送的消息的数据。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|default\_msg|integer|是否使用默认 action message 文本和主题。<br><br>可用值：<br>0 - 使用动作中的数据；<br>1 - *（默认）* 使用 媒介类型中的数据。|
|mediatypeid|string|将用于发送消息的媒介类型 ID。|
|message|string|操作消息文本。|
|subject|string|操作消息主题。|

[comment]: # ({/cd5c99d1-4aeccf9f})

[comment]: # ({a1f12023-6762fd66})
#### 动作操作条件

动作操作条件对象定义执行当前操作时必须满足的条件。它具有以下属性。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|opconditionid|string|*（只读）* 动作操作条件 ID。|
|**conditiontype**<br>（必需）|integer| 条件类型。<br><br>可用值：<br>14 - 事件确认。|
|**value**<br>（必需）|string| 与之比较的值。|
|operationid|string|*（只读）* 操作 ID。 |
|operator|integer|条件运算符。<br><br>可用值：<br>0 - *（默认）* =。|

每个操作条件类型都支持以下运算符和值。

|条件|条件名|支持的运算|期望值|
|---------|--------------|-------------------|--------------|
|14|事件确认|=|事件是否被确认。<br><br>可用值：<br>0 - 未确认；<br>1 - 已确认。|

[comment]: # ({/a1f12023-6762fd66})

[comment]: # ({15599c6e-d1e6762b})
### 动作恢复操作

动作恢复操作对象定义在解决问题时将执行的操作。恢复操作可用于 触发器、内部 及 服务动作。它具有以下属性。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|operationid|string|*（只读）* 动作操作 ID。|
|**operationtype**<br>（必需）|integer|操作类型。<br><br>在 触发器 和 服务 动作 的情况下可用值：<br>0 - 发送消息；<br>1 - 全局脚本；<br>11 - 通知所有相关人员。<br><br>在 内部 动作 的情况下可能的值：<br>0 - 发送消息；<br>11 - 通知所有相关人员。|
|actionid|string|*（只读）*  这个恢复操作所属的 动作 ID 。|
|opcommand|object|对象包含运行的全局操作类型脚本操作的数据。<br><br>每个对象都有以下属性： `scriptid` - *（字符串）*动作类型脚本 ID。<br><br> 被全局脚本操作所需要。|
|opcommand\_grp|array|要在其上运行全局脚本的主机组。<br><br>每个对象都具有以下属性：<br>`opcommand_grpid` - *（字符串，只读）* 对象 ID；<br>`operationid` - *（字符串，只读）*  操作 ID；<br>`groupid` - *（字符串）* 主机组 ID 。<br><br> 在 `opcommand_hst` 未被设置的情况下，被全局脚本操作所需要。|
|opcommand\_hst|array| 要在其上运行全局脚本的主机。<br><br>每个对象都具有以下属性：<br>`opcommand_hstid` - *（字符串，只读）* 对象 ID ；<br>`operationid` - *（字符串，只读）*  操作 ID；<br>`hostid` - *（字符串）* 主机 ID； 如果设置为 0 命令将运行在当前主机。<br><br>在 `opcommand_grp`未被设置的情况下，被全局脚本操作所需要。|
|opmessage|object|对象包含有关恢复操作发送的消息的数据。<br><br> 操作消息对象 [ 如上所述 ](/manual/api/reference/action/object#动作操作消息)。<br><br> 被消息操作所需要。|
|opmessage\_grp|array|要向其发送消息的用户组。<br><br>每个对象都具有以下属性：<br>`operationid` - *（字符串，只读）* 操作 ID；<br>`usrgrpid` - *（字符串）* 用户组 ID。<br><br>在`opmessage_usr` 未被设置的情况下，被消息操作所需要。|
|opmessage\_usr|array|要向其发送消息的用户。<br><br>每个对象都具有以下属性：<br>`operationid` - *（字符串，只读）* 操作 ID；<br>`userid` - *（字符串）* 用户 ID。<br><br>在 `opmessage_grp` 未被设置的情况下，被消息操作所需要。|

[comment]: # ({/15599c6e-d1e6762b})

[comment]: # ({cd624f0c-f41f59ea})
### 动作更新操作

动作更新操作对象定义在问题更新（注释、确认、严重性更改或手动关闭）时将执行的操作。更新操作可用于 触发器 和 服务动作。它具有以下属性。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|operationid|string|*（只读）*动作操作 ID。|
|**operationtype**<br>（必需）|integer|操作类型。<br><br>在 触发器 和 服务 动作 的情况下可能的值：<br>0 - 发送消息；<br>1 - 全局脚本；<br>12 - 通知所有相关人员。|
|opcommand|object|对象包含运行的全局操作类型脚本操作的数据。<br><br>每个对象都有以下属性： `scriptid` - *（字符串）*动作类型脚本 ID。<br><br>被全局脚本操作所需要。|
|opcommand\_grp|array|要在其上运行全局脚本的主机组。<br><br>每个对象都具有以下属性：<br>`groupid` - *（字符串）* 主机组 ID<br><br> 在 `opcommand_hst` 未被设置的情况下，被全局脚本操作所需要。|
|opcommand\_hst|array|要在其上运行全局脚本的主机。<br><br>每个对象都具有以下属性：<br>`hostid` - *（字符串）* 主机 ID； 如果设置为 0 命令将运行在当前主机。<br><br>在 `opcommand_grp`未被设置的情况下，被全局脚本操作所需要。|
|opmessage|object|对象包含有关更新操作发送的消息的数据。<br><br> 操作消息 对象 [ 如上所述 ](/manual/api/reference/action/object#动作操作消息)。|
|opmessage\_grp|array| 要向其发送消息的用户组。<br><br>每个对象都具有以下属性：<br>`usrgrpid` - *（字符串）* 用户组 ID。<br><br>在 `opmessage_usr` 未被设置的情况下，仅被 `发送消息` 操作所需要。<br>被 `发送更新消息` 操作所忽略。|
|opmessage\_usr|array|要向其发送消息的用户。<br><br>每个对象都具有以下属性：<br>`userid` - *（字符串）* 用户 ID。<br><br>在 `opmessage_grp`未被设置的情况下，仅被 `发送消息` 操作所需要。<br>被 `发送更新消息` 操作所忽略。|

[comment]: # ({/cd624f0c-f41f59ea})

[comment]: # ({845a664a-0d8b3bb1})
### 动作过滤

动作过滤对象定义执行配置的动作操作时必须满足的一组条件。它具有以下属性。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**conditions**<br>(required)|array|用于筛选结果的过滤条件集。|
|**evaltype**<br>(required)|integer|过滤条件计算方法。<br><br>可用值：<br>0 - and/or；<br>1 - and；<br>2 - or；<br>3 - 自定义表达式。|
|eval\_formula|string|*（只读）* 生成的表达式将被用于计算过滤条件。表达式包含了通过其 ID 引用特定筛选条件的 `formulaid`。`eval_formula` 的值等于具有自定义表达式的筛选器的 `formula` 的值。 |
|formula|string|用于使用自定义表达式计算过滤条件的用户定义表达式。表达式必须包含通过其  `formulaid` 引用特定过滤条件的 ID。表达式中使用的 ID 必须与过滤条件中定义的 ID 完全匹配：任何条件都不能保持未使用或省略状态。<br><br>被自定义表达式过滤需要。|

[comment]: # ({/845a664a-0d8b3bb1})

[comment]: # ({a16a93e2-dd860074})
#### 动作过滤条件

动作过滤条件对象定义了在运行动作操作之前必须检查的特定条件。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|conditionid|字符|*（只读）* 动作条件 ID。|
|**conditiontype**<br>(必需)|整数| 条件类型。<br><br>在触发器动作的情况下可用值：<br>0 - 主机组；<br>1 - 主机；<br>2 - 触发器；<br>3 - 触发器名称；<br>4 - 触发器严重等级；<br>6 - 时间段；<br>13 - 主机模板；<br>16 - 问题被抑制；<br>25 - 事件标签；<br>26 - 事件标签值。<br><br>在 发现动作的情况下可用值：<br>7 - 主机 IP;<br>8 - 发现的服务类型；<br>9 - 发现的服务端口；<br>10 - 发现状态；<br>11 - 正常运行时间或停机时间；<br>12 - 接收到的值；<br>18 - 发现规则；<br>19 - 发现检查；<br>20 - 代理；<br>21 - 发现对象。<br><br>在自动注册动作的情况下可用值：<br>20 - 代理；<br>22 - 主机名；<br>24 - 主机元数据。<br><br>在内部动作的情况下可用值：<br>0 - 主机组；<br>1 - 主机；<br>13 - 主机模板；<br>23 - 事件类型；<br>25 - 事件标签；<br>26 - 事件标签值。<br><br>在服务动作的情况下可用值：<br>25 - 事件标签；<br>26 - 事件标签值；<br>27 - 服务；<br>28 - 服务名。|
|**value**<br>(必需)|字符|要与之比较的值。|
|value2<br>|字符|要与之比较的次要值。当条件类型为 *26* 时被触发器，内部和服务动作所需要。|
|actionid|字符|*（只读）* 条件所属的动作 ID。|
|formulaid|字符|用于从自定义表达式引用条件的任意唯一 ID。只能包含大写字母。ID 必须由用户在修改过滤条件时定义，但是在之后请求它们时将重新生成。|
|operator|整数|条件运算符。<br><br>可用值：<br>0 - *（默认）*等于；<br>1 - 不等于；<br>2 - 包含；<br>3 - 不包含；<br>4 - 在其中；<br>5 - 大于或等于；<br>6 - 小于或等于；<br>7 - 不在其中；<br>8 - 匹配；<br>9 - 不匹配；<br>10 - 是；<br>11 - 否。|
::: notetip
为了更好地理解如何使用具有各种类型表达式的过滤器，查看 [action.get](get#retrieve_discovery_actions) 和 [action.create](create#using_a_custom_expression_filter) 方法页面上的例子。
:::

每种条件类型都支持以下运算符和值。

|条件|条件名称|支持的运算符|期望值|
|---------|--------------|-------------------|--------------|
|0|主机组|等于,<br>不等于|主机组 ID。|
|1|主机|等于,<br>不等于|主机 ID。|
|2|触发器|等于,<br>不等于|触发器 ID。|
|3|触发器名称|包含,<br>不包含|触发器名称。|
|4|触发器严重性|等于,<br>不等于,<br>大于等于,<br>小于等于|触发器严重等级。参考 [触发器 "严重等级" 属性](/manual/api/reference/trigger/object#trigger) 获取支持的触发器严重等级列表。|
|5|触发器值|等于|触发器值. 参考 [触发器 "值" 属性](/manual/api/reference/trigger/object#trigger) 获取支持的触发器值列表。|
|6|时间段|在范围内, 不在范围内|事件触发的 [时间段](/manual/appendix/time_period) 。|
|7|主机IP|等于,<br>不等于|用逗号分隔的一个或多个IP范围。参考 [network discovery configuration](/manual/discovery/network_discovery/rule) 以获取有关支持的IP范围格式的更多信息。|
|8|发现的服务类型|等于,<br>不等于|发现的服务的类型。服务类型与用于检测服务的发现检查的类型匹配。参考 [发现检查 "类型" 属性](/manual/api/reference/dcheck/object#discovery_check) 获取支持的类型列表。|
|9|发现的服务端口|等于,<br>不等于| 一个或多个以逗号分隔的端口范围。|
|10|发现状态|等于|发现对象的状态。<br><br>可能的值：<br>0 - 主机或服务启动；<br>1 - 主机或服务关闭；<br>2 - 主机或服务已被发现；<br>3 - 主机或服务失去连接。|
|11|正常运行或停机的持续时间|大于等于,<br>小于等于|时间，指示发现的对象处于当前状态的时间（以秒为单位）。|
|12|接收的值|等于,<br>不等于,<br>大于等于,<br>小于等于,<br>包含,<br>不包含|执行 Zabbix agent, SNMPv1, SNMPv2 或 SNMPv3 发现检查时返回的值。|
|13|主机模板|等于,<br>不等于|链接的模板ID。|
|16|问题被抑制|Yes, No|无需值：使用 "Yes" 运算符意味着必须抑制问题，"No" - 未抑制。|
|18|发现规则|等于,<br>不等于|发现规则的ID。|
|19|发现检查|等于,<br>不等于|发现检查的ID。|
|20|代理|等于,<br>不等于| 代理的 ID。|
|21|发现对象|等于|触发发现事件的对象的类型。<br><br>可能的值：<br>1 - 发现主机；<br>2 - 发现服务。|
|22|主机名|包含,<br>不包含,<br>匹配,<br>不匹配|主机名<br>在自动注册条件中，运算符 *匹配* 和 *不匹配* 支持使用正则表达式。|
|23|事件类型|等于|特定的内部事件。<br><br>可能的值：<br>0 - 监控项处于 "不支持" 状态；<br>1 - 监控项处于 "正常" 状态；<br>2 - LLD 规则处于 "不支持" 状态；<br>3 - LLD 规则处于 "正常" 状态；<br>4 - 触发器处于 "未知" 状态；<br>5 - 监控项处于 "正常" 状态。|
|24|主机元数据|包含,<br>不包含,<br>匹配,<br>不匹配|自动注册主机的元数据。<br>运算符 *匹配* 和 *不匹配* 支持使用正则表达式。|
|25|标签|等于,<br>不等于,<br>包含,<br>不包含|事件标签。|
|26|标签值|等于,<br>不等于,<br>包含,<br>不包含|事件标签值。|
|27|服务|等于,<br>不等于|服务 ID。|
|28|服务名|等于,<br>不等于|服务名称。|

[comment]: # ({/a16a93e2-dd860074})
