// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WorkflowTestResult {
    pub id: String,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub run_id: Option<String>,
    pub test_id: String,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub lifecycle: Option<WorkflowTestResultLifecycleOneOf>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub timing: Option<WorkflowTestRunTiming>,
    /// Verdict label populated only when the underlying test reaches a terminal lifecycle state and the verdict could be determined. Execution-error details flow through `error` (an `ErrorDetails` envelope), not through this enum.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub verdict: Option<WorkflowTestResultVerdict>,
    pub workflow_id: String,
    pub target: WorkflowTestBlockTarget,
    /// Defaults to ``.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub execution_fingerprint: Option<String>,
    /// Defaults to ``.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub handle_inputs_fingerprint: Option<String>,
    /// Defaults to ``.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub workflow_draft_fingerprint: Option<String>,
    /// Defaults to ``.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub block_config_fingerprint: Option<String>,
    pub source: CreateWorkflowTestRequestSourceOneOf,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub outputs: Option<std::collections::HashMap<String, serde_json::Value>>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub routing_decision: Option<Vec<String>>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub warnings: Option<Vec<String>>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub error: Option<ErrorDetails>,
    /// Defaults to `false`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub skipped: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub assertion_result: Option<AssertionResult>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub verdict_summary: Option<VerdictSummary>,
}
