|
|
|
@ -2,6 +2,8 @@ syntax = "proto3"; |
|
|
|
|
|
|
|
|
|
package envoy.extensions.filters.network.generic_proxy.matcher.v3; |
|
|
|
|
|
|
|
|
|
import "envoy/type/matcher/v3/string.proto"; |
|
|
|
|
|
|
|
|
|
import "xds/annotations/v3/status.proto"; |
|
|
|
|
|
|
|
|
|
import "udpa/annotations/status.proto"; |
|
|
|
@ -18,17 +20,64 @@ option (xds.annotations.v3.file_status).work_in_progress = true; |
|
|
|
|
|
|
|
|
|
// Used to match request service of the downstream request. Only applicable if a service provided |
|
|
|
|
// by the application protocol. |
|
|
|
|
// This is deprecated and should be replaced by HostMatchInput. This is kept for backward compatibility. |
|
|
|
|
message ServiceMatchInput { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Used to match request method of the downstream request. Only applicable if a method provided |
|
|
|
|
// Used to match request host of the generic downstream request. Only applicable if a host provided |
|
|
|
|
// by the application protocol. |
|
|
|
|
// This is same with the ServiceMatchInput and this should be preferred over ServiceMatchInput. |
|
|
|
|
message HostMatchInput { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Used to match request path of the generic downstream request. Only applicable if a path provided |
|
|
|
|
// by the application protocol. |
|
|
|
|
message PathMatchInput { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Used to match request method of the generic downstream request. Only applicable if a method provided |
|
|
|
|
// by the application protocol. |
|
|
|
|
message MethodMatchInput { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Used to match an arbitrary property of the downstream request. |
|
|
|
|
// Used to match an arbitrary property of the generic downstream request. |
|
|
|
|
// These properties are populated by the codecs of application protocols. |
|
|
|
|
message PropertyMatchInput { |
|
|
|
|
// The property name to match on. |
|
|
|
|
string property_name = 1 [(validate.rules).string = {min_len: 1}]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// [#not-implemented-hide:] |
|
|
|
|
// Used to match an whole generic downstream request. |
|
|
|
|
message RequestMatchInput { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// [#not-implemented-hide:] |
|
|
|
|
// Used to match an arbitrary key-value pair for headers, trailers or properties. |
|
|
|
|
message KeyValueMatchEntry { |
|
|
|
|
// The key name to match on. |
|
|
|
|
string name = 1 [(validate.rules).string = {min_len: 1}]; |
|
|
|
|
|
|
|
|
|
// The key value pattern. |
|
|
|
|
type.matcher.v3.StringMatcher string_match = 2 [(validate.rules).message = {required: true}]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// [#not-implemented-hide:] |
|
|
|
|
// Custom matcher to match on the generic downstream request. This is used to match |
|
|
|
|
// multiple fields of the downstream request and avoid complex combinations of |
|
|
|
|
// HostMatchInput, PathMatchInput, MethodMatchInput and PropertyMatchInput. |
|
|
|
|
message RequestMatcher { |
|
|
|
|
// Optional host pattern to match on. If not specified, any host will match. |
|
|
|
|
type.matcher.v3.StringMatcher host = 1; |
|
|
|
|
|
|
|
|
|
// Optional path pattern to match on. If not specified, any path will match. |
|
|
|
|
type.matcher.v3.StringMatcher path = 2; |
|
|
|
|
|
|
|
|
|
// Optional method pattern to match on. If not specified, any method will match. |
|
|
|
|
type.matcher.v3.StringMatcher method = 3; |
|
|
|
|
|
|
|
|
|
// Optional arbitrary properties to match on. If not specified, any properties |
|
|
|
|
// will match. The key is the property name and the value is the property value |
|
|
|
|
// to match on. |
|
|
|
|
repeated KeyValueMatchEntry properties = 4; |
|
|
|
|
} |
|
|
|
|