#[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 = "authentication.stackable.tech", version = "v1alpha1", kind = "AuthenticationClass", plural = "authenticationclasses")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct AuthenticationClassSpec {
pub protocol: AuthenticationClassProtocol,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocol {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ldap: Option<AuthenticationClassProtocolLdap>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdap {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bindCredentials")]
pub bind_credentials: Option<AuthenticationClassProtocolLdapBindCredentials>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "emailField")]
pub email_field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "firstnameField")]
pub firstname_field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "groupField")]
pub group_field: Option<String>,
pub hostname: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastnameField")]
pub lastname_field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<u16>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "searchBase")]
pub search_base: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "searchFilter")]
pub search_filter: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<AuthenticationClassProtocolLdapTls>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "uidField")]
pub uid_field: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapBindCredentials {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<AuthenticationClassProtocolLdapBindCredentialsScope>,
#[serde(rename = "secretClass")]
pub secret_class: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapBindCredentialsScope {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub node: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pod: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapTls {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub insecure: Option<AuthenticationClassProtocolLdapTlsInsecure>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mutualVerification")]
pub mutual_verification: Option<AuthenticationClassProtocolLdapTlsMutualVerification>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverVerification")]
pub server_verification: Option<AuthenticationClassProtocolLdapTlsServerVerification>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "systemProvided")]
pub system_provided: Option<AuthenticationClassProtocolLdapTlsSystemProvided>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapTlsInsecure {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapTlsMutualVerification {
#[serde(rename = "secretClass")]
pub secret_class: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapTlsServerVerification {
#[serde(rename = "serverCaCert")]
pub server_ca_cert: AuthenticationClassProtocolLdapTlsServerVerificationServerCaCert,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapTlsServerVerificationServerCaCert {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub configmap: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretClass")]
pub secret_class: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthenticationClassProtocolLdapTlsSystemProvided {
}