// 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 WorkflowExportPayloadRequest {
    /// Workflow ID to export
    pub workflow_id: String,
    /// Block ID to export
    pub block_id: String,
    /// Use block outputs or inputs
    ///
    /// Defaults to `outputs`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub export_source: Option<WorkflowExportPayloadRequestExportSource>,
    /// Run IDs filter (null means all runs)
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub selected_run_ids: Option<Vec<String>>,
    /// Doc type filter (null/empty means all)
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub selected_doc_types: Option<Vec<String>>,
    /// Optional status filter (intersects with completed-only export scope)
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub status: Option<WorkflowExportPayloadRequestStatus>,
    /// Optional status exclusion filter (intersects with completed-only export scope)
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub exclude_status: Option<WorkflowExportPayloadRequestExcludeStatus>,
    /// Optional start date filter (YYYY-MM-DD)
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub from_date: Option<String>,
    /// Optional end date filter (YYYY-MM-DD)
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub to_date: Option<String>,
    /// Optional trigger type filters
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub trigger_types: Option<Vec<WorkflowExportPayloadRequestTriggerTypes>>,
    /// Preferred data column order
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub preferred_columns: Option<Vec<String>>,
    /// CSV field delimiter. Default is ';' (Excel-EU locale default); pass ',' for RFC 4180 / pandas compatibility. Cell values are always quoted when they contain the delimiter, the line terminator, or the quote character, with embedded quotes doubled per RFC 4180.
    ///
    /// Defaults to `;`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub delimiter: Option<String>,
    /// CSV line delimiter
    ///
    /// Defaults to `\n`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub line_delimiter: Option<String>,
    /// CSV quote character
    ///
    /// Defaults to `"`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub quote: Option<String>,
}
