k8s_traefik_api/
middlewaretcps.rs

1// WARNING: generated by kopium - manual changes will be overwritten
2// kopium command: kopium middlewaretcps.traefik.io -A -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::CustomResource;
8    pub use typed_builder::TypedBuilder;
9    pub use schemars::JsonSchema;
10    pub use serde::{Serialize, Deserialize};
11}
12use self::prelude::*;
13
14/// MiddlewareTCPSpec defines the desired state of a MiddlewareTCP.
15#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
16#[kube(group = "traefik.io", version = "v1alpha1", kind = "MiddlewareTCP", plural = "middlewaretcps")]
17#[kube(namespaced)]
18#[kube(derive="Default")]
19#[kube(derive="PartialEq")]
20pub struct MiddlewareTCPSpec {
21    /// InFlightConn defines the InFlightConn middleware configuration.
22    #[serde(default, skip_serializing_if = "Option::is_none", rename = "inFlightConn")]
23    #[builder(default, setter(strip_option))]
24    pub in_flight_conn: Option<MiddlewareTCPInFlightConn>,
25    /// IPAllowList defines the IPAllowList middleware configuration.
26    /// This middleware accepts/refuses connections based on the client IP.
27    /// More info: https://doc.traefik.io/traefik/v3.3/middlewares/tcp/ipallowlist/
28    #[serde(default, skip_serializing_if = "Option::is_none", rename = "ipAllowList")]
29    #[builder(default, setter(strip_option))]
30    pub ip_allow_list: Option<MiddlewareTCPIpAllowList>,
31    /// IPWhiteList defines the IPWhiteList middleware configuration.
32    /// This middleware accepts/refuses connections based on the client IP.
33    /// Deprecated: please use IPAllowList instead.
34    /// More info: https://doc.traefik.io/traefik/v3.3/middlewares/tcp/ipwhitelist/
35    #[serde(default, skip_serializing_if = "Option::is_none", rename = "ipWhiteList")]
36    #[builder(default, setter(strip_option))]
37    pub ip_white_list: Option<MiddlewareTCPIpWhiteList>,
38}
39
40/// InFlightConn defines the InFlightConn middleware configuration.
41#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
42pub struct MiddlewareTCPInFlightConn {
43    /// Amount defines the maximum amount of allowed simultaneous connections.
44    /// The middleware closes the connection if there are already amount connections opened.
45    #[serde(default, skip_serializing_if = "Option::is_none")]
46    #[builder(default, setter(strip_option))]
47    pub amount: Option<i64>,
48}
49
50/// IPAllowList defines the IPAllowList middleware configuration.
51/// This middleware accepts/refuses connections based on the client IP.
52/// More info: https://doc.traefik.io/traefik/v3.3/middlewares/tcp/ipallowlist/
53#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
54pub struct MiddlewareTCPIpAllowList {
55    /// SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation).
56    #[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceRange")]
57    #[builder(default, setter(strip_option))]
58    pub source_range: Option<Vec<String>>,
59}
60
61/// IPWhiteList defines the IPWhiteList middleware configuration.
62/// This middleware accepts/refuses connections based on the client IP.
63/// Deprecated: please use IPAllowList instead.
64/// More info: https://doc.traefik.io/traefik/v3.3/middlewares/tcp/ipwhitelist/
65#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
66pub struct MiddlewareTCPIpWhiteList {
67    /// SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation).
68    #[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceRange")]
69    #[builder(default, setter(strip_option))]
70    pub source_range: Option<Vec<String>>,
71}
72