
# 结构体说明
表1EventDef结构体参数说明 
| **名称**                  | **是否必选** | **参数类型**     | **描述**                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| payload_filter_request  | 否        | String       | **参数解释** **：** 事件的参数过滤路径。 **约束限制：** 必须是合法的JSONPath格式 **默认取值：** $                                                                   |
| payload_filter_response | 否        | String       | **参数解释** **：** 事件的结果过滤路径。 **约束限制：** 必须是合法的JSONPath格式 **默认取值：** $                                                                     |
| event_source            | 是        | String       | **参数解释** **：** 事件触发类型 **约束限制：** 枚举，当前只支持"OBS" **取值范围：** OBS **默认取值：** 无 |
| trigger_type            | 否        | Array String | **参数解释** **：** OBS事件类型列表 **约束限制：** 枚举，OBS事件类型描述 **默认取值：** 无                                                                       |
| trigger_prefix          | 否        | String       | **参数解释** **：** OBS事件触发前缀 **约束限制：** 不支持正则 **默认取值：** 无                                                                                 |
| trigger_suffix          | 否        | String       | **参数解释** **：** OBS事件触发后缀 **约束限制：** 不支持正则 **默认取值：** 无                                                                                     |
| trigger_bucket          | 否        | String       | **参数解释** **：** OBS事件触发桶 **约束限制：** trigger_bucket是已存在的桶 **默认取值：** 无                                                                      |
   
表2Input结构体参数说明 
| **名称**         | **是否必选** | **参数类型**                                                                                                                                                                                                                                                                                                                                     | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| parameter_name | 是        | String                                                                                                                                                                                                                                                                                                                                       | **参数解释** **：** 输入参数名称。 **约束限制：** - 最多可定义60个。  - 命名必须唯一。   **取值范围：** 由小写字母、数字和中划线"-"组成，长度为\[1, 20\] **默认取值：** 无                                                             |
| type           | 是        | - string：字符串  - integer：数字  - float：浮点数  - boolean：布尔值   | **参数解释** **：** 参数类型。 **取值范围：** - string：字符串  - integer：数字  - float：浮点数  - boolean：布尔值   **默认取值：** 无 |
| description    | 否        | String                                                                                                                                                                                                                                                                                                                                       | **参数解释** **：** 参数描述信息。 **取值范围：** 长度为\[0, 256\]。 **默认取值：** 无                                                                                                                                                                                                                                                                                                   |
| default        | 否        | String                                                                                                                                                                                                                                                                                                                                       | **参数解释** **：** 默认值 **约束限制：** - 默认值信息可在创建工作流实例时由外部输入替换；如果未填写默认值，外部输入将必须填写这个参数的值。  - 默认值的类型和定义的参数类型必须统一。如果出现不一致，解析器可能会进行自动转换而导致出现与预期不符合的情况。   **默认取值：** 无                                                                                        |
| label          | 否        | String                                                                                                                                                                                                                                                                                                                                       | **参数解释** **：** 参数的标签，此处定义的标签可在创建堆栈时进行分类展示。 **取值范围：** 长度为\[0, 64\]。 **默认取值：** 无                                                                                                                                                                                                                                                                                      |
| constraints    | 否        | map                                                                                                                                                                                                                                                                                                                                          | **参数解释** **：** 参数约束，用于约束可以定义输入参数的合法值范围 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                          |
| invisible      | 否        | Boolean                                                                                                                                                                                                                                                                                                                                      | **参数解释** **：** 是否回显。 **取值范围：** true：回显，返回值为\*\*\*\*\*\*。 false：不回显。 **默认取值：** 无                                                                                                                                                                                                                                                       |
   
表3State公共域说明 
| **名称**             | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| start              | 否        | bool     | **参数解释** **：** 标识开始的state。 **约束限制：** 有且只有一个start为true的state。 **取值范围：** true：标识此state为开始的state。 false：此state不为开始的state。 **默认取值：** false |
| type               | 是        | string   | **参数解释** **：** state的类型。 **取值范围：** DELAY、SWITCH、OPERATION、EVENT、END、Noop。 **默认取值：** 无                                                                                                                                               |
| payload_filter_in  | 否        | string   | **参数解释** **：** 过滤输入参数。 **约束限制：** 必须是合法的JSONPath格式。 **默认取值：** $，表示不过滤。                                                                                                                                                        |
| payload_filter_out | 否        | string   | **参数解释** **：** 过滤state的输出结果。 **约束限制：** 必须是合法的JSONPath格式。 **默认取值：** $，表示不过滤。                                                                                                                                                    |
| state_name         | 是        | string   | **参数解释** **：** state的名字定义。 **取值范围：** 由小写字母、数字和中划线"-"组成，长度为\[1, 20\]。 **默认取值：** 无                                                                                                                                             |
   
![](https://support.huaweicloud.com/sdk-python-devg-obs/public_sys-resources/note_3.0-zh-cn.png)
END State没有payload_filter_in和payload_filter_out属性
表4EventState结构体参数说明 
| **名称**        | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| events        | 是        | Array    | **参数解释** **：** 定义等待的事件消息的json数组。每一个数组成员是一个event消息对象。 **默认取值：** 无                                                                                                                                                                        |
| event_timeout | 否        | int      | **参数解释** **：** 等待事件的最大时间，单位秒。 **约束限制：** 等于0时等同于不设置。*默认值是* *30s* **取值范围：** 大于等于0且小于等于86400的整型。 **默认取值：** 无 |
   
表5OperationState结构体参数说明 
| 名称          | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| action_mode | 否    | String | **参数解释** **：** 任务action调用的模式，并行或者串行。 **取值范围：** - PARALLEL：并行  - SEQUENTIAL：串行   **默认取值：** SEQUENTIAL |
| actions     | 是    | Array  | **参数解释** **：** 定义action的json数组 **约束限制：** 必须定义1个或者以上的Action **默认取值：** 无                                                                                                                                                         |
| next_state  | 是    | String | **参数解释** **：** 表示下一个state的名字。 **约束限制：** 必须是工作流中的state名字 **默认取值：** 无                                                                                                                                                           |
   
表6SwitchState结构体参数说明 
| **名称**  | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| default | 是        | String   | **参数解释** **：** 默认节点，标识如果所有分支匹配都没有命中，将默认流转到default指定的节点 **约束限制：** 必须是工作流中的state名字 **默认取值：** 无 |
| choices | 是        | Array    | **参数解释** **：** 路径选择 **约束限制：** choices.size \> 0 **默认取值：** 无                                |
   
表7DelayState结构体参数说明 
| **名称**     | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| time_delay | 是        | String   | **参数解释** **：** 等待的时间。 **取值范围：** 必须大于0，最大值为86400，单位：秒。 **默认取值：** 无      |
| next_state | 是        | String   | **参数解释** **：** 表示下一个state的名字。 **约束限制：** 必须是工作流模板中的state名字 **默认取值：** 无 |
   
表8Action结构体参数说明 
| **名称**            | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| action_name       | 是        | String   | **参数解释** **：** action的名字。 **约束限制：** 要求state中唯一。 **取值范围：** 1-20长度的只含数字、字母、-和_的字符串。 **默认取值：** 无                                       |
| function          | 是        | String   | **参数解释** **：** 用户自定义函数URN **约束限制：** function与function-template只能设置其中一个。 **默认取值：** 无                                                                                                           |
| function_template | 是        | String   | **参数解释** **：** 系统内置的函数模板URN **约束限制：** function与function-template只能设置其中一个。 **默认取值：** 无                                                                                                       |
| invocation_mode   | 否        | String   | **参数解释** **：** 调用模式 **取值范围：** - SYNC：同步。  - ASYNC：异步。   **默认取值：** 无 |
| results           | 否        | Array    | **参数解释** **：** Action失败后的捕获重试机制。 **约束限制：** 值是一个包含result定义的json数组，results如果存在时，size\>=0 **默认取值：** 无                                                                                          |
| timeout           | 否        | Int      | **参数解释** **：** Action的超时时间，最长等待时间。 **取值范围：** 大于等于0且小于等于300的整型，等于0时等同于不设置，单位：秒。 **默认取值：** 30                                                                                                  |
| payload_filter    | 否        | String   | **参数解释** **：** 对结果进行过滤的路径。 **约束限制：** 必须是合法的JSONPath格式。 **默认取值：** $                                                                                                                       |
| dynamic_source    | 否        | Map      | **参数解释** **：** 在创建工作流时会根据OBS自定义的函数模板创建属于用户的function，并指定该参数设置的参数值 **约束限制：** 必须是指定的参数名称，否则不生效 **默认取值：** 无                                                                                         |
   
表9ActionResult结构体参数说明 
| **名称**         | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| match          | 是        | String   | **参数解释** **：** 表示匹配的错误 **取值范围：** MatchAny、States.ActionFailed、States.PermissionError、States.ParameterError、States.NotFound、States.TooManyRequests、States.FunctionStageUnavailable、States.FunctionStageOtherErrors **默认取值：** 无                            |
| retry_interval | 否        | Int      | **参数解释** **：** 表示重试的间隔时间。 **取值范围：** 大于等于0的整型数，单位：秒 **默认取值：** 无                                                                                                                                                                                             |
| max_retry      | 否        | Int      | **参数解释** **：** 表示最大重试次数。 **取值范围：** 大于等于0的整型数，等于0时表示不重试，单位：秒 **默认取值：** 3                                                                                                                                                                                   |
| next_state     | 否        | String   | **参数解释** **：** 表示下一个state的名字，String类型。 **约束限制：** 必须是工作流模板中的state名字。 **默认取值：** 无                                                                                                                                                                              |
| is_terminal    | 是        | Bool     | **参数解释** **：** 表示是否异常中断该Action，默认为False。 **约束限制：** 注：如果设置为True，那么不必设置nex-state; 如果设置为False，则必须设置next-state。 **取值范围：** True：异常中断该Action。 False：异常不中断该Action。 **默认取值：** 无 |
   
表10Event结构体参数说明 
| **名称**           | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| event_expression | 是        | String   | **参数解释** **：** 标识等待的事件 **约束限制：** 必须是event定义中存在的event-ref中event项的名字 **默认取值：** 无                                                                                                                                                      |
| action_mode      | 否        | String   | **参数解释** **：** 任务action调用的模式，并行或者串行。 **取值范围：** - PARALLEL：并行  - SEQUENTIAL：串行   **默认取值：** SEQUENTIAL |
| actions          | 否        | Array    | **参数解释** **：** 定义action的json数组。 **约束限制：** 如果存在则必须包含0个或者以上的Action **默认取值：** 无                                                                                                                                                          |
| next_state       | 是        | String   | **参数解释** **：** 表示下一个state的名字。 **约束限制：** 必须是工作流模板中的state名字 **默认取值：** 无                                                                                                                                                                 |
   
表11Choice结构体参数说明 
| **名称**     | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| path       | 是        | string   | **参数解释** **：** 用来从上一节点的输出中得到某个值，然后和用户预定义的值比较 **默认取值：** 无                                                                             |
| value      | 是        | string   | **参数解释** **：** 用户预定义的值 **默认取值：** 无                                                                                                     |
| next_state | 是        | string   | **参数解释** **：** 匹配到后转到下一个state的名字 **约束限制：** 必须是工作流模板中的state名字 **默认取值：** 无 |
   
表12Tag结构体参数说明 
| **名称** | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| key    | 是        | String   | **参数解释** **：** Tag名称。 **取值范围：** 由大写或小写的英文字母、数字、下划线和连字符组成，长度在1到256个字符之间。 **默认取值：** 无 |
| value  | 是        | String   | **参数解释** **：** Tag值。 **取值范围：** 长度在1到256之间的字符串。 **默认取值：** 无                           |
   
表13TemplateItem结构体说明 
| 名称         | 参数类型   | 说明                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| name       | String | **参数解释** **：** 工作流的名称 **约束限制：** 名称必须以字母或数字开头，只能由字母、数字、下划线和中划线组成，长度小于等于64个字符，且不能重名。 **默认取值：** 无 |
| created_at | String | **参数解释** **：** 系统记录的创建工作流模板的时间 **默认取值：** 无                                                                                                              |
   
表14GraphItem结构体说明 
| 名称         | 参数类型   | 说明                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| name       | String | **参数解释** **：** 工作流的名称 **约束限制：** 名称必须以字母或数字开头，只能由字母、数字、下划线和中划线组成，长度小于等于64个字符，且不能重名。 **默认取值：** 无 |
| created_at | String | **参数解释** **：** 系统记录的创建工作流模板的时间 **默认取值：** 无                                                                                                                  |
| graph_urn  | String | **参数解释** **：** 工作流的URN **默认取值：** 无                                                                                                                       |
   
表15Rule结构体 
| **名称**    | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| id        | 是        | String   | **参数解释** **：** 策略规则ID。 **约束限制：** 策略中不允许出现相同规则ID。 **取值范围：** 由大写或小写的英文字母、数字、下划线和连字符组成，长度在1到256个字符之间。 **默认取值：** 无                                   |
| graph_urn | 是        | String   | **参数解释** **：** 工作流URN。 **约束限制：** 需要先创建此工作流 **默认取值：** 无                                                                                                                                                        |
| events    | 是        | Array    | **参数解释** **：** OBS事件列表。 **取值范围：** 请参考OBS事件类型描述。 **默认取值：** 无                                                                                                                                                    |
| prefix    | 否        | String   | **参数解释** **：** 对象名前缀，用于指定的对象名关键字，根据定义的前缀，输入需要过滤的对象的关键字信息，字符越长匹配精度越高。 **约束限制：** prefix和suffix加起来长度最大为1024个字符。 **取值范围：** 0到1204长度的字符串 **默认取值：** 无 |
| suffix    | 否        | String   | **参数解释** **：** 对象名后缀，用于指定的对象名关键字，根据定义的后缀，输入需要过滤的对象的关键字信息，字符越长匹配精度越高。 **约束限制：** prefix和suffix加起来长度最大为1024个字符。 **取值范围：** 0到1204长度的字符串 **默认取值：** 无 |
   
表16ExecutionDetail结构体 
| 名称              | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| graph_urn       | String | **参数解释** **：** 工作流的URN **默认取值：** 无                                                                                                                                                                                                                                  |
| execution_urn   | String | **参数解释** **：** 运行实例的URN **默认取值：** 无                                                                                                                                                                                                                                  |
| started_at      | String | **参数解释** **：** 运行实例启动时间 **默认取值：** 无                                                                                                                                                                                                                                 |
| stopped_at      | String | **参数解释** **：** 运行实例结束时间，可选字段 **默认取值：** 无                                                                                                                                                                                                                                |
| execution_state | String | **参数解释** **：** 运行实例总体状态 **默认取值：** 无                                                                                                                                                                                                                                    |
| execution_type  | String | **参数解释** **：** 运行实例的触发类型。 **取值范围：** - APICALL  - TRIGGERCALL   **默认取值：** 无 |
| start_state     | String | **参数解释** **：** 工作流的第一个节点 **默认取值：** 无                                                                                                                                                                                                                                  |
| isTest          | bool   | **参数解释** **：** 是否是通过启动工作流测试启动的实例。 **取值范围：** true：通过启动工作流测试启动的实例 false：不通过启动工作流测试启动的实例 **默认取值：** 无                                                                         |
| execution_name  | String | **参数解释** **：** 运行实例的名字 **默认取值：** 无                                                                                                                                                                                                                                  |
| output          | String | **参数解释** **：** 运行实例的输出 **约束限制：** 当前实例未运行结束时，该字段不存在。 **默认取值：** 无                                                                                                                                      |
| input           | String | **参数解释** **：** 运行实例启动时的输入 **默认取值：** 无                                                                                                                                                                                                                              |
| state_map       | 字典数据结构 | **参数解释** **：** 包括每个state信息。 **取值范围：** 参见[ExecutionState]结构体 **默认取值：** 无                                                                                                      |
   
 表17ExecutionState参数说明 
| 名称         | 参数类型   | 说明                                                                                                                                                                                                                            |
|:---|:---|:---|
| key        | String | **参数解释** **：** 工作流的节点名称。 **约束限制：** 此名称由用户提供，命名不固定，如"next1"。 **默认取值：** 无 |
| state_name | String | **参数解释** **：** state的名称 **默认取值：** 无                                                                                                  |
| status     | String | **参数解释** **：** 当前state的状态 **默认取值：** 无                                                                                              |
| started_at | String | **参数解释** **：** state开始时间 **默认取值：** 无                                                                                               |
| stopped_at | String | **参数解释** **：** state结束的时间，可选字段，state结束含有该项 **默认取值：** 无                                                                               |
| type       | String | **参数解释** **：** state的类型 **默认取值：** 无                                                                                                  |
| input      | String | **参数解释** **：** 当前state启动时的输入，可选字段，state结束含有该项 **默认取值：** 无                                                                           |
| output     | String | **参数解释** **：** 当前state启动时的输出 **默认取值：** 无                                                                                           |
   
