#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use typed_builder::TypedBuilder;
pub use schemars::JsonSchema;
pub use serde::{Serialize, Deserialize};
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
#[kube(group = "traefik.io", version = "v1alpha1", kind = "IngressRouteUDP", plural = "ingressrouteudps")]
#[kube(namespaced)]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct IngressRouteUDPSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "entryPoints")]
#[builder(default, setter(strip_option))]
pub entry_points: Option<Vec<String>>,
#[builder(default)]
pub routes: Vec<IngressRouteUDPRoutes>,
}
#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
pub struct IngressRouteUDPRoutes {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[builder(default, setter(strip_option))]
pub services: Option<Vec<IngressRouteUDPRoutesServices>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, TypedBuilder, Default, PartialEq, JsonSchema)]
pub struct IngressRouteUDPRoutesServices {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[builder(default, setter(strip_option))]
pub namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nativeLB")]
#[builder(default, setter(strip_option))]
pub native_lb: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePortLB")]
#[builder(default, setter(strip_option))]
pub node_port_lb: Option<bool>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[builder(default, setter(strip_option))]
pub weight: Option<i64>,
}