controller/traefik/
middleware_tcp_crd.rs

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