@@ -10,18 +10,9 @@ mod prelude {
10
10
}
11
11
use self :: prelude:: * ;
12
12
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
13
- pub struct RouteRef {
14
- #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
15
- pub group : Option < String > ,
16
- #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
17
- pub kind : Option < String > ,
13
+ pub struct HTTPHeader {
18
14
pub name : String ,
19
- #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
20
- pub namespace : Option < String > ,
21
- #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
22
- pub port : Option < i32 > ,
23
- #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "sectionName" ) ]
24
- pub section_name : Option < String > ,
15
+ pub value : String ,
25
16
}
26
17
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
27
18
pub struct MirrorBackendRef {
@@ -42,105 +33,210 @@ pub struct Kind {
42
33
pub kind : String ,
43
34
}
44
35
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
45
- pub struct ExtensionBackendRef {
46
- pub group : String ,
47
- pub kind : String ,
48
- pub name : String ,
49
- }
50
- #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
51
36
pub struct GatewayAddress {
52
37
#[ serde( default , skip_serializing_if = "Option::is_none" , rename = "type" ) ]
53
38
pub r#type : Option < String > ,
54
39
pub value : String ,
55
40
}
56
41
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
57
- pub struct HeaderModifierRules {
42
+ pub struct RouteRef {
43
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
44
+ pub group : Option < String > ,
45
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
46
+ pub kind : Option < String > ,
58
47
pub name : String ,
59
- pub value : String ,
48
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
49
+ pub namespace : Option < String > ,
50
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
51
+ pub port : Option < i32 > ,
52
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "sectionName" ) ]
53
+ pub section_name : Option < String > ,
60
54
}
61
- /// RequestRedirect defines a schema for a filter that responds to the
62
- /// request with an HTTP redirection.
55
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
56
+ pub struct ExtensionBackendRef {
57
+ pub group : String ,
58
+ pub kind : String ,
59
+ pub name : String ,
60
+ }
61
+ /// GRPCHeaderMatch describes how to select a gRPC route by matching gRPC request
62
+ /// headers.
63
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
64
+ pub enum HeaderMatchesType {
65
+ Exact ,
66
+ RegularExpression ,
67
+ }
68
+ /// Path defines parameters used to modify the path of the incoming request.
69
+ /// The modified path is then used to construct the `Location` header. When
70
+ /// empty, the request path is used as-is.
63
71
///
64
- /// Support: Core
72
+ /// Support: Extended
65
73
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
66
- pub enum FiltersHTTPRedirectRequestRouteRulesScheme {
67
- #[ serde( rename = "http" ) ]
68
- Http ,
69
- #[ serde( rename = "https" ) ]
70
- Https ,
74
+ pub enum HTTPPathType {
75
+ ReplaceFullPath ,
76
+ ReplacePrefixMatch ,
71
77
}
72
78
/// RequestRedirect defines a schema for a filter that responds to the
73
79
/// request with an HTTP redirection.
74
80
///
75
81
/// Support: Core
76
82
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
77
- pub enum CodeFiltersHTTPRedirectRequestRouteRulesStatus {
83
+ pub enum RedirectStatusCode {
78
84
#[ serde( rename = "301" ) ]
79
85
r#_301,
80
86
#[ serde( rename = "302" ) ]
81
87
r#_302,
82
88
}
83
- /// GRPCRouteFilter defines processing steps that must be completed during the
84
- /// request or response lifecycle. GRPCRouteFilters are meant as an extension
89
+ /// HTTPRouteFilter defines processing steps that must be completed during the
90
+ /// request or response lifecycle. HTTPRouteFilters are meant as an extension
85
91
/// point to express processing that may be done in Gateway implementations. Some
86
92
/// examples include request or response modification, implementing
87
93
/// authentication strategies, rate-limiting, and traffic shaping. API
88
94
/// guarantee/conformance is defined based on the type of the filter.
89
95
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
90
- pub enum FiltersGRPCRouteRulesType {
91
- ResponseHeaderModifier ,
96
+ pub enum HTTPFilterType {
92
97
RequestHeaderModifier ,
98
+ ResponseHeaderModifier ,
93
99
RequestMirror ,
100
+ RequestRedirect ,
101
+ #[ serde( rename = "URLRewrite" ) ]
102
+ UrlRewrite ,
94
103
ExtensionRef ,
95
104
}
96
- /// GRPCHeaderMatch describes how to select a gRPC route by matching gRPC request
97
- /// headers.
98
- #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
99
- pub enum MatchesRouteRulesType {
100
- Exact ,
101
- RegularExpression ,
102
- }
103
- /// Path defines parameters used to modify the path of the incoming request.
104
- /// The modified path is then used to construct the `Location` header. When
105
- /// empty, the request path is used as-is.
105
+ /// RequestRedirect defines a schema for a filter that responds to the
106
+ /// request with an HTTP redirection.
106
107
///
107
- /// Support: Extended
108
+ /// Support: Core
108
109
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
109
- pub enum FiltersHTTPPathRouteRulesType {
110
- ReplaceFullPath ,
111
- ReplacePrefixMatch ,
110
+ pub enum HTTPRedirectScheme {
111
+ #[ serde( rename = "http" ) ]
112
+ Http ,
113
+ #[ serde( rename = "https" ) ]
114
+ Https ,
112
115
}
113
- /// HTTPRouteFilter defines processing steps that must be completed during the
114
- /// request or response lifecycle. HTTPRouteFilters are meant as an extension
116
+ /// GRPCRouteFilter defines processing steps that must be completed during the
117
+ /// request or response lifecycle. GRPCRouteFilters are meant as an extension
115
118
/// point to express processing that may be done in Gateway implementations. Some
116
119
/// examples include request or response modification, implementing
117
120
/// authentication strategies, rate-limiting, and traffic shaping. API
118
121
/// guarantee/conformance is defined based on the type of the filter.
119
122
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
120
- pub enum FiltersHTTPRouteRulesType {
121
- RequestHeaderModifier ,
123
+ pub enum GRPCFilterType {
122
124
ResponseHeaderModifier ,
125
+ RequestHeaderModifier ,
123
126
RequestMirror ,
124
- RequestRedirect ,
125
- #[ serde( rename = "URLRewrite" ) ]
126
- UrlRewrite ,
127
127
ExtensionRef ,
128
128
}
129
-
130
-
131
- // Next attempt
132
-
133
129
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
134
- pub struct FilterMirrorRouteRules {
130
+ pub struct ParentsRouteStatus {
131
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
132
+ pub conditions : Option < Vec < Condition > > ,
133
+ #[ serde( rename = "controllerName" ) ]
134
+ pub controller_name : String ,
135
+ #[ serde( rename = "parentRef" ) ]
136
+ pub parent_ref : RouteRef ,
137
+ }
138
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
139
+ pub struct HTTPPathModifier {
140
+ #[ serde(
141
+ default ,
142
+ skip_serializing_if = "Option::is_none" ,
143
+ rename = "replaceFullPath"
144
+ ) ]
145
+ pub replace_full_path : Option < String > ,
146
+ #[ serde(
147
+ default ,
148
+ skip_serializing_if = "Option::is_none" ,
149
+ rename = "replacePrefixMatch"
150
+ ) ]
151
+ pub replace_prefix_match : Option < String > ,
152
+ #[ serde( rename = "type" ) ]
153
+ pub r#type : HTTPPathType ,
154
+ }
155
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
156
+ pub struct HeaderModifier {
157
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
158
+ pub add : Option < Vec < HTTPHeader > > ,
159
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
160
+ pub remove : Option < Vec < String > > ,
161
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
162
+ pub set : Option < Vec < HTTPHeader > > ,
163
+ }
164
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
165
+ pub struct RequestMirrorModifier {
135
166
#[ serde( rename = "backendRef" ) ]
136
167
pub backend_ref : MirrorBackendRef ,
137
168
}
138
169
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
139
- pub struct FilterHeaderRouteRules {
170
+ pub struct HTTPRequestRewrite {
140
171
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
141
- pub add : Option < Vec < HeaderModifierRules > > ,
172
+ pub hostname : Option < String > ,
142
173
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
143
- pub remove : Option < Vec < String > > ,
174
+ pub path : Option < HTTPPathModifier > ,
175
+ }
176
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
177
+ pub struct HTTPRequestRedirect {
178
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
179
+ pub hostname : Option < String > ,
144
180
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
145
- pub set : Option < Vec < HeaderModifierRules > > ,
181
+ pub path : Option < HTTPPathModifier > ,
182
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
183
+ pub port : Option < i32 > ,
184
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
185
+ pub scheme : Option < HTTPRedirectScheme > ,
186
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "statusCode" ) ]
187
+ pub status_code : Option < i64 > ,
188
+ }
189
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
190
+ pub struct GRPCRouteFilter {
191
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "extensionRef" ) ]
192
+ pub extension_ref : Option < ExtensionBackendRef > ,
193
+ #[ serde(
194
+ default ,
195
+ skip_serializing_if = "Option::is_none" ,
196
+ rename = "requestHeaderModifier"
197
+ ) ]
198
+ pub request_header_modifier : Option < HeaderModifier > ,
199
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "requestMirror" ) ]
200
+ pub request_mirror : Option < RequestMirrorModifier > ,
201
+ #[ serde(
202
+ default ,
203
+ skip_serializing_if = "Option::is_none" ,
204
+ rename = "responseHeaderModifier"
205
+ ) ]
206
+ pub response_header_modifier : Option < HeaderModifier > ,
207
+ #[ serde( rename = "type" ) ]
208
+ pub r#type : GRPCFilterType ,
209
+ }
210
+
211
+
212
+ // Next attempt
213
+
214
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
215
+ pub struct HTTPRouteFilter {
216
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "extensionRef" ) ]
217
+ pub extension_ref : Option < ExtensionBackendRef > ,
218
+ #[ serde(
219
+ default ,
220
+ skip_serializing_if = "Option::is_none" ,
221
+ rename = "requestHeaderModifier"
222
+ ) ]
223
+ pub request_header_modifier : Option < HeaderModifier > ,
224
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "requestMirror" ) ]
225
+ pub request_mirror : Option < RequestMirrorModifier > ,
226
+ #[ serde(
227
+ default ,
228
+ skip_serializing_if = "Option::is_none" ,
229
+ rename = "requestRedirect"
230
+ ) ]
231
+ pub request_redirect : Option < HTTPRequestRedirect > ,
232
+ #[ serde(
233
+ default ,
234
+ skip_serializing_if = "Option::is_none" ,
235
+ rename = "responseHeaderModifier"
236
+ ) ]
237
+ pub response_header_modifier : Option < HeaderModifier > ,
238
+ #[ serde( rename = "type" ) ]
239
+ pub r#type : HTTPFilterType ,
240
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "urlRewrite" ) ]
241
+ pub url_rewrite : Option < HTTPRequestRewrite > ,
146
242
}
0 commit comments