// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
/// Public workflow resource returned by workflow metadata endpoints.
/// This is the API response shape — distinct from the internal storage
/// model (:class:`StoredWorkflow`), which carries persistence-only fields
/// that never appear in API responses. Routes call
/// :func:`serialize_workflow_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 Workflow {
    /// Unique ID for this workflow
    pub id: String,
    /// The name of the workflow
    ///
    /// Defaults to `Untitled Workflow`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub name: Option<String>,
    /// Description of the workflow
    ///
    /// Defaults to ``.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub description: Option<String>,
    /// Published workflow metadata when a published version exists
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub published: Option<WorkflowPublished>,
    /// Email trigger allowlist policy
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub email_trigger: Option<WorkflowEmailTrigger>,
    pub created_at: String,
    pub updated_at: String,
}
