gateway_api/apis/experimental/
common.rs

1// WARNING: generated file - manual changes will be overriden
2
3#[allow(unused_imports)]
4mod prelude {
5    pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
6    pub use kube_derive::CustomResource;
7    pub use schemars::JsonSchema;
8    pub use serde::{Deserialize, Serialize};
9    pub use std::collections::BTreeMap;
10}
11use self::prelude::*;
12#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
13pub enum GRPCFilterType {
14    ResponseHeaderModifier,
15    RequestHeaderModifier,
16    RequestMirror,
17    ExtensionRef,
18}
19#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
20pub enum HTTPFilterType {
21    RequestHeaderModifier,
22    ResponseHeaderModifier,
23    RequestMirror,
24    RequestRedirect,
25    #[serde(rename = "URLRewrite")]
26    UrlRewrite,
27    ExtensionRef,
28}
29#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
30pub enum HeaderMatchType {
31    Exact,
32    RegularExpression,
33}
34#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
35pub enum PersistenceCookieConfigLifetime {
36    Permanent,
37    Session,
38}
39#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
40pub enum RedirectStatusCode {
41    #[serde(rename = "301")]
42    r#_301,
43    #[serde(rename = "302")]
44    r#_302,
45}
46#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
47pub enum RequestOperationType {
48    ReplaceFullPath,
49    ReplacePrefixMatch,
50}
51#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
52pub enum RequestRedirectScheme {
53    #[serde(rename = "http")]
54    Http,
55    #[serde(rename = "https")]
56    Https,
57}
58#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
59pub enum SessionPersistenceType {
60    Cookie,
61    Header,
62}
63#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
64pub struct BackendReference {
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub group: Option<String>,
67    #[serde(default, skip_serializing_if = "Option::is_none")]
68    pub kind: Option<String>,
69    pub name: String,
70    #[serde(default, skip_serializing_if = "Option::is_none")]
71    pub namespace: Option<String>,
72    #[serde(default, skip_serializing_if = "Option::is_none")]
73    pub port: Option<i32>,
74    #[serde(default, skip_serializing_if = "Option::is_none")]
75    pub weight: Option<i32>,
76}
77#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
78pub struct BackendTlsClientCertificateReference {
79    #[serde(default, skip_serializing_if = "Option::is_none")]
80    pub group: Option<String>,
81    #[serde(default, skip_serializing_if = "Option::is_none")]
82    pub kind: Option<String>,
83    pub name: String,
84    #[serde(default, skip_serializing_if = "Option::is_none")]
85    pub namespace: Option<String>,
86}
87#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
88pub struct GatewayAddress {
89    #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
90    pub r#type: Option<String>,
91    pub value: String,
92}
93#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
94pub struct GatewayInfrastructureParametersReference {
95    pub group: String,
96    pub kind: String,
97    pub name: String,
98}
99#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
100pub struct HTTPHeader {
101    pub name: String,
102    pub value: String,
103}
104#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
105pub struct Kind {
106    #[serde(default, skip_serializing_if = "Option::is_none")]
107    pub group: Option<String>,
108    pub kind: String,
109}
110#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
111pub struct ParametersReference {
112    pub group: String,
113    pub kind: String,
114    pub name: String,
115    #[serde(default, skip_serializing_if = "Option::is_none")]
116    pub namespace: Option<String>,
117}
118#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
119pub struct ParentReference {
120    #[serde(default, skip_serializing_if = "Option::is_none")]
121    pub group: Option<String>,
122    #[serde(default, skip_serializing_if = "Option::is_none")]
123    pub kind: Option<String>,
124    pub name: String,
125    #[serde(default, skip_serializing_if = "Option::is_none")]
126    pub namespace: Option<String>,
127    #[serde(default, skip_serializing_if = "Option::is_none")]
128    pub port: Option<i32>,
129    #[serde(
130        default,
131        skip_serializing_if = "Option::is_none",
132        rename = "sectionName"
133    )]
134    pub section_name: Option<String>,
135}
136#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
137pub struct RequestMirrorFraction {
138    #[serde(default, skip_serializing_if = "Option::is_none")]
139    pub denominator: Option<i32>,
140    pub numerator: i32,
141}
142#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
143pub struct RequestMirrorReference {
144    #[serde(default, skip_serializing_if = "Option::is_none")]
145    pub group: Option<String>,
146    #[serde(default, skip_serializing_if = "Option::is_none")]
147    pub kind: Option<String>,
148    pub name: String,
149    #[serde(default, skip_serializing_if = "Option::is_none")]
150    pub namespace: Option<String>,
151    #[serde(default, skip_serializing_if = "Option::is_none")]
152    pub port: Option<i32>,
153}
154#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
155pub struct CommonRouteRule {
156    #[serde(
157        default,
158        skip_serializing_if = "Option::is_none",
159        rename = "backendRefs"
160    )]
161    pub backend_refs: Option<Vec<BackendReference>>,
162    #[serde(default, skip_serializing_if = "Option::is_none")]
163    pub name: Option<String>,
164}
165#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
166pub struct HeaderMatch {
167    pub name: String,
168    #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
169    pub r#type: Option<HeaderMatchType>,
170    pub value: String,
171}
172#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
173pub struct HeaderModifier {
174    #[serde(default, skip_serializing_if = "Option::is_none")]
175    pub add: Option<Vec<HTTPHeader>>,
176    #[serde(default, skip_serializing_if = "Option::is_none")]
177    pub remove: Option<Vec<String>>,
178    #[serde(default, skip_serializing_if = "Option::is_none")]
179    pub set: Option<Vec<HTTPHeader>>,
180}
181#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
182pub struct ParentRouteStatus {
183    #[serde(default, skip_serializing_if = "Option::is_none")]
184    pub conditions: Option<Vec<Condition>>,
185    #[serde(rename = "controllerName")]
186    pub controller_name: String,
187    #[serde(rename = "parentRef")]
188    pub parent_ref: ParentReference,
189}
190#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
191pub struct RequestMirror {
192    #[serde(rename = "backendRef")]
193    pub backend_ref: RequestMirrorReference,
194    #[serde(default, skip_serializing_if = "Option::is_none")]
195    pub fraction: Option<RequestMirrorFraction>,
196    #[serde(default, skip_serializing_if = "Option::is_none")]
197    pub percent: Option<i32>,
198}
199#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
200pub struct RequestRedirectPath {
201    #[serde(
202        default,
203        skip_serializing_if = "Option::is_none",
204        rename = "replaceFullPath"
205    )]
206    pub replace_full_path: Option<String>,
207    #[serde(
208        default,
209        skip_serializing_if = "Option::is_none",
210        rename = "replacePrefixMatch"
211    )]
212    pub replace_prefix_match: Option<String>,
213    #[serde(rename = "type")]
214    pub r#type: RequestOperationType,
215}
216#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
217pub struct SessionPersistenceCookieConfig {
218    #[serde(
219        default,
220        skip_serializing_if = "Option::is_none",
221        rename = "lifetimeType"
222    )]
223    pub lifetime_type: Option<PersistenceCookieConfigLifetime>,
224}
225#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
226pub struct GRPCRouteFilter {
227    #[serde(
228        default,
229        skip_serializing_if = "Option::is_none",
230        rename = "extensionRef"
231    )]
232    pub extension_ref: Option<GatewayInfrastructureParametersReference>,
233    #[serde(
234        default,
235        skip_serializing_if = "Option::is_none",
236        rename = "requestHeaderModifier"
237    )]
238    pub request_header_modifier: Option<HeaderModifier>,
239    #[serde(
240        default,
241        skip_serializing_if = "Option::is_none",
242        rename = "requestMirror"
243    )]
244    pub request_mirror: Option<RequestMirror>,
245    #[serde(
246        default,
247        skip_serializing_if = "Option::is_none",
248        rename = "responseHeaderModifier"
249    )]
250    pub response_header_modifier: Option<HeaderModifier>,
251    #[serde(rename = "type")]
252    pub r#type: GRPCFilterType,
253}
254#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
255pub struct RequestRedirect {
256    #[serde(default, skip_serializing_if = "Option::is_none")]
257    pub hostname: Option<String>,
258    #[serde(default, skip_serializing_if = "Option::is_none")]
259    pub path: Option<RequestRedirectPath>,
260    #[serde(default, skip_serializing_if = "Option::is_none")]
261    pub port: Option<i32>,
262    #[serde(default, skip_serializing_if = "Option::is_none")]
263    pub scheme: Option<RequestRedirectScheme>,
264    #[serde(
265        default,
266        skip_serializing_if = "Option::is_none",
267        rename = "statusCode"
268    )]
269    pub status_code: Option<i64>,
270}
271#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
272pub struct HTTPRouteUrlRewrite {
273    #[serde(default, skip_serializing_if = "Option::is_none")]
274    pub hostname: Option<String>,
275    #[serde(default, skip_serializing_if = "Option::is_none")]
276    pub path: Option<RequestRedirectPath>,
277}
278#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
279pub struct RouteStatus {
280    pub parents: Vec<ParentRouteStatus>,
281}
282#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
283pub struct SessionPersistence {
284    #[serde(
285        default,
286        skip_serializing_if = "Option::is_none",
287        rename = "absoluteTimeout"
288    )]
289    pub absolute_timeout: Option<String>,
290    #[serde(
291        default,
292        skip_serializing_if = "Option::is_none",
293        rename = "cookieConfig"
294    )]
295    pub cookie_config: Option<SessionPersistenceCookieConfig>,
296    #[serde(
297        default,
298        skip_serializing_if = "Option::is_none",
299        rename = "idleTimeout"
300    )]
301    pub idle_timeout: Option<String>,
302    #[serde(
303        default,
304        skip_serializing_if = "Option::is_none",
305        rename = "sessionName"
306    )]
307    pub session_name: Option<String>,
308    #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
309    pub r#type: Option<SessionPersistenceType>,
310}
311#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, Default, PartialEq)]
312pub struct HTTPRouteBackendFilters {
313    #[serde(
314        default,
315        skip_serializing_if = "Option::is_none",
316        rename = "extensionRef"
317    )]
318    pub extension_ref: Option<GatewayInfrastructureParametersReference>,
319    #[serde(
320        default,
321        skip_serializing_if = "Option::is_none",
322        rename = "requestHeaderModifier"
323    )]
324    pub request_header_modifier: Option<HeaderModifier>,
325    #[serde(
326        default,
327        skip_serializing_if = "Option::is_none",
328        rename = "requestMirror"
329    )]
330    pub request_mirror: Option<RequestMirror>,
331    #[serde(
332        default,
333        skip_serializing_if = "Option::is_none",
334        rename = "requestRedirect"
335    )]
336    pub request_redirect: Option<RequestRedirect>,
337    #[serde(
338        default,
339        skip_serializing_if = "Option::is_none",
340        rename = "responseHeaderModifier"
341    )]
342    pub response_header_modifier: Option<HeaderModifier>,
343    #[serde(rename = "type")]
344    pub r#type: HTTPFilterType,
345    #[serde(
346        default,
347        skip_serializing_if = "Option::is_none",
348        rename = "urlRewrite"
349    )]
350    pub url_rewrite: Option<HTTPRouteUrlRewrite>,
351}