k8s_crds_traefik/
middlewaretcps.rs

1// WARNING: generated by kopium - manual changes will be overwritten
2// kopium command: kopium -f middlewaretcps.yml --schema=derived --docs -b --derive=Default --derive=PartialEq --smart-derive-elision
3// kopium version: 0.21.2
4
5#[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/// MiddlewareTCPSpec defines the desired state of a MiddlewareTCP.
17#[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    /// InFlightConn defines the InFlightConn middleware configuration.
32    #[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    /// IPAllowList defines the IPAllowList middleware configuration.
40    /// This middleware accepts/refuses connections based on the client IP.
41    /// More info: https://doc.traefik.io/traefik/v3.6/reference/routing-configuration/tcp/middlewares/ipallowlist/
42    #[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    /// IPWhiteList defines the IPWhiteList middleware configuration.
50    /// This middleware accepts/refuses connections based on the client IP.
51    /// Deprecated: please use IPAllowList instead.
52    /// More info: https://doc.traefik.io/traefik/v3.6/reference/routing-configuration/tcp/middlewares/ipwhitelist/
53    #[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/// InFlightConn defines the InFlightConn middleware configuration.
63#[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    /// Amount defines the maximum amount of allowed simultaneous connections.
68    /// The middleware closes the connection if there are already amount connections opened.
69    #[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/// IPAllowList defines the IPAllowList middleware configuration.
75/// This middleware accepts/refuses connections based on the client IP.
76/// More info: https://doc.traefik.io/traefik/v3.6/reference/routing-configuration/tcp/middlewares/ipallowlist/
77#[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    /// SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation).
82    #[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/// IPWhiteList defines the IPWhiteList middleware configuration.
92/// This middleware accepts/refuses connections based on the client IP.
93/// Deprecated: please use IPAllowList instead.
94/// More info: https://doc.traefik.io/traefik/v3.6/reference/routing-configuration/tcp/middlewares/ipwhitelist/
95#[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    /// SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation).
100    #[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}