#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "secrets.stackable.tech", version = "v1alpha1", kind = "SecretClass", plural = "secretclasses")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct SecretClassSpec {
pub backend: SecretClassBackend,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackend {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "autoTls")]
pub auto_tls: Option<SecretClassBackendAutoTls>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "experimentalCertManager")]
pub experimental_cert_manager: Option<SecretClassBackendExperimentalCertManager>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "k8sSearch")]
pub k8s_search: Option<SecretClassBackendK8sSearch>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kerberosKeytab")]
pub kerberos_keytab: Option<SecretClassBackendKerberosKeytab>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTls {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "additionalTrustRoots")]
pub additional_trust_roots: Option<Vec<SecretClassBackendAutoTlsAdditionalTrustRoots>>,
pub ca: SecretClassBackendAutoTlsCa,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxCertificateLifetime")]
pub max_certificate_lifetime: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTlsAdditionalTrustRoots {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<SecretClassBackendAutoTlsAdditionalTrustRootsConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<SecretClassBackendAutoTlsAdditionalTrustRootsSecret>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTlsAdditionalTrustRootsConfigMap {
pub name: String,
pub namespace: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTlsAdditionalTrustRootsSecret {
pub name: String,
pub namespace: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTlsCa {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "autoGenerate")]
pub auto_generate: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caCertificateLifetime")]
pub ca_certificate_lifetime: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keyGeneration")]
pub key_generation: Option<SecretClassBackendAutoTlsCaKeyGeneration>,
pub secret: SecretClassBackendAutoTlsCaSecret,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTlsCaKeyGeneration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsa: Option<SecretClassBackendAutoTlsCaKeyGenerationRsa>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTlsCaKeyGenerationRsa {
pub length: i64,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretClassBackendAutoTlsCaKeyGenerationRsaLength {
#[serde(rename = "2048")]
r#_2048,
#[serde(rename = "3072")]
r#_3072,
#[serde(rename = "4096")]
r#_4096,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendAutoTlsCaSecret {
pub name: String,
pub namespace: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct SecretClassBackendExperimentalCertManager {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultCertificateLifetime")]
pub default_certificate_lifetime: Option<String>,
pub issuer: SecretClassBackendExperimentalCertManagerIssuer,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keyGeneration")]
pub key_generation: Option<SecretClassBackendExperimentalCertManagerKeyGeneration>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct SecretClassBackendExperimentalCertManagerIssuer {
pub kind: SecretClassBackendExperimentalCertManagerIssuerKind,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretClassBackendExperimentalCertManagerIssuerKind {
Issuer,
ClusterIssuer,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendExperimentalCertManagerKeyGeneration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsa: Option<SecretClassBackendExperimentalCertManagerKeyGenerationRsa>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendExperimentalCertManagerKeyGenerationRsa {
pub length: i64,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretClassBackendExperimentalCertManagerKeyGenerationRsaLength {
#[serde(rename = "2048")]
r#_2048,
#[serde(rename = "3072")]
r#_3072,
#[serde(rename = "4096")]
r#_4096,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendK8sSearch {
#[serde(rename = "searchNamespace")]
pub search_namespace: SecretClassBackendK8sSearchSearchNamespace,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "trustStoreConfigMapName")]
pub trust_store_config_map_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendK8sSearchSearchNamespace {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pod: Option<SecretClassBackendK8sSearchSearchNamespacePod>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendK8sSearchSearchNamespacePod {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytab {
pub admin: SecretClassBackendKerberosKeytabAdmin,
#[serde(rename = "adminKeytabSecret")]
pub admin_keytab_secret: SecretClassBackendKerberosKeytabAdminKeytabSecret,
#[serde(rename = "adminPrincipal")]
pub admin_principal: String,
pub kdc: String,
#[serde(rename = "realmName")]
pub realm_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytabAdmin {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "activeDirectory")]
pub active_directory: Option<SecretClassBackendKerberosKeytabAdminActiveDirectory>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mit: Option<SecretClassBackendKerberosKeytabAdminMit>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytabAdminActiveDirectory {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "experimentalGenerateSamAccountName")]
pub experimental_generate_sam_account_name: Option<SecretClassBackendKerberosKeytabAdminActiveDirectoryExperimentalGenerateSamAccountName>,
#[serde(rename = "ldapServer")]
pub ldap_server: String,
#[serde(rename = "ldapTlsCaSecret")]
pub ldap_tls_ca_secret: SecretClassBackendKerberosKeytabAdminActiveDirectoryLdapTlsCaSecret,
#[serde(rename = "passwordCacheSecret")]
pub password_cache_secret: SecretClassBackendKerberosKeytabAdminActiveDirectoryPasswordCacheSecret,
#[serde(rename = "schemaDistinguishedName")]
pub schema_distinguished_name: String,
#[serde(rename = "userDistinguishedName")]
pub user_distinguished_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytabAdminActiveDirectoryExperimentalGenerateSamAccountName {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "totalLength")]
pub total_length: Option<u8>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytabAdminActiveDirectoryLdapTlsCaSecret {
pub name: String,
pub namespace: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytabAdminActiveDirectoryPasswordCacheSecret {
pub name: String,
pub namespace: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytabAdminMit {
#[serde(rename = "kadminServer")]
pub kadmin_server: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretClassBackendKerberosKeytabAdminKeytabSecret {
pub name: String,
pub namespace: String,
}