// 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 WorkflowTest {
    pub id: String,
    pub workflow_id: String,
    pub target: WorkflowTestBlockTarget,
    pub source: CreateWorkflowTestRequestSourceOneOf,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub assertion: Option<AssertionSpec>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub assertion_schema_dep: Option<AssertionSchemaDep>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub assertion_drift_status: Option<AssertionDriftStatus>,
    /// Defaults to `unknown`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub schema_drift: Option<WorkflowTestSchemaDrift>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub schema_drift_detail: Option<String>,
    /// Defaults to `valid`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub validation_status: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub validation_issues: Option<Vec<String>>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub latest_run_summary: Option<LatestBlockTestRunSummary>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub latest_passing_run_summary: Option<LatestBlockTestRunSummary>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub latest_failing_run_summary: Option<LatestBlockTestRunSummary>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub created_at: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub updated_at: Option<String>,
}
