// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
/// Run-scoped per-document experiment result.
/// The storage row is still named ``experiment_jobs`` internally, but the
/// public contract is a result row addressed by ``run_id`` + ``document_id``.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ExperimentResult {
    pub id: String,
    pub run_id: String,
    pub experiment_id: String,
    pub document_id: String,
    pub lifecycle: ExperimentResultLifecycleOneOf,
    pub timing: ExperimentResultTiming,
    pub block_type: ExperimentResultBlockType,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub handle_inputs: Option<
        std::collections::HashMap<String, ExplicitExperimentDocumentRequestHandleInputsOneOf>,
    >,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub artifact: Option<StepArtifactRef>,
    /// Defaults to `0`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub attempt: Option<i64>,
    /// Defaults to `false`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub is_placeholder: Option<bool>,
}
