trs-mlflow 0.7.0

This crate contains an asynchronous client which implements 2.0 REST API of MlFlow server.
Documentation
//! Contains everything related to model versioning.
use crate::experiment::KeyValue;
use builder_pattern::Builder;
use serde::{Deserialize, Serialize};
use strum::Display;

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum ModelVersionStatus {
    PendingRegistration,
    FailedRegistration,
    Ready,
}

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Builder)]
pub struct CreateModelVersion {
    #[serde(rename = "name")]
    #[into]
    pub registered_model_name: String,
    #[serde(rename = "source")]
    #[into]
    pub artifacts_url: String,
    #[into]
    pub run_id: String,
    #[default(vec![])]
    #[serde(default)]
    pub tags: Vec<KeyValue>,
    // #[into]
    // pub run_link: String,
    #[into]
    pub description: String,
}

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ModelVersion {
    pub name: String,
    pub version: String,
    pub creation_timestamp: i64,
    pub last_updated_timestamp: i64,
    #[serde(default)]
    pub user_id: String,
    pub current_stage: String,
    pub description: String,
    #[serde(rename = "source")]
    pub artifacts_url: String,
    pub run_id: String,
    #[serde(default)]
    pub status_message: String,
    #[serde(default)]
    pub tags: Vec<KeyValue>,
    pub run_link: String,
    #[serde(default)]
    pub aliases: Vec<String>,
}

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Display)]
pub enum ModelVersionStage {
    None,
    Production,
    Staging,
    Archived,
}

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Builder)]
pub struct TransitionModelVersionStage {
    #[into]
    pub name: String,
    #[into]
    pub version: String,
    pub stage: ModelVersionStage,
    #[default(false)]
    pub archive_existing_versions: bool,
}