use builder_pattern::Builder;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateExperiment {
pub name: String,
pub tags: Vec<KeyValue>,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Experiment {
pub experiment_id: String,
pub name: String,
pub artifact_location: String,
pub lifecycle_stage: LifecycleStage,
pub last_update_time: u64,
pub creation_time: u64,
#[serde(default)]
pub tags: Vec<KeyValue>,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum LifecycleStage {
Active,
Deleted,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ExperimentId {
pub experiment_id: String,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Builder)]
pub struct KeyValue {
#[into]
pub key: String,
#[into]
pub value: String,
}