cdl_openapi/
model_user.rs1use 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}