k8s_traefik_api/
tlsstores.rs1#[allow(unused_imports)]
6mod prelude {
7 pub use kube::CustomResource;
8 pub use typed_builder::TypedBuilder;
9 pub use schemars::JsonSchema;
10 pub use serde::{Serialize, Deserialize};
11}
12use self::prelude::*;
13
14#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
16#[kube(group = "traefik.io", version = "v1alpha1", kind = "TLSStore", plural = "tlsstores")]
17#[kube(namespaced)]
18#[kube(derive="Default")]
19#[kube(derive="PartialEq")]
20pub struct TLSStoreSpec {
21 #[serde(default, skip_serializing_if = "Option::is_none")]
23 #[builder(default, setter(strip_option))]
24 pub certificates: Option<Vec<TLSStoreCertificates>>,
25 #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultCertificate")]
27 #[builder(default, setter(strip_option))]
28 pub default_certificate: Option<TLSStoreDefaultCertificate>,
29 #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultGeneratedCert")]
31 #[builder(default, setter(strip_option))]
32 pub default_generated_cert: Option<TLSStoreDefaultGeneratedCert>,
33}
34
35#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
37pub struct TLSStoreCertificates {
38 #[serde(rename = "secretName")]
40 pub secret_name: String,
41}
42
43#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
45pub struct TLSStoreDefaultCertificate {
46 #[serde(rename = "secretName")]
48 pub secret_name: String,
49}
50
51#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
53pub struct TLSStoreDefaultGeneratedCert {
54 #[serde(default, skip_serializing_if = "Option::is_none")]
56 #[builder(default, setter(strip_option))]
57 pub domain: Option<TLSStoreDefaultGeneratedCertDomain>,
58 #[serde(default, skip_serializing_if = "Option::is_none")]
60 #[builder(default, setter(strip_option))]
61 pub resolver: Option<String>,
62}
63
64#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
66pub struct TLSStoreDefaultGeneratedCertDomain {
67 #[serde(default, skip_serializing_if = "Option::is_none")]
69 #[builder(default, setter(strip_option))]
70 pub main: Option<String>,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
73 #[builder(default, setter(strip_option))]
74 pub sans: Option<Vec<String>>,
75}
76