1#[allow(unused_imports)]
6mod prelude {
7 pub use kube::CustomResource;
8 pub use typed_builder::TypedBuilder;
9 pub use schemars::JsonSchema;
10 pub use serde::{Serialize, Deserialize};
11 pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
12}
13use self::prelude::*;
14
15#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
17#[kube(group = "traefik.io", version = "v1alpha1", kind = "ServersTransport", plural = "serverstransports")]
18#[kube(namespaced)]
19#[kube(derive="Default")]
20#[kube(derive="PartialEq")]
21pub struct ServersTransportSpec {
22 #[serde(default, skip_serializing_if = "Option::is_none", rename = "certificatesSecrets")]
24 #[builder(default, setter(strip_option))]
25 pub certificates_secrets: Option<Vec<String>>,
26 #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableHTTP2")]
28 #[builder(default, setter(strip_option))]
29 pub disable_http2: Option<bool>,
30 #[serde(default, skip_serializing_if = "Option::is_none", rename = "forwardingTimeouts")]
32 #[builder(default, setter(strip_option))]
33 pub forwarding_timeouts: Option<ServersTransportForwardingTimeouts>,
34 #[serde(default, skip_serializing_if = "Option::is_none", rename = "insecureSkipVerify")]
36 #[builder(default, setter(strip_option))]
37 pub insecure_skip_verify: Option<bool>,
38 #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxIdleConnsPerHost")]
40 #[builder(default, setter(strip_option))]
41 pub max_idle_conns_per_host: Option<i64>,
42 #[serde(default, skip_serializing_if = "Option::is_none", rename = "peerCertURI")]
44 #[builder(default, setter(strip_option))]
45 pub peer_cert_uri: Option<String>,
46 #[serde(default, skip_serializing_if = "Option::is_none", rename = "rootCAsSecrets")]
48 #[builder(default, setter(strip_option))]
49 pub root_c_as_secrets: Option<Vec<String>>,
50 #[serde(default, skip_serializing_if = "Option::is_none", rename = "serverName")]
52 #[builder(default, setter(strip_option))]
53 pub server_name: Option<String>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
56 #[builder(default, setter(strip_option))]
57 pub spiffe: Option<ServersTransportSpiffe>,
58}
59
60#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
62pub struct ServersTransportForwardingTimeouts {
63 #[serde(default, skip_serializing_if = "Option::is_none", rename = "dialTimeout")]
65 #[builder(default, setter(strip_option))]
66 pub dial_timeout: Option<IntOrString>,
67 #[serde(default, skip_serializing_if = "Option::is_none", rename = "idleConnTimeout")]
69 #[builder(default, setter(strip_option))]
70 pub idle_conn_timeout: Option<IntOrString>,
71 #[serde(default, skip_serializing_if = "Option::is_none", rename = "pingTimeout")]
73 #[builder(default, setter(strip_option))]
74 pub ping_timeout: Option<IntOrString>,
75 #[serde(default, skip_serializing_if = "Option::is_none", rename = "readIdleTimeout")]
77 #[builder(default, setter(strip_option))]
78 pub read_idle_timeout: Option<IntOrString>,
79 #[serde(default, skip_serializing_if = "Option::is_none", rename = "responseHeaderTimeout")]
81 #[builder(default, setter(strip_option))]
82 pub response_header_timeout: Option<IntOrString>,
83}
84
85#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
87pub struct ServersTransportSpiffe {
88 #[serde(default, skip_serializing_if = "Option::is_none")]
90 #[builder(default, setter(strip_option))]
91 pub ids: Option<Vec<String>>,
92 #[serde(default, skip_serializing_if = "Option::is_none", rename = "trustDomain")]
94 #[builder(default, setter(strip_option))]
95 pub trust_domain: Option<String>,
96}
97