1use crate::{experiment::KeyValue, modelversion::ModelVersion};
3use builder_pattern::Builder;
4use serde::{Deserialize, Serialize};
5
6#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Builder)]
7pub struct RegisterModel {
8 #[into]
9 pub name: String,
10 #[default(vec![])]
11 pub tags: Vec<KeyValue>,
12 #[into]
13 pub description: String,
14}
15
16#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Builder)]
17pub struct RegisteredModel {
18 pub name: String,
19 pub creation_timestamp: u64,
20 pub last_updated_timestamp: u64,
21 #[serde(default)]
22 pub description: String,
23 #[serde(default)]
24 pub latest_versions: Vec<ModelVersion>,
25 #[serde(default)]
26 pub tags: Vec<KeyValue>,
27 #[serde(default)]
28 pub aliases: Vec<RegisteredModelAlias>,
29}
30
31#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Builder)]
32pub struct RegisteredModelAlias {
33 pub alias: String,
34 pub version: String,
35}