trs_mlflow/
experiment.rs

1//! Contains everything related to experiments.
2use builder_pattern::Builder;
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6pub struct CreateExperiment {
7    pub name: String,
8    pub tags: Vec<KeyValue>,
9}
10
11#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
12pub struct Experiment {
13    pub experiment_id: String,
14    pub name: String,
15    pub artifact_location: String,
16    pub lifecycle_stage: LifecycleStage,
17    pub last_update_time: u64,
18    pub creation_time: u64,
19    #[serde(default)]
20    pub tags: Vec<KeyValue>,
21}
22
23#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
24#[serde(rename_all = "snake_case")]
25pub enum LifecycleStage {
26    Active,
27    Deleted,
28}
29
30#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
31pub struct ExperimentId {
32    pub experiment_id: String,
33}
34
35#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Builder)]
36pub struct KeyValue {
37    #[into]
38    pub key: String,
39    #[into]
40    pub value: String,
41}