windmill_api/models/
forloop_flow.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/// ForloopFlow : Executes nested modules in a loop over an iterator. Inside the loop, use 'flow_input.iter.value' to access the current iteration value, and 'flow_input.iter.index' for the index. Supports parallel execution for better performance on I/O-bound operations
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ForloopFlow {
17    /// Steps to execute for each iteration. These can reference the iteration value via 'flow_input.iter.value'
18    #[serde(rename = "modules")]
19    pub modules: Vec<models::FlowModule>,
20    #[serde(rename = "iterator")]
21    pub iterator: Box<models::InputTransform>,
22    /// If true, iteration failures don't stop the loop. Failed iterations return null
23    #[serde(rename = "skip_failures")]
24    pub skip_failures: bool,
25    #[serde(rename = "type")]
26    pub r#type: Type,
27    /// If true, iterations run concurrently (faster for I/O-bound operations). Use with parallelism to control concurrency
28    #[serde(rename = "parallel", skip_serializing_if = "Option::is_none")]
29    pub parallel: Option<bool>,
30    #[serde(rename = "parallelism", skip_serializing_if = "Option::is_none")]
31    pub parallelism: Option<Box<models::InputTransform>>,
32    #[serde(rename = "squash", skip_serializing_if = "Option::is_none")]
33    pub squash: Option<bool>,
34}
35
36impl ForloopFlow {
37    /// Executes nested modules in a loop over an iterator. Inside the loop, use 'flow_input.iter.value' to access the current iteration value, and 'flow_input.iter.index' for the index. Supports parallel execution for better performance on I/O-bound operations
38    pub fn new(modules: Vec<models::FlowModule>, iterator: models::InputTransform, skip_failures: bool, r#type: Type) -> ForloopFlow {
39        ForloopFlow {
40            modules,
41            iterator: Box::new(iterator),
42            skip_failures,
43            r#type,
44            parallel: None,
45            parallelism: None,
46            squash: None,
47        }
48    }
49}
50/// 
51#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
52pub enum Type {
53    #[serde(rename = "forloopflow")]
54    Forloopflow,
55}
56
57impl Default for Type {
58    fn default() -> Type {
59        Self::Forloopflow
60    }
61}
62