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}