// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
/// Public create-file-blueprint request body.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateFileBlueprintRequest {
    /// File id to analyze.
    pub file_id: String,
    /// Optional user intent used to guide the blueprint analysis.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub intent: Option<String>,
    /// Legacy compatibility field. Blueprint analysis always runs a single pass.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub mode: Option<CreateFileBlueprintRequestMode>,
    /// If true, run asynchronously: returns immediately with status 'queued' and an empty output. Poll GET /v1/<primitive>/{id} until status is terminal. Mutually exclusive with stream.
    ///
    /// Defaults to `false`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub background: Option<bool>,
}
impl CreateFileBlueprintRequest {
    /// Construct a new `CreateFileBlueprintRequest` with the required fields set.
    #[allow(deprecated)]
    pub fn new(file_id: impl Into<String>) -> Self {
        Self {
            file_id: file_id.into(),
            intent: Default::default(),
            mode: Default::default(),
            background: Default::default(),
        }
    }
}
