@@ -15,7 +15,7 @@ pub struct HTTPHeader {
15
15
pub value : String ,
16
16
}
17
17
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
18
- pub struct MirrorBackendRef {
18
+ pub struct RouteRef {
19
19
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
20
20
pub group : Option < String > ,
21
21
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
@@ -25,21 +25,11 @@ pub struct MirrorBackendRef {
25
25
pub namespace : Option < String > ,
26
26
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
27
27
pub port : Option < i32 > ,
28
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "sectionName" ) ]
29
+ pub section_name : Option < String > ,
28
30
}
29
31
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
30
- pub struct Kind {
31
- #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
32
- pub group : Option < String > ,
33
- pub kind : String ,
34
- }
35
- #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
36
- pub struct GatewayAddress {
37
- #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "type" ) ]
38
- pub r#type : Option < String > ,
39
- pub value : String ,
40
- }
41
- #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
42
- pub struct RouteRef {
32
+ pub struct RequestMirrorRef {
43
33
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
44
34
pub group : Option < String > ,
45
35
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
@@ -49,29 +39,32 @@ pub struct RouteRef {
49
39
pub namespace : Option < String > ,
50
40
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
51
41
pub port : Option < i32 > ,
52
- #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "sectionName" ) ]
53
- pub section_name : Option < String > ,
54
42
}
55
43
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
56
- pub struct ExtensionBackendRef {
44
+ pub struct Kind {
45
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
46
+ pub group : Option < String > ,
47
+ pub kind : String ,
48
+ }
49
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
50
+ pub struct GatewayInfrastructureParametersRef {
57
51
pub group : String ,
58
52
pub kind : String ,
59
53
pub name : String ,
60
54
}
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 ,
55
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
56
+ pub struct GatewayAddress {
57
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "type" ) ]
58
+ pub r#type : Option < String > ,
59
+ pub value : String ,
67
60
}
68
61
/// Path defines parameters used to modify the path of the incoming request.
69
62
/// The modified path is then used to construct the `Location` header. When
70
63
/// empty, the request path is used as-is.
71
64
///
72
65
/// Support: Extended
73
66
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
74
- pub enum HTTPPathType {
67
+ pub enum RequestOperationType {
75
68
ReplaceFullPath ,
76
69
ReplacePrefixMatch ,
77
70
}
@@ -86,57 +79,60 @@ pub enum RedirectStatusCode {
86
79
#[ serde( rename = "302" ) ]
87
80
r#_302,
88
81
}
89
- /// HTTPRouteFilter defines processing steps that must be completed during the
90
- /// request or response lifecycle. HTTPRouteFilters are meant as an extension
82
+ /// GRPCHeaderMatch describes how to select a gRPC route by matching gRPC request
83
+ /// headers.
84
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
85
+ pub enum HeaderMatchType {
86
+ Exact ,
87
+ RegularExpression ,
88
+ }
89
+ /// GRPCRouteFilter defines processing steps that must be completed during the
90
+ /// request or response lifecycle. GRPCRouteFilters are meant as an extension
91
91
/// point to express processing that may be done in Gateway implementations. Some
92
92
/// examples include request or response modification, implementing
93
93
/// authentication strategies, rate-limiting, and traffic shaping. API
94
94
/// guarantee/conformance is defined based on the type of the filter.
95
95
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
96
- pub enum HTTPFilterType {
97
- RequestHeaderModifier ,
96
+ pub enum GRPCFilterType {
98
97
ResponseHeaderModifier ,
98
+ RequestHeaderModifier ,
99
99
RequestMirror ,
100
- RequestRedirect ,
101
- #[ serde( rename = "URLRewrite" ) ]
102
- UrlRewrite ,
103
100
ExtensionRef ,
104
101
}
105
102
/// RequestRedirect defines a schema for a filter that responds to the
106
103
/// request with an HTTP redirection.
107
104
///
108
105
/// Support: Core
109
106
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
110
- pub enum HTTPRedirectScheme {
107
+ pub enum RequestRedirectScheme {
111
108
#[ serde( rename = "http" ) ]
112
109
Http ,
113
110
#[ serde( rename = "https" ) ]
114
111
Https ,
115
112
}
116
- /// GRPCRouteFilter defines processing steps that must be completed during the
117
- /// request or response lifecycle. GRPCRouteFilters are meant as an extension
113
+ /// HTTPRouteFilter defines processing steps that must be completed during the
114
+ /// request or response lifecycle. HTTPRouteFilters are meant as an extension
118
115
/// point to express processing that may be done in Gateway implementations. Some
119
116
/// examples include request or response modification, implementing
120
117
/// authentication strategies, rate-limiting, and traffic shaping. API
121
118
/// guarantee/conformance is defined based on the type of the filter.
122
119
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , PartialEq ) ]
123
- pub enum GRPCFilterType {
124
- ResponseHeaderModifier ,
120
+ pub enum HTTPFilterType {
125
121
RequestHeaderModifier ,
122
+ ResponseHeaderModifier ,
126
123
RequestMirror ,
124
+ RequestRedirect ,
125
+ #[ serde( rename = "URLRewrite" ) ]
126
+ UrlRewrite ,
127
127
ExtensionRef ,
128
128
}
129
129
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
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 ,
130
+ pub struct RequestMirror {
131
+ #[ serde( rename = "backendRef" ) ]
132
+ pub backend_ref : RequestMirrorRef ,
137
133
}
138
134
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
139
- pub struct HTTPPathModifier {
135
+ pub struct RequestRedirectPath {
140
136
#[ serde(
141
137
default ,
142
138
skip_serializing_if = "Option::is_none" ,
@@ -150,7 +146,14 @@ pub struct HTTPPathModifier {
150
146
) ]
151
147
pub replace_prefix_match : Option < String > ,
152
148
#[ serde( rename = "type" ) ]
153
- pub r#type : HTTPPathType ,
149
+ pub r#type : RequestOperationType ,
150
+ }
151
+ #[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
152
+ pub struct MatchingHeaders {
153
+ pub name : String ,
154
+ #[ serde( default , skip_serializing_if = "Option::is_none" , rename = "type" ) ]
155
+ pub r#type : Option < HeaderMatchType > ,
156
+ pub value : String ,
154
157
}
155
158
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
156
159
pub struct HeaderModifier {
@@ -162,81 +165,39 @@ pub struct HeaderModifier {
162
165
pub set : Option < Vec < HTTPHeader > > ,
163
166
}
164
167
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
165
- pub struct RequestMirrorModifier {
166
- #[ serde( rename = "backendRef" ) ]
167
- pub backend_ref : MirrorBackendRef ,
168
+ pub struct ParentRouteStatus {
169
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
170
+ pub conditions : Option < Vec < Condition > > ,
171
+ #[ serde( rename = "controllerName" ) ]
172
+ pub controller_name : String ,
173
+ #[ serde( rename = "parentRef" ) ]
174
+ pub parent_ref : RouteRef ,
168
175
}
169
176
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
170
- pub struct HTTPRequestRewrite {
171
- #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
172
- pub hostname : Option < String > ,
173
- #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
174
- pub path : Option < HTTPPathModifier > ,
177
+ pub struct RouteStatus {
178
+ pub parents : Vec < ParentRouteStatus > ,
175
179
}
176
180
#[ derive( Serialize , Deserialize , Clone , Debug , JsonSchema , Default , PartialEq ) ]
177
- pub struct HTTPRequestRedirect {
181
+ pub struct HTTPRouteRequestRedirect {
178
182
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
179
183
pub hostname : Option < String > ,
180
184
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
181
- pub path : Option < HTTPPathModifier > ,
185
+ pub path : Option < RequestRedirectPath > ,
182
186
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
183
187
pub port : Option < i32 > ,
184
188
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
185
- pub scheme : Option < HTTPRedirectScheme > ,
189
+ pub scheme : Option < RequestRedirectScheme > ,
186
190
#[ serde( default , skip_serializing_if = "Option::is_none" , rename = "statusCode" ) ]
187
191
pub status_code : Option < i64 > ,
188
192
}
189
193
#[ 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 ,
194
+ pub struct HTTPRouteUrlRewrite {
195
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
196
+ pub hostname : Option < String > ,
197
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
198
+ pub path : Option < RequestRedirectPath > ,
209
199
}
210
200
211
201
212
202
// Next attempt
213
203
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 > ,
242
- }
0 commit comments