#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Matcher {
#[prost(message, optional, boxed, tag = "3")]
pub on_no_match: ::core::option::Option<
::prost::alloc::boxed::Box<matcher::OnMatch>,
>,
#[prost(oneof = "matcher::MatcherType", tags = "1, 2")]
pub matcher_type: ::core::option::Option<matcher::MatcherType>,
}
pub mod matcher {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OnMatch {
#[prost(bool, tag = "3")]
pub keep_matching: bool,
#[prost(oneof = "on_match::OnMatch", tags = "1, 2")]
pub on_match: ::core::option::Option<on_match::OnMatch>,
}
pub mod on_match {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum OnMatch {
#[prost(message, tag = "1")]
Matcher(::prost::alloc::boxed::Box<super::super::Matcher>),
#[prost(message, tag = "2")]
Action(super::super::super::super::super::core::v3::TypedExtensionConfig),
}
}
impl ::prost::Name for OnMatch {
const NAME: &'static str = "OnMatch";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.OnMatch".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.OnMatch".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatcherList {
#[prost(message, repeated, tag = "1")]
pub matchers: ::prost::alloc::vec::Vec<matcher_list::FieldMatcher>,
}
pub mod matcher_list {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Predicate {
#[prost(oneof = "predicate::MatchType", tags = "1, 2, 3, 4")]
pub match_type: ::core::option::Option<predicate::MatchType>,
}
pub mod predicate {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SinglePredicate {
#[prost(message, optional, tag = "1")]
pub input: ::core::option::Option<
super::super::super::super::super::super::core::v3::TypedExtensionConfig,
>,
#[prost(oneof = "single_predicate::Matcher", tags = "2, 3")]
pub matcher: ::core::option::Option<single_predicate::Matcher>,
}
pub mod single_predicate {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Matcher {
#[prost(message, tag = "2")]
ValueMatch(
super::super::super::super::super::super::super::super::r#type::matcher::v3::StringMatcher,
),
#[prost(message, tag = "3")]
CustomMatch(
super::super::super::super::super::super::super::core::v3::TypedExtensionConfig,
),
}
}
impl ::prost::Name for SinglePredicate {
const NAME: &'static str = "SinglePredicate";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.MatcherList.Predicate.SinglePredicate"
.into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.MatcherList.Predicate.SinglePredicate"
.into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PredicateList {
#[prost(message, repeated, tag = "1")]
pub predicate: ::prost::alloc::vec::Vec<super::Predicate>,
}
impl ::prost::Name for PredicateList {
const NAME: &'static str = "PredicateList";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.MatcherList.Predicate.PredicateList"
.into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.MatcherList.Predicate.PredicateList"
.into()
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum MatchType {
#[prost(message, tag = "1")]
SinglePredicate(SinglePredicate),
#[prost(message, tag = "2")]
OrMatcher(PredicateList),
#[prost(message, tag = "3")]
AndMatcher(PredicateList),
#[prost(message, tag = "4")]
NotMatcher(::prost::alloc::boxed::Box<super::Predicate>),
}
}
impl ::prost::Name for Predicate {
const NAME: &'static str = "Predicate";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.MatcherList.Predicate".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.MatcherList.Predicate"
.into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldMatcher {
#[prost(message, optional, tag = "1")]
pub predicate: ::core::option::Option<Predicate>,
#[prost(message, optional, tag = "2")]
pub on_match: ::core::option::Option<super::OnMatch>,
}
impl ::prost::Name for FieldMatcher {
const NAME: &'static str = "FieldMatcher";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.MatcherList.FieldMatcher".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.MatcherList.FieldMatcher"
.into()
}
}
}
impl ::prost::Name for MatcherList {
const NAME: &'static str = "MatcherList";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.MatcherList".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.MatcherList"
.into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatcherTree {
#[prost(message, optional, tag = "1")]
pub input: ::core::option::Option<
super::super::super::super::core::v3::TypedExtensionConfig,
>,
#[prost(oneof = "matcher_tree::TreeType", tags = "2, 3, 4")]
pub tree_type: ::core::option::Option<matcher_tree::TreeType>,
}
pub mod matcher_tree {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchMap {
#[prost(map = "string, message", tag = "1")]
pub map: ::std::collections::HashMap<
::prost::alloc::string::String,
super::OnMatch,
>,
}
impl ::prost::Name for MatchMap {
const NAME: &'static str = "MatchMap";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.MatcherTree.MatchMap".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.MatcherTree.MatchMap"
.into()
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TreeType {
#[prost(message, tag = "2")]
ExactMatchMap(MatchMap),
#[prost(message, tag = "3")]
PrefixMatchMap(MatchMap),
#[prost(message, tag = "4")]
CustomMatch(
super::super::super::super::super::core::v3::TypedExtensionConfig,
),
}
}
impl ::prost::Name for MatcherTree {
const NAME: &'static str = "MatcherTree";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher.MatcherTree".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher.MatcherTree"
.into()
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum MatcherType {
#[prost(message, tag = "1")]
MatcherList(MatcherList),
#[prost(message, tag = "2")]
MatcherTree(MatcherTree),
}
}
impl ::prost::Name for Matcher {
const NAME: &'static str = "Matcher";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.Matcher".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.Matcher".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchPredicate {
#[prost(oneof = "match_predicate::Rule", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
pub rule: ::core::option::Option<match_predicate::Rule>,
}
pub mod match_predicate {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchSet {
#[prost(message, repeated, tag = "1")]
pub rules: ::prost::alloc::vec::Vec<super::MatchPredicate>,
}
impl ::prost::Name for MatchSet {
const NAME: &'static str = "MatchSet";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.MatchPredicate.MatchSet".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.MatchPredicate.MatchSet"
.into()
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Rule {
#[prost(message, tag = "1")]
OrMatch(MatchSet),
#[prost(message, tag = "2")]
AndMatch(MatchSet),
#[prost(message, tag = "3")]
NotMatch(::prost::alloc::boxed::Box<super::MatchPredicate>),
#[prost(bool, tag = "4")]
AnyMatch(bool),
#[prost(message, tag = "5")]
HttpRequestHeadersMatch(super::HttpHeadersMatch),
#[prost(message, tag = "6")]
HttpRequestTrailersMatch(super::HttpHeadersMatch),
#[prost(message, tag = "7")]
HttpResponseHeadersMatch(super::HttpHeadersMatch),
#[prost(message, tag = "8")]
HttpResponseTrailersMatch(super::HttpHeadersMatch),
#[prost(message, tag = "9")]
HttpRequestGenericBodyMatch(super::HttpGenericBodyMatch),
#[prost(message, tag = "10")]
HttpResponseGenericBodyMatch(super::HttpGenericBodyMatch),
}
}
impl ::prost::Name for MatchPredicate {
const NAME: &'static str = "MatchPredicate";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.MatchPredicate".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.MatchPredicate".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HttpHeadersMatch {
#[prost(message, repeated, tag = "1")]
pub headers: ::prost::alloc::vec::Vec<super::super::super::route::v3::HeaderMatcher>,
}
impl ::prost::Name for HttpHeadersMatch {
const NAME: &'static str = "HttpHeadersMatch";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.HttpHeadersMatch".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.HttpHeadersMatch".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HttpGenericBodyMatch {
#[prost(uint32, tag = "1")]
pub bytes_limit: u32,
#[prost(message, repeated, tag = "2")]
pub patterns: ::prost::alloc::vec::Vec<http_generic_body_match::GenericTextMatch>,
}
pub mod http_generic_body_match {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GenericTextMatch {
#[prost(oneof = "generic_text_match::Rule", tags = "1, 2")]
pub rule: ::core::option::Option<generic_text_match::Rule>,
}
pub mod generic_text_match {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Rule {
#[prost(string, tag = "1")]
StringMatch(::prost::alloc::string::String),
#[prost(bytes, tag = "2")]
BinaryMatch(::prost::alloc::vec::Vec<u8>),
}
}
impl ::prost::Name for GenericTextMatch {
const NAME: &'static str = "GenericTextMatch";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.HttpGenericBodyMatch.GenericTextMatch".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.HttpGenericBodyMatch.GenericTextMatch"
.into()
}
}
}
impl ::prost::Name for HttpGenericBodyMatch {
const NAME: &'static str = "HttpGenericBodyMatch";
const PACKAGE: &'static str = "envoy.config.common.matcher.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.config.common.matcher.v3.HttpGenericBodyMatch".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.config.common.matcher.v3.HttpGenericBodyMatch".into()
}
}