// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: envoy/config/route/v3/route_components.proto
package io.envoyproxy.envoy.config.route.v3;
public interface RouteMatchOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteMatch)
com.google.protobuf.MessageOrBuilder {
/**
*
* If specified, the route is a prefix rule meaning that the prefix must
* match the beginning of the ``:path`` header.
*
*
* string prefix = 1;
* @return Whether the prefix field is set.
*/
boolean hasPrefix();
/**
*
* If specified, the route is a prefix rule meaning that the prefix must
* match the beginning of the ``:path`` header.
*
*
* string prefix = 1;
* @return The prefix.
*/
java.lang.String getPrefix();
/**
*
* If specified, the route is a prefix rule meaning that the prefix must
* match the beginning of the ``:path`` header.
*
*
* string prefix = 1;
* @return The bytes for prefix.
*/
com.google.protobuf.ByteString
getPrefixBytes();
/**
*
* If specified, the route is an exact path rule meaning that the path must
* exactly match the ``:path`` header once the query string is removed.
*
*
* string path = 2;
* @return Whether the path field is set.
*/
boolean hasPath();
/**
*
* If specified, the route is an exact path rule meaning that the path must
* exactly match the ``:path`` header once the query string is removed.
*
*
* string path = 2;
* @return The path.
*/
java.lang.String getPath();
/**
*
* If specified, the route is an exact path rule meaning that the path must
* exactly match the ``:path`` header once the query string is removed.
*
*
* string path = 2;
* @return The bytes for path.
*/
com.google.protobuf.ByteString
getPathBytes();
/**
*
* If specified, the route is a regular expression rule meaning that the
* regex must match the ``:path`` header once the query string is removed. The entire path
* (without the query string) must match the regex. The rule will not match if only a
* subsequence of the ``:path`` header matches the regex.
* [#next-major-version: In the v3 API we should redo how path specification works such
* that we utilize StringMatcher, and additionally have consistent options around whether we
* strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
* to deprecate the existing options. We should even consider whether we want to do away with
* path_specifier entirely and just rely on a set of header matchers which can already match
* on :path, etc. The issue with that is it is unclear how to generically deal with query string
* stripping. This needs more thought.]
*
*
* .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... }
* @return Whether the safeRegex field is set.
*/
boolean hasSafeRegex();
/**
*
* If specified, the route is a regular expression rule meaning that the
* regex must match the ``:path`` header once the query string is removed. The entire path
* (without the query string) must match the regex. The rule will not match if only a
* subsequence of the ``:path`` header matches the regex.
* [#next-major-version: In the v3 API we should redo how path specification works such
* that we utilize StringMatcher, and additionally have consistent options around whether we
* strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
* to deprecate the existing options. We should even consider whether we want to do away with
* path_specifier entirely and just rely on a set of header matchers which can already match
* on :path, etc. The issue with that is it is unclear how to generically deal with query string
* stripping. This needs more thought.]
*
*
* .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... }
* @return The safeRegex.
*/
io.envoyproxy.envoy.type.matcher.v3.RegexMatcher getSafeRegex();
/**
*
* If specified, the route is a regular expression rule meaning that the
* regex must match the ``:path`` header once the query string is removed. The entire path
* (without the query string) must match the regex. The rule will not match if only a
* subsequence of the ``:path`` header matches the regex.
* [#next-major-version: In the v3 API we should redo how path specification works such
* that we utilize StringMatcher, and additionally have consistent options around whether we
* strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
* to deprecate the existing options. We should even consider whether we want to do away with
* path_specifier entirely and just rely on a set of header matchers which can already match
* on :path, etc. The issue with that is it is unclear how to generically deal with query string
* stripping. This needs more thought.]
*
*
* .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... }
*/
io.envoyproxy.envoy.type.matcher.v3.RegexMatcherOrBuilder getSafeRegexOrBuilder();
/**
*
* If this is used as the matcher, the matcher will only match CONNECT requests.
* Note that this will not match HTTP/2 upgrade-style CONNECT requests
* (WebSocket and the like) as they are normalized in Envoy as HTTP/1.1 style
* upgrades.
* This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2,
* where Extended CONNECT requests may have a path, the path matchers will work if
* there is a path present.
* Note that CONNECT support is currently considered alpha in Envoy.
* [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
*
*
* .envoy.config.route.v3.RouteMatch.ConnectMatcher connect_matcher = 12;
* @return Whether the connectMatcher field is set.
*/
boolean hasConnectMatcher();
/**
*
* If this is used as the matcher, the matcher will only match CONNECT requests.
* Note that this will not match HTTP/2 upgrade-style CONNECT requests
* (WebSocket and the like) as they are normalized in Envoy as HTTP/1.1 style
* upgrades.
* This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2,
* where Extended CONNECT requests may have a path, the path matchers will work if
* there is a path present.
* Note that CONNECT support is currently considered alpha in Envoy.
* [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
*
*
* .envoy.config.route.v3.RouteMatch.ConnectMatcher connect_matcher = 12;
* @return The connectMatcher.
*/
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getConnectMatcher();
/**
*
* If this is used as the matcher, the matcher will only match CONNECT requests.
* Note that this will not match HTTP/2 upgrade-style CONNECT requests
* (WebSocket and the like) as they are normalized in Envoy as HTTP/1.1 style
* upgrades.
* This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2,
* where Extended CONNECT requests may have a path, the path matchers will work if
* there is a path present.
* Note that CONNECT support is currently considered alpha in Envoy.
* [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
*
*
* .envoy.config.route.v3.RouteMatch.ConnectMatcher connect_matcher = 12;
*/
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder getConnectMatcherOrBuilder();
/**
*
* If specified, the route is a path-separated prefix rule meaning that the
* ``:path`` header (without the query string) must either exactly match the
* ``path_separated_prefix`` or have it as a prefix, followed by ``/``
* For example, ``/api/dev`` would match
* ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
* but would not match ``/api/developer``
* Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
*
*
* string path_separated_prefix = 14 [(.validate.rules) = { ... }
* @return Whether the pathSeparatedPrefix field is set.
*/
boolean hasPathSeparatedPrefix();
/**
*
* If specified, the route is a path-separated prefix rule meaning that the
* ``:path`` header (without the query string) must either exactly match the
* ``path_separated_prefix`` or have it as a prefix, followed by ``/``
* For example, ``/api/dev`` would match
* ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
* but would not match ``/api/developer``
* Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
*
*
* string path_separated_prefix = 14 [(.validate.rules) = { ... }
* @return The pathSeparatedPrefix.
*/
java.lang.String getPathSeparatedPrefix();
/**
*
* If specified, the route is a path-separated prefix rule meaning that the
* ``:path`` header (without the query string) must either exactly match the
* ``path_separated_prefix`` or have it as a prefix, followed by ``/``
* For example, ``/api/dev`` would match
* ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
* but would not match ``/api/developer``
* Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
*
*
* string path_separated_prefix = 14 [(.validate.rules) = { ... }
* @return The bytes for pathSeparatedPrefix.
*/
com.google.protobuf.ByteString
getPathSeparatedPrefixBytes();
/**
*
* [#extension-category: envoy.path.match]
*
*
* .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15;
* @return Whether the pathMatchPolicy field is set.
*/
boolean hasPathMatchPolicy();
/**
*
* [#extension-category: envoy.path.match]
*
*
* .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15;
* @return The pathMatchPolicy.
*/
io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getPathMatchPolicy();
/**
*
* [#extension-category: envoy.path.match]
*
*
* .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15;
*/
io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getPathMatchPolicyOrBuilder();
/**
*
* Indicates that prefix/path matching should be case sensitive. The default
* is true. Ignored for safe_regex matching.
*
*
* .google.protobuf.BoolValue case_sensitive = 4;
* @return Whether the caseSensitive field is set.
*/
boolean hasCaseSensitive();
/**
*
* Indicates that prefix/path matching should be case sensitive. The default
* is true. Ignored for safe_regex matching.
*
*
* .google.protobuf.BoolValue case_sensitive = 4;
* @return The caseSensitive.
*/
com.google.protobuf.BoolValue getCaseSensitive();
/**
*
* Indicates that prefix/path matching should be case sensitive. The default
* is true. Ignored for safe_regex matching.
*
*
* .google.protobuf.BoolValue case_sensitive = 4;
*/
com.google.protobuf.BoolValueOrBuilder getCaseSensitiveOrBuilder();
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
*
* .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9;
* @return Whether the runtimeFraction field is set.
*/
boolean hasRuntimeFraction();
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
*
* .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9;
* @return The runtimeFraction.
*/
io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent getRuntimeFraction();
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
*
* .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9;
*/
io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder getRuntimeFractionOrBuilder();
/**
*
* Specifies a set of headers that the route should match on. The router will
* check the request’s headers against all the specified headers in the route
* config. A match will happen if all the headers in the route are present in
* the request with the same values (or based on presence if the value field
* is not in the config).
*
*
* repeated .envoy.config.route.v3.HeaderMatcher headers = 6;
*/
java.util.List
getHeadersList();
/**
*
* Specifies a set of headers that the route should match on. The router will
* check the request’s headers against all the specified headers in the route
* config. A match will happen if all the headers in the route are present in
* the request with the same values (or based on presence if the value field
* is not in the config).
*
*
* repeated .envoy.config.route.v3.HeaderMatcher headers = 6;
*/
io.envoyproxy.envoy.config.route.v3.HeaderMatcher getHeaders(int index);
/**
*
* Specifies a set of headers that the route should match on. The router will
* check the request’s headers against all the specified headers in the route
* config. A match will happen if all the headers in the route are present in
* the request with the same values (or based on presence if the value field
* is not in the config).
*
*
* repeated .envoy.config.route.v3.HeaderMatcher headers = 6;
*/
int getHeadersCount();
/**
*
* Specifies a set of headers that the route should match on. The router will
* check the request’s headers against all the specified headers in the route
* config. A match will happen if all the headers in the route are present in
* the request with the same values (or based on presence if the value field
* is not in the config).
*
*
* repeated .envoy.config.route.v3.HeaderMatcher headers = 6;
*/
java.util.List extends io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder>
getHeadersOrBuilderList();
/**
*
* Specifies a set of headers that the route should match on. The router will
* check the request’s headers against all the specified headers in the route
* config. A match will happen if all the headers in the route are present in
* the request with the same values (or based on presence if the value field
* is not in the config).
*
*
* repeated .envoy.config.route.v3.HeaderMatcher headers = 6;
*/
io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder getHeadersOrBuilder(
int index);
/**
*
* Specifies a set of URL query parameters on which the route should
* match. The router will check the query string from the ``path`` header
* against all the specified query parameters. If the number of specified
* query parameters is nonzero, they all must match the ``path`` header's
* query string for a match to occur. In the event query parameters are
* repeated, only the first value for each key will be considered.
* .. note::
* If query parameters are used to pass request message fields when
* `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
* is used, the transcoded message fields maybe different. The query parameters are
* url encoded, but the message fields are not. For example, if a query
* parameter is "foo%20bar", the message field will be "foo bar".
*
*
* repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7;
*/
java.util.List
getQueryParametersList();
/**
*
* Specifies a set of URL query parameters on which the route should
* match. The router will check the query string from the ``path`` header
* against all the specified query parameters. If the number of specified
* query parameters is nonzero, they all must match the ``path`` header's
* query string for a match to occur. In the event query parameters are
* repeated, only the first value for each key will be considered.
* .. note::
* If query parameters are used to pass request message fields when
* `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
* is used, the transcoded message fields maybe different. The query parameters are
* url encoded, but the message fields are not. For example, if a query
* parameter is "foo%20bar", the message field will be "foo bar".
*
*
* repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7;
*/
io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher getQueryParameters(int index);
/**
*
* Specifies a set of URL query parameters on which the route should
* match. The router will check the query string from the ``path`` header
* against all the specified query parameters. If the number of specified
* query parameters is nonzero, they all must match the ``path`` header's
* query string for a match to occur. In the event query parameters are
* repeated, only the first value for each key will be considered.
* .. note::
* If query parameters are used to pass request message fields when
* `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
* is used, the transcoded message fields maybe different. The query parameters are
* url encoded, but the message fields are not. For example, if a query
* parameter is "foo%20bar", the message field will be "foo bar".
*
*
* repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7;
*/
int getQueryParametersCount();
/**
*
* Specifies a set of URL query parameters on which the route should
* match. The router will check the query string from the ``path`` header
* against all the specified query parameters. If the number of specified
* query parameters is nonzero, they all must match the ``path`` header's
* query string for a match to occur. In the event query parameters are
* repeated, only the first value for each key will be considered.
* .. note::
* If query parameters are used to pass request message fields when
* `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
* is used, the transcoded message fields maybe different. The query parameters are
* url encoded, but the message fields are not. For example, if a query
* parameter is "foo%20bar", the message field will be "foo bar".
*
*
* repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7;
*/
java.util.List extends io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder>
getQueryParametersOrBuilderList();
/**
*
* Specifies a set of URL query parameters on which the route should
* match. The router will check the query string from the ``path`` header
* against all the specified query parameters. If the number of specified
* query parameters is nonzero, they all must match the ``path`` header's
* query string for a match to occur. In the event query parameters are
* repeated, only the first value for each key will be considered.
* .. note::
* If query parameters are used to pass request message fields when
* `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
* is used, the transcoded message fields maybe different. The query parameters are
* url encoded, but the message fields are not. For example, if a query
* parameter is "foo%20bar", the message field will be "foo bar".
*
*
* repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7;
*/
io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder getQueryParametersOrBuilder(
int index);
/**
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
*
* .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8;
* @return Whether the grpc field is set.
*/
boolean hasGrpc();
/**
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
*
* .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8;
* @return The grpc.
*/
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getGrpc();
/**
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
*
* .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8;
*/
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder getGrpcOrBuilder();
/**
*
* If specified, the client tls context will be matched against the defined
* match options.
* [#next-major-version: unify with RBAC]
*
*
* .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11;
* @return Whether the tlsContext field is set.
*/
boolean hasTlsContext();
/**
*
* If specified, the client tls context will be matched against the defined
* match options.
* [#next-major-version: unify with RBAC]
*
*
* .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11;
* @return The tlsContext.
*/
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getTlsContext();
/**
*
* If specified, the client tls context will be matched against the defined
* match options.
* [#next-major-version: unify with RBAC]
*
*
* .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11;
*/
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder getTlsContextOrBuilder();
/**
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
*
* repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13;
*/
java.util.List
getDynamicMetadataList();
/**
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
*
* repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13;
*/
io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher getDynamicMetadata(int index);
/**
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
*
* repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13;
*/
int getDynamicMetadataCount();
/**
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
*
* repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13;
*/
java.util.List extends io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder>
getDynamicMetadataOrBuilderList();
/**
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
*
* repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13;
*/
io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder getDynamicMetadataOrBuilder(
int index);
public io.envoyproxy.envoy.config.route.v3.RouteMatch.PathSpecifierCase getPathSpecifierCase();
}