k8s_traefik_api/
ingressrouteudps.rs1#[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 pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
12}
13use self::prelude::*;
14
15#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
17#[kube(group = "traefik.io", version = "v1alpha1", kind = "IngressRouteUDP", plural = "ingressrouteudps")]
18#[kube(namespaced)]
19#[kube(derive="Default")]
20#[kube(derive="PartialEq")]
21pub struct IngressRouteUDPSpec {
22 #[serde(default, skip_serializing_if = "Option::is_none", rename = "entryPoints")]
27 #[builder(default, setter(strip_option))]
28 pub entry_points: Option<Vec<String>>,
29 #[builder(default)]
31 pub routes: Vec<IngressRouteUDPRoutes>,
32}
33
34#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
36pub struct IngressRouteUDPRoutes {
37 #[serde(default, skip_serializing_if = "Option::is_none")]
39 #[builder(default, setter(strip_option))]
40 pub services: Option<Vec<IngressRouteUDPRoutesServices>>,
41}
42
43#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
45pub struct IngressRouteUDPRoutesServices {
46 pub name: String,
48 #[serde(default, skip_serializing_if = "Option::is_none")]
50 #[builder(default, setter(strip_option))]
51 pub namespace: Option<String>,
52 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nativeLB")]
57 #[builder(default, setter(strip_option))]
58 pub native_lb: Option<bool>,
59 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePortLB")]
64 #[builder(default, setter(strip_option))]
65 pub node_port_lb: Option<bool>,
66 pub port: IntOrString,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
71 #[builder(default, setter(strip_option))]
72 pub weight: Option<i64>,
73}
74