#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use typed_builder::TypedBuilder;
pub use schemars::JsonSchema;
pub use serde::{Serialize, Deserialize};
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
#[kube(group = "traefik.io", version = "v1alpha1", kind = "ServersTransport", plural = "serverstransports")]
#[kube(namespaced)]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct ServersTransportSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "certificatesSecrets")]
#[builder(default, setter(strip_option))]
pub certificates_secrets: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "disableHTTP2")]
#[builder(default, setter(strip_option))]
pub disable_http2: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "forwardingTimeouts")]
#[builder(default, setter(strip_option))]
pub forwarding_timeouts: Option<ServersTransportForwardingTimeouts>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "insecureSkipVerify")]
#[builder(default, setter(strip_option))]
pub insecure_skip_verify: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxIdleConnsPerHost")]
#[builder(default, setter(strip_option))]
pub max_idle_conns_per_host: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "peerCertURI")]
#[builder(default, setter(strip_option))]
pub peer_cert_uri: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "rootCAsSecrets")]
#[builder(default, setter(strip_option))]
pub root_c_as_secrets: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverName")]
#[builder(default, setter(strip_option))]
pub server_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[builder(default, setter(strip_option))]
pub spiffe: Option<ServersTransportSpiffe>,
}
#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
pub struct ServersTransportForwardingTimeouts {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dialTimeout")]
#[builder(default, setter(strip_option))]
pub dial_timeout: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "idleConnTimeout")]
#[builder(default, setter(strip_option))]
pub idle_conn_timeout: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pingTimeout")]
#[builder(default, setter(strip_option))]
pub ping_timeout: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readIdleTimeout")]
#[builder(default, setter(strip_option))]
pub read_idle_timeout: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "responseHeaderTimeout")]
#[builder(default, setter(strip_option))]
pub response_header_timeout: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
pub struct ServersTransportSpiffe {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[builder(default, setter(strip_option))]
pub ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "trustDomain")]
#[builder(default, setter(strip_option))]
pub trust_domain: Option<String>,
}