k8s_traefik_api/
tlsstores.rs

1// WARNING: generated by kopium - manual changes will be overwritten
2// kopium command: kopium tlsstores.traefik.io -A -b --derive=Default --derive=PartialEq --smart-derive-elision
3// kopium version: 0.21.2
4
5#[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/// TLSStoreSpec defines the desired state of a TLSStore.
15#[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    /// Certificates is a list of secret names, each secret holding a key/certificate pair to add to the store.
22    #[serde(default, skip_serializing_if = "Option::is_none")]
23    #[builder(default, setter(strip_option))]
24    pub certificates: Option<Vec<TLSStoreCertificates>>,
25    /// DefaultCertificate defines the default certificate configuration.
26    #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultCertificate")]
27    #[builder(default, setter(strip_option))]
28    pub default_certificate: Option<TLSStoreDefaultCertificate>,
29    /// DefaultGeneratedCert defines the default generated certificate configuration.
30    #[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/// Certificate holds a secret name for the TLSStore resource.
36#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
37pub struct TLSStoreCertificates {
38    /// SecretName is the name of the referenced Kubernetes Secret to specify the certificate details.
39    #[serde(rename = "secretName")]
40    pub secret_name: String,
41}
42
43/// DefaultCertificate defines the default certificate configuration.
44#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
45pub struct TLSStoreDefaultCertificate {
46    /// SecretName is the name of the referenced Kubernetes Secret to specify the certificate details.
47    #[serde(rename = "secretName")]
48    pub secret_name: String,
49}
50
51/// DefaultGeneratedCert defines the default generated certificate configuration.
52#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
53pub struct TLSStoreDefaultGeneratedCert {
54    /// Domain is the domain definition for the DefaultCertificate.
55    #[serde(default, skip_serializing_if = "Option::is_none")]
56    #[builder(default, setter(strip_option))]
57    pub domain: Option<TLSStoreDefaultGeneratedCertDomain>,
58    /// Resolver is the name of the resolver that will be used to issue the DefaultCertificate.
59    #[serde(default, skip_serializing_if = "Option::is_none")]
60    #[builder(default, setter(strip_option))]
61    pub resolver: Option<String>,
62}
63
64/// Domain is the domain definition for the DefaultCertificate.
65#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
66pub struct TLSStoreDefaultGeneratedCertDomain {
67    /// Main defines the main domain name.
68    #[serde(default, skip_serializing_if = "Option::is_none")]
69    #[builder(default, setter(strip_option))]
70    pub main: Option<String>,
71    /// SANs defines the subject alternative domain names.
72    #[serde(default, skip_serializing_if = "Option::is_none")]
73    #[builder(default, setter(strip_option))]
74    pub sans: Option<Vec<String>>,
75}
76