Skip to main content

ironflow_api/entities/
create_run.rs

1//! Request type for triggering a workflow.
2
3use serde::Deserialize;
4use serde_json::Value;
5
6/// Request to trigger a workflow.
7///
8/// # Examples
9///
10/// ```
11/// use ironflow_api::entities::CreateRunRequest;
12/// use serde_json::json;
13///
14/// let req = CreateRunRequest {
15///     workflow: "deploy".to_string(),
16///     payload: Some(json!({"env": "prod"})),
17/// };
18/// assert_eq!(req.workflow, "deploy");
19/// ```
20#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
21#[derive(Debug, Deserialize)]
22pub struct CreateRunRequest {
23    /// The workflow name to trigger.
24    pub workflow: String,
25    /// Optional input payload for the workflow.
26    #[cfg_attr(feature = "openapi", schema(value_type = Option<std::collections::HashMap<String, serde_json::Value>>))]
27    pub payload: Option<Value>,
28}