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}