#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use schemars::JsonSchema;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)]
#[kube(group = "security.istio.io", version = "v1", kind = "PeerAuthentication", plural = "peerauthentications")]
#[kube(namespaced)]
pub struct PeerAuthenticationSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mtls: Option<PeerAuthenticationMtls>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portLevelMtls")]
pub port_level_mtls: Option<BTreeMap<String, PeerAuthenticationPortLevelMtls>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<PeerAuthenticationSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PeerAuthenticationMtls {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<PeerAuthenticationMtlsMode>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum PeerAuthenticationMtlsMode {
#[serde(rename = "UNSET")]
Unset,
#[serde(rename = "DISABLE")]
Disable,
#[serde(rename = "PERMISSIVE")]
Permissive,
#[serde(rename = "STRICT")]
Strict,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PeerAuthenticationPortLevelMtls {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<PeerAuthenticationPortLevelMtlsMode>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum PeerAuthenticationPortLevelMtlsMode {
#[serde(rename = "UNSET")]
Unset,
#[serde(rename = "DISABLE")]
Disable,
#[serde(rename = "PERMISSIVE")]
Permissive,
#[serde(rename = "STRICT")]
Strict,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PeerAuthenticationSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}