rws_gateway_api/gateway_api/
resources.rs1use kube::core::{ApiResource, GroupVersionKind, Object};
6
7use super::types::*;
8
9pub type GatewayClass = Object<GatewayClassSpec, GatewayClassStatus>;
10pub type Gateway = Object<GatewaySpec, GatewayStatus>;
11pub type HttpRoute = Object<HttpRouteSpec, RouteStatus>;
12pub type GrpcRoute = Object<GrpcRouteSpec, RouteStatus>;
13pub type TlsRoute = Object<L4RouteSpec, RouteStatus>;
14pub type TcpRoute = Object<L4RouteSpec, RouteStatus>;
15pub type UdpRoute = Object<L4RouteSpec, RouteStatus>;
16pub type ReferenceGrant = Object<ReferenceGrantSpec, NoStatus>;
17pub type ListenerSet = Object<ListenerSetSpec, ListenerSetStatus>;
18pub type BackendTlsPolicy = Object<BackendTlsPolicySpec, PolicyStatus>;
19
20fn resource(version: &str, kind: &str, plural: &str) -> ApiResource {
21 ApiResource::from_gvk_with_plural(&GroupVersionKind::gvk(GATEWAY_GROUP, version, kind), plural)
22}
23
24pub fn gateway_classes() -> ApiResource {
25 resource("v1", "GatewayClass", "gatewayclasses")
26}
27
28pub fn gateways() -> ApiResource {
29 resource("v1", "Gateway", "gateways")
30}
31
32pub fn http_routes() -> ApiResource {
33 resource("v1", "HTTPRoute", "httproutes")
34}
35
36pub fn grpc_routes() -> ApiResource {
37 resource("v1", "GRPCRoute", "grpcroutes")
38}
39
40pub fn tls_routes() -> ApiResource {
41 resource("v1", "TLSRoute", "tlsroutes")
42}
43
44pub fn tcp_routes() -> ApiResource {
45 resource("v1", "TCPRoute", "tcproutes")
46}
47
48pub fn udp_routes() -> ApiResource {
49 resource("v1", "UDPRoute", "udproutes")
50}
51
52pub fn listener_sets() -> ApiResource {
53 resource("v1", "ListenerSet", "listenersets")
54}
55
56pub fn backend_tls_policies() -> ApiResource {
57 resource("v1", "BackendTLSPolicy", "backendtlspolicies")
58}
59
60pub fn reference_grants() -> ApiResource {
61 resource("v1beta1", "ReferenceGrant", "referencegrants")
62}