1#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct HostMatch {
5 #[prost(oneof = "host_match::Match", tags = "1, 2")]
6 pub r#match: ::core::option::Option<host_match::Match>,
7}
8pub mod host_match {
10 #[derive(Clone, PartialEq, ::prost::Message)]
12 pub struct Suffix {
13 #[prost(string, repeated, tag = "1")]
14 pub reverse_labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
15 }
16 #[derive(Clone, PartialEq, ::prost::Oneof)]
17 pub enum Match {
18 #[prost(string, tag = "1")]
20 Exact(::prost::alloc::string::String),
21 #[prost(message, tag = "2")]
23 Suffix(Suffix),
24 }
25}
26#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct HttpRouteMatch {
29 #[prost(message, optional, tag = "1")]
31 pub path: ::core::option::Option<PathMatch>,
32 #[prost(message, repeated, tag = "2")]
36 pub headers: ::prost::alloc::vec::Vec<HeaderMatch>,
37 #[prost(message, repeated, tag = "3")]
41 pub query_params: ::prost::alloc::vec::Vec<QueryParamMatch>,
42 #[prost(message, optional, tag = "4")]
44 pub method: ::core::option::Option<super::http_types::HttpMethod>,
45}
46#[derive(Clone, PartialEq, ::prost::Message)]
48pub struct PathMatch {
49 #[prost(oneof = "path_match::Kind", tags = "1, 2, 3")]
50 pub kind: ::core::option::Option<path_match::Kind>,
51}
52pub mod path_match {
54 #[derive(Clone, PartialEq, ::prost::Oneof)]
55 pub enum Kind {
56 #[prost(string, tag = "1")]
57 Exact(::prost::alloc::string::String),
58 #[prost(string, tag = "2")]
59 Prefix(::prost::alloc::string::String),
60 #[prost(string, tag = "3")]
61 Regex(::prost::alloc::string::String),
62 }
63}
64#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct HeaderMatch {
67 #[prost(string, tag = "1")]
68 pub name: ::prost::alloc::string::String,
69 #[prost(oneof = "header_match::Value", tags = "2, 3")]
70 pub value: ::core::option::Option<header_match::Value>,
71}
72pub mod header_match {
74 #[derive(Clone, PartialEq, ::prost::Oneof)]
75 pub enum Value {
76 #[prost(bytes, tag = "2")]
77 Exact(::prost::alloc::vec::Vec<u8>),
78 #[prost(string, tag = "3")]
79 Regex(::prost::alloc::string::String),
80 }
81}
82#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct QueryParamMatch {
85 #[prost(string, tag = "1")]
86 pub name: ::prost::alloc::string::String,
87 #[prost(oneof = "query_param_match::Value", tags = "2, 3")]
88 pub value: ::core::option::Option<query_param_match::Value>,
89}
90pub mod query_param_match {
92 #[derive(Clone, PartialEq, ::prost::Oneof)]
93 pub enum Value {
94 #[prost(string, tag = "2")]
95 Exact(::prost::alloc::string::String),
96 #[prost(string, tag = "3")]
97 Regex(::prost::alloc::string::String),
98 }
99}
100#[derive(Clone, PartialEq, ::prost::Message)]
105pub struct RequestHeaderModifier {
106 #[prost(message, optional, tag = "1")]
109 pub add: ::core::option::Option<super::http_types::Headers>,
110 #[prost(message, optional, tag = "2")]
113 pub set: ::core::option::Option<super::http_types::Headers>,
114 #[prost(string, repeated, tag = "3")]
116 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
117}
118#[derive(Clone, PartialEq, ::prost::Message)]
123pub struct ResponseHeaderModifier {
124 #[prost(message, optional, tag = "1")]
127 pub add: ::core::option::Option<super::http_types::Headers>,
128 #[prost(message, optional, tag = "2")]
131 pub set: ::core::option::Option<super::http_types::Headers>,
132 #[prost(string, repeated, tag = "3")]
134 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
135}
136#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct RequestRedirect {
140 #[prost(message, optional, tag = "1")]
143 pub scheme: ::core::option::Option<super::http_types::Scheme>,
144 #[prost(string, tag = "2")]
147 pub host: ::prost::alloc::string::String,
148 #[prost(message, optional, tag = "3")]
152 pub path: ::core::option::Option<PathModifier>,
153 #[prost(uint32, tag = "4")]
155 pub port: u32,
156 #[prost(uint32, tag = "5")]
159 pub status: u32,
160}
161#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct PathModifier {
164 #[prost(oneof = "path_modifier::Replace", tags = "1, 2")]
165 pub replace: ::core::option::Option<path_modifier::Replace>,
166}
167pub mod path_modifier {
169 #[derive(Clone, PartialEq, ::prost::Oneof)]
170 pub enum Replace {
171 #[prost(string, tag = "1")]
173 Full(::prost::alloc::string::String),
174 #[prost(string, tag = "2")]
181 Prefix(::prost::alloc::string::String),
182 }
183}
184#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct HttpFailureInjector {
187 #[prost(uint32, tag = "1")]
189 pub status: u32,
190 #[prost(string, tag = "2")]
192 pub message: ::prost::alloc::string::String,
193 #[prost(message, optional, tag = "3")]
196 pub ratio: ::core::option::Option<Ratio>,
197}
198#[derive(Clone, Copy, PartialEq, ::prost::Message)]
202pub struct Ratio {
203 #[prost(uint32, tag = "1")]
204 pub numerator: u32,
205 #[prost(uint32, tag = "2")]
207 pub denominator: u32,
208}
209#[derive(Clone, Copy, PartialEq, ::prost::Message)]
210pub struct Timeouts {
211 #[prost(message, optional, tag = "1")]
214 pub response: ::core::option::Option<::prost_types::Duration>,
215 #[prost(message, optional, tag = "2")]
218 pub request: ::core::option::Option<::prost_types::Duration>,
219 #[prost(message, optional, tag = "3")]
222 pub idle: ::core::option::Option<::prost_types::Duration>,
223}