cdl_openapi/
model_user.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, JsonSchema)]
5#[cfg_attr(feature = "k8s", derive(::kube::CustomResource))]
6#[cfg_attr(
7    feature = "k8s",
8    kube(
9        group = "cdl.ulagbulag.io",
10        version = "v1alpha1",
11        kind = "ModelUser",
12        root = "ModelUserCrd",
13        shortname = "mu",
14        namespaced,
15        printcolumn = r#"{
16            "name": "created-at",
17            "type": "date",
18            "description": "created time",
19            "jsonPath": ".metadata.creationTimestamp"
20        }"#,
21        printcolumn = r#"{
22            "name": "version",
23            "type": "integer",
24            "description": "model user version",
25            "jsonPath": ".metadata.generation"
26        }"#,
27    )
28)]
29#[serde(rename_all = "camelCase")]
30pub struct ModelUserSpec {
31    #[serde(default)]
32    pub access_token: Option<ModelUserAccessTokenSpec>,
33}
34
35#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, JsonSchema)]
36#[serde(rename_all = "camelCase")]
37pub enum ModelUserAccessTokenSpec {
38    SecretRef(ModelUserAccessTokenSecretRefSpec),
39}
40
41impl Default for ModelUserAccessTokenSpec {
42    fn default() -> Self {
43        Self::SecretRef(ModelUserAccessTokenSecretRefSpec::default())
44    }
45}
46
47#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, JsonSchema)]
48#[serde(rename_all = "camelCase")]
49pub struct ModelUserAccessTokenSecretRefSpec {
50    #[serde(default = "ModelUserAccessTokenSecretRefSpec::default_map_access_key")]
51    pub map_access_key: String,
52    #[serde(default = "ModelUserAccessTokenSecretRefSpec::default_map_secret_key")]
53    pub map_secret_key: String,
54
55    #[serde(default = "ModelUserAccessTokenSecretRefSpec::default_name")]
56    pub name: String,
57}
58
59impl Default for ModelUserAccessTokenSecretRefSpec {
60    fn default() -> Self {
61        Self {
62            map_access_key: Self::default_map_access_key(),
63            map_secret_key: Self::default_map_secret_key(),
64            name: Self::default_name(),
65        }
66    }
67}
68
69impl ModelUserAccessTokenSecretRefSpec {
70    fn default_map_access_key() -> String {
71        "CONSOLE_ACCESS_KEY".into()
72    }
73
74    fn default_map_secret_key() -> String {
75        "CONSOLE_SECRET_KEY".into()
76    }
77
78    fn default_name() -> String {
79        "object-storage-user-0".into()
80    }
81}