// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
/// Public workflow run response without tenant isolation fields.
/// This is the API response shape — distinct from the internal storage
/// model (:class:`StoredWorkflowRun`), which carries persistence-only
/// fields that never appear in API responses. Routes call
/// :func:`serialize_workflow_run_response` to convert the storage shape
/// into this response shape; constructing this class directly for
/// persistence would drop those storage-only fields silently. The two
/// classes were deliberately renamed to avoid the prior name collision.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WorkflowRun {
    /// Unique ID for this run
    pub id: String,
    /// Workflow + version reference
    pub workflow: WorkflowSnapshotRef,
    /// What started this run
    pub trigger: WorkflowRunTriggerOneOf,
    /// Discriminated lifecycle state.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub lifecycle: Option<WorkflowRunLifecycleOneOf>,
    /// All timing information
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub timing: Option<RunTiming>,
    /// Input payloads supplied at run creation time
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub inputs: Option<RunInputs>,
}
