k8s_crds_traefik/
middlewaretcps.rs1#[allow(unused_imports)]
6mod prelude {
7 pub use kube_derive::CustomResource;
8 #[cfg(feature = "schemars")]
9 pub use schemars::JsonSchema;
10 pub use serde::{Deserialize, Serialize};
11 #[cfg(feature = "builder")]
12 pub use typed_builder::TypedBuilder;
13}
14use self::prelude::*;
15
16#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
18#[cfg_attr(feature = "builder", derive(TypedBuilder))]
19#[cfg_attr(feature = "schemars", derive(JsonSchema))]
20#[cfg_attr(not(feature = "schemars"), kube(schema = "disabled"))]
21#[kube(
22 group = "traefik.io",
23 version = "v1alpha1",
24 kind = "MiddlewareTCP",
25 plural = "middlewaretcps"
26)]
27#[kube(namespaced)]
28#[kube(derive = "Default")]
29#[kube(derive = "PartialEq")]
30pub struct MiddlewareTCPSpec {
31 #[serde(
33 default,
34 skip_serializing_if = "Option::is_none",
35 rename = "inFlightConn"
36 )]
37 #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
38 pub in_flight_conn: Option<MiddlewareTCPInFlightConn>,
39 #[serde(
43 default,
44 skip_serializing_if = "Option::is_none",
45 rename = "ipAllowList"
46 )]
47 #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
48 pub ip_allow_list: Option<MiddlewareTCPIpAllowList>,
49 #[serde(
54 default,
55 skip_serializing_if = "Option::is_none",
56 rename = "ipWhiteList"
57 )]
58 #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
59 pub ip_white_list: Option<MiddlewareTCPIpWhiteList>,
60}
61
62#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
64#[cfg_attr(feature = "builder", derive(TypedBuilder))]
65#[cfg_attr(feature = "schemars", derive(JsonSchema))]
66pub struct MiddlewareTCPInFlightConn {
67 #[serde(default, skip_serializing_if = "Option::is_none")]
70 #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
71 pub amount: Option<i64>,
72}
73
74#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
78#[cfg_attr(feature = "builder", derive(TypedBuilder))]
79#[cfg_attr(feature = "schemars", derive(JsonSchema))]
80pub struct MiddlewareTCPIpAllowList {
81 #[serde(
83 default,
84 skip_serializing_if = "Option::is_none",
85 rename = "sourceRange"
86 )]
87 #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
88 pub source_range: Option<Vec<String>>,
89}
90
91#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
96#[cfg_attr(feature = "builder", derive(TypedBuilder))]
97#[cfg_attr(feature = "schemars", derive(JsonSchema))]
98pub struct MiddlewareTCPIpWhiteList {
99 #[serde(
101 default,
102 skip_serializing_if = "Option::is_none",
103 rename = "sourceRange"
104 )]
105 #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
106 pub source_range: Option<Vec<String>>,
107}