windmill_api/models/
flow_module.rs

1/*
2 * Windmill API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.592.1
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// FlowModule : A single step in a flow. Can be a script, subflow, loop, or branch
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct FlowModule {
17    /// Unique identifier for this step. Used to reference results via 'results.step_id'. Must be a valid identifier (alphanumeric, underscore, hyphen)
18    #[serde(rename = "id")]
19    pub id: String,
20    #[serde(rename = "value")]
21    pub value: Box<models::FlowModuleValue>,
22    #[serde(rename = "stop_after_if", skip_serializing_if = "Option::is_none")]
23    pub stop_after_if: Option<Box<models::StopAfterIf>>,
24    #[serde(rename = "stop_after_all_iters_if", skip_serializing_if = "Option::is_none")]
25    pub stop_after_all_iters_if: Option<Box<models::StopAfterIf>>,
26    #[serde(rename = "skip_if", skip_serializing_if = "Option::is_none")]
27    pub skip_if: Option<Box<models::FlowModuleSkipIf>>,
28    #[serde(rename = "sleep", skip_serializing_if = "Option::is_none")]
29    pub sleep: Option<Box<models::InputTransform>>,
30    /// Cache duration in seconds for this step's results
31    #[serde(rename = "cache_ttl", skip_serializing_if = "Option::is_none")]
32    pub cache_ttl: Option<f64>,
33    #[serde(rename = "cache_ignore_s3_path", skip_serializing_if = "Option::is_none")]
34    pub cache_ignore_s3_path: Option<bool>,
35    #[serde(rename = "timeout", skip_serializing_if = "Option::is_none")]
36    pub timeout: Option<Box<models::InputTransform>>,
37    /// If true, this step's result is deleted after use to save memory
38    #[serde(rename = "delete_after_use", skip_serializing_if = "Option::is_none")]
39    pub delete_after_use: Option<bool>,
40    /// Short description of what this step does
41    #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
42    pub summary: Option<String>,
43    #[serde(rename = "mock", skip_serializing_if = "Option::is_none")]
44    pub mock: Option<Box<models::FlowModuleMock>>,
45    #[serde(rename = "suspend", skip_serializing_if = "Option::is_none")]
46    pub suspend: Option<Box<models::FlowModuleSuspend>>,
47    /// Execution priority for this step (higher numbers run first)
48    #[serde(rename = "priority", skip_serializing_if = "Option::is_none")]
49    pub priority: Option<f64>,
50    /// If true, flow continues even if this step fails
51    #[serde(rename = "continue_on_error", skip_serializing_if = "Option::is_none")]
52    pub continue_on_error: Option<bool>,
53    #[serde(rename = "retry", skip_serializing_if = "Option::is_none")]
54    pub retry: Option<Box<models::Retry>>,
55}
56
57impl FlowModule {
58    /// A single step in a flow. Can be a script, subflow, loop, or branch
59    pub fn new(id: String, value: models::FlowModuleValue) -> FlowModule {
60        FlowModule {
61            id,
62            value: Box::new(value),
63            stop_after_if: None,
64            stop_after_all_iters_if: None,
65            skip_if: None,
66            sleep: None,
67            cache_ttl: None,
68            cache_ignore_s3_path: None,
69            timeout: None,
70            delete_after_use: None,
71            summary: None,
72            mock: None,
73            suspend: None,
74            priority: None,
75            continue_on_error: None,
76            retry: None,
77        }
78    }
79}
80