#[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 = "networking.istio.io", version = "v1alpha3", kind = "Gateway", plural = "gateways")]
#[kube(namespaced)]
pub struct GatewaySpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub servers: Option<Vec<GatewayServers>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct GatewayServers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultEndpoint")]
pub default_endpoint: Option<String>,
pub hosts: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub port: GatewayServersPort,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<GatewayServersTls>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct GatewayServersPort {
pub name: String,
pub number: i64,
pub protocol: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetPort")]
pub target_port: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct GatewayServersTls {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caCertificates")]
pub ca_certificates: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caCrl")]
pub ca_crl: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cipherSuites")]
pub cipher_suites: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "credentialName")]
pub credential_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpsRedirect")]
pub https_redirect: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxProtocolVersion")]
pub max_protocol_version: Option<GatewayServersTlsMaxProtocolVersion>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minProtocolVersion")]
pub min_protocol_version: Option<GatewayServersTlsMinProtocolVersion>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<GatewayServersTlsMode>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "privateKey")]
pub private_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverCertificate")]
pub server_certificate: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subjectAltNames")]
pub subject_alt_names: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "verifyCertificateHash")]
pub verify_certificate_hash: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "verifyCertificateSpki")]
pub verify_certificate_spki: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum GatewayServersTlsMaxProtocolVersion {
#[serde(rename = "TLS_AUTO")]
TlsAuto,
#[serde(rename = "TLSV1_0")]
Tlsv10,
#[serde(rename = "TLSV1_1")]
Tlsv11,
#[serde(rename = "TLSV1_2")]
Tlsv12,
#[serde(rename = "TLSV1_3")]
Tlsv13,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum GatewayServersTlsMinProtocolVersion {
#[serde(rename = "TLS_AUTO")]
TlsAuto,
#[serde(rename = "TLSV1_0")]
Tlsv10,
#[serde(rename = "TLSV1_1")]
Tlsv11,
#[serde(rename = "TLSV1_2")]
Tlsv12,
#[serde(rename = "TLSV1_3")]
Tlsv13,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum GatewayServersTlsMode {
#[serde(rename = "PASSTHROUGH")]
Passthrough,
#[serde(rename = "SIMPLE")]
Simple,
#[serde(rename = "MUTUAL")]
Mutual,
#[serde(rename = "AUTO_PASSTHROUGH")]
AutoPassthrough,
#[serde(rename = "ISTIO_MUTUAL")]
IstioMutual,
#[serde(rename = "OPTIONAL_MUTUAL")]
OptionalMutual,
}