// 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 RetryPolicyOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RetryPolicy)
com.google.protobuf.MessageOrBuilder {
/**
*
* Specifies the conditions under which retry takes place. These are the same
* conditions documented for :ref:`config_http_filters_router_x-envoy-retry-on` and
* :ref:`config_http_filters_router_x-envoy-retry-grpc-on`.
*
*
* string retry_on = 1;
* @return The retryOn.
*/
java.lang.String getRetryOn();
/**
*
* Specifies the conditions under which retry takes place. These are the same
* conditions documented for :ref:`config_http_filters_router_x-envoy-retry-on` and
* :ref:`config_http_filters_router_x-envoy-retry-grpc-on`.
*
*
* string retry_on = 1;
* @return The bytes for retryOn.
*/
com.google.protobuf.ByteString
getRetryOnBytes();
/**
*
* Specifies the allowed number of retries. This parameter is optional and
* defaults to 1. These are the same conditions documented for
* :ref:`config_http_filters_router_x-envoy-max-retries`.
*
*
* .google.protobuf.UInt32Value num_retries = 2 [(.udpa.annotations.field_migrate) = { ... }
* @return Whether the numRetries field is set.
*/
boolean hasNumRetries();
/**
*
* Specifies the allowed number of retries. This parameter is optional and
* defaults to 1. These are the same conditions documented for
* :ref:`config_http_filters_router_x-envoy-max-retries`.
*
*
* .google.protobuf.UInt32Value num_retries = 2 [(.udpa.annotations.field_migrate) = { ... }
* @return The numRetries.
*/
com.google.protobuf.UInt32Value getNumRetries();
/**
*
* Specifies the allowed number of retries. This parameter is optional and
* defaults to 1. These are the same conditions documented for
* :ref:`config_http_filters_router_x-envoy-max-retries`.
*
*
* .google.protobuf.UInt32Value num_retries = 2 [(.udpa.annotations.field_migrate) = { ... }
*/
com.google.protobuf.UInt32ValueOrBuilder getNumRetriesOrBuilder();
/**
*
* Specifies a non-zero upstream timeout per retry attempt (including the initial attempt). This
* parameter is optional. The same conditions documented for
* :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms` apply.
* .. note::
* If left unspecified, Envoy will use the global
* :ref:`route timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` for the request.
* Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
* retry policy, a request that times out will not be retried as the total timeout budget
* would have been exhausted.
*
*
* .google.protobuf.Duration per_try_timeout = 3;
* @return Whether the perTryTimeout field is set.
*/
boolean hasPerTryTimeout();
/**
*
* Specifies a non-zero upstream timeout per retry attempt (including the initial attempt). This
* parameter is optional. The same conditions documented for
* :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms` apply.
* .. note::
* If left unspecified, Envoy will use the global
* :ref:`route timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` for the request.
* Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
* retry policy, a request that times out will not be retried as the total timeout budget
* would have been exhausted.
*
*
* .google.protobuf.Duration per_try_timeout = 3;
* @return The perTryTimeout.
*/
com.google.protobuf.Duration getPerTryTimeout();
/**
*
* Specifies a non-zero upstream timeout per retry attempt (including the initial attempt). This
* parameter is optional. The same conditions documented for
* :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms` apply.
* .. note::
* If left unspecified, Envoy will use the global
* :ref:`route timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` for the request.
* Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
* retry policy, a request that times out will not be retried as the total timeout budget
* would have been exhausted.
*
*
* .google.protobuf.Duration per_try_timeout = 3;
*/
com.google.protobuf.DurationOrBuilder getPerTryTimeoutOrBuilder();
/**
*
* Specifies an upstream idle timeout per retry attempt (including the initial attempt). This
* parameter is optional and if absent there is no per try idle timeout. The semantics of the per
* try idle timeout are similar to the
* :ref:`route idle timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` and
* :ref:`stream idle timeout
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
* both enforced by the HTTP connection manager. The difference is that this idle timeout
* is enforced by the router for each individual attempt and thus after all previous filters have
* run, as opposed to *before* all previous filters run for the other idle timeouts. This timeout
* is useful in cases in which total request timeout is bounded by a number of retries and a
* :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`, but
* there is a desire to ensure each try is making incremental progress. Note also that similar
* to :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`,
* this idle timeout does not start until after both the entire request has been received by the
* router *and* a connection pool connection has been obtained. Unlike
* :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`,
* the idle timer continues once the response starts streaming back to the downstream client.
* This ensures that response data continues to make progress without using one of the HTTP
* connection manager idle timeouts.
*
*
* .google.protobuf.Duration per_try_idle_timeout = 13;
* @return Whether the perTryIdleTimeout field is set.
*/
boolean hasPerTryIdleTimeout();
/**
*
* Specifies an upstream idle timeout per retry attempt (including the initial attempt). This
* parameter is optional and if absent there is no per try idle timeout. The semantics of the per
* try idle timeout are similar to the
* :ref:`route idle timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` and
* :ref:`stream idle timeout
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
* both enforced by the HTTP connection manager. The difference is that this idle timeout
* is enforced by the router for each individual attempt and thus after all previous filters have
* run, as opposed to *before* all previous filters run for the other idle timeouts. This timeout
* is useful in cases in which total request timeout is bounded by a number of retries and a
* :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`, but
* there is a desire to ensure each try is making incremental progress. Note also that similar
* to :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`,
* this idle timeout does not start until after both the entire request has been received by the
* router *and* a connection pool connection has been obtained. Unlike
* :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`,
* the idle timer continues once the response starts streaming back to the downstream client.
* This ensures that response data continues to make progress without using one of the HTTP
* connection manager idle timeouts.
*
*
* .google.protobuf.Duration per_try_idle_timeout = 13;
* @return The perTryIdleTimeout.
*/
com.google.protobuf.Duration getPerTryIdleTimeout();
/**
*
* Specifies an upstream idle timeout per retry attempt (including the initial attempt). This
* parameter is optional and if absent there is no per try idle timeout. The semantics of the per
* try idle timeout are similar to the
* :ref:`route idle timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` and
* :ref:`stream idle timeout
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
* both enforced by the HTTP connection manager. The difference is that this idle timeout
* is enforced by the router for each individual attempt and thus after all previous filters have
* run, as opposed to *before* all previous filters run for the other idle timeouts. This timeout
* is useful in cases in which total request timeout is bounded by a number of retries and a
* :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`, but
* there is a desire to ensure each try is making incremental progress. Note also that similar
* to :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`,
* this idle timeout does not start until after both the entire request has been received by the
* router *and* a connection pool connection has been obtained. Unlike
* :ref:`per_try_timeout <envoy_v3_api_field_config.route.v3.RetryPolicy.per_try_timeout>`,
* the idle timer continues once the response starts streaming back to the downstream client.
* This ensures that response data continues to make progress without using one of the HTTP
* connection manager idle timeouts.
*
*
* .google.protobuf.Duration per_try_idle_timeout = 13;
*/
com.google.protobuf.DurationOrBuilder getPerTryIdleTimeoutOrBuilder();
/**
*
* Specifies an implementation of a RetryPriority which is used to determine the
* distribution of load across priorities used for retries. Refer to
* :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more details.
*
*
* .envoy.config.route.v3.RetryPolicy.RetryPriority retry_priority = 4;
* @return Whether the retryPriority field is set.
*/
boolean hasRetryPriority();
/**
*
* Specifies an implementation of a RetryPriority which is used to determine the
* distribution of load across priorities used for retries. Refer to
* :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more details.
*
*
* .envoy.config.route.v3.RetryPolicy.RetryPriority retry_priority = 4;
* @return The retryPriority.
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RetryPriority getRetryPriority();
/**
*
* Specifies an implementation of a RetryPriority which is used to determine the
* distribution of load across priorities used for retries. Refer to
* :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more details.
*
*
* .envoy.config.route.v3.RetryPolicy.RetryPriority retry_priority = 4;
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RetryPriorityOrBuilder getRetryPriorityOrBuilder();
/**
*
* Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
* for retries. If any of the predicates reject the host, host selection will be reattempted.
* Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
* details.
*
*
* repeated .envoy.config.route.v3.RetryPolicy.RetryHostPredicate retry_host_predicate = 5;
*/
java.util.List
getRetryHostPredicateList();
/**
*
* Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
* for retries. If any of the predicates reject the host, host selection will be reattempted.
* Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
* details.
*
*
* repeated .envoy.config.route.v3.RetryPolicy.RetryHostPredicate retry_host_predicate = 5;
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RetryHostPredicate getRetryHostPredicate(int index);
/**
*
* Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
* for retries. If any of the predicates reject the host, host selection will be reattempted.
* Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
* details.
*
*
* repeated .envoy.config.route.v3.RetryPolicy.RetryHostPredicate retry_host_predicate = 5;
*/
int getRetryHostPredicateCount();
/**
*
* Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
* for retries. If any of the predicates reject the host, host selection will be reattempted.
* Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
* details.
*
*
* repeated .envoy.config.route.v3.RetryPolicy.RetryHostPredicate retry_host_predicate = 5;
*/
java.util.List extends io.envoyproxy.envoy.config.route.v3.RetryPolicy.RetryHostPredicateOrBuilder>
getRetryHostPredicateOrBuilderList();
/**
*
* Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
* for retries. If any of the predicates reject the host, host selection will be reattempted.
* Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
* details.
*
*
* repeated .envoy.config.route.v3.RetryPolicy.RetryHostPredicate retry_host_predicate = 5;
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RetryHostPredicateOrBuilder getRetryHostPredicateOrBuilder(
int index);
/**
*
* Retry options predicates that will be applied prior to retrying a request. These predicates
* allow customizing request behavior between retries.
* [#comment: add [#extension-category: envoy.retry_options_predicates] when there are built-in extensions]
*
*
* repeated .envoy.config.core.v3.TypedExtensionConfig retry_options_predicates = 12;
*/
java.util.List
getRetryOptionsPredicatesList();
/**
*
* Retry options predicates that will be applied prior to retrying a request. These predicates
* allow customizing request behavior between retries.
* [#comment: add [#extension-category: envoy.retry_options_predicates] when there are built-in extensions]
*
*
* repeated .envoy.config.core.v3.TypedExtensionConfig retry_options_predicates = 12;
*/
io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getRetryOptionsPredicates(int index);
/**
*
* Retry options predicates that will be applied prior to retrying a request. These predicates
* allow customizing request behavior between retries.
* [#comment: add [#extension-category: envoy.retry_options_predicates] when there are built-in extensions]
*
*
* repeated .envoy.config.core.v3.TypedExtensionConfig retry_options_predicates = 12;
*/
int getRetryOptionsPredicatesCount();
/**
*
* Retry options predicates that will be applied prior to retrying a request. These predicates
* allow customizing request behavior between retries.
* [#comment: add [#extension-category: envoy.retry_options_predicates] when there are built-in extensions]
*
*
* repeated .envoy.config.core.v3.TypedExtensionConfig retry_options_predicates = 12;
*/
java.util.List extends io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder>
getRetryOptionsPredicatesOrBuilderList();
/**
*
* Retry options predicates that will be applied prior to retrying a request. These predicates
* allow customizing request behavior between retries.
* [#comment: add [#extension-category: envoy.retry_options_predicates] when there are built-in extensions]
*
*
* repeated .envoy.config.core.v3.TypedExtensionConfig retry_options_predicates = 12;
*/
io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getRetryOptionsPredicatesOrBuilder(
int index);
/**
*
* The maximum number of times host selection will be reattempted before giving up, at which
* point the host that was last selected will be routed to. If unspecified, this will default to
* retrying once.
*
*
* int64 host_selection_retry_max_attempts = 6;
* @return The hostSelectionRetryMaxAttempts.
*/
long getHostSelectionRetryMaxAttempts();
/**
*
* HTTP status codes that should trigger a retry in addition to those specified by retry_on.
*
*
* repeated uint32 retriable_status_codes = 7;
* @return A list containing the retriableStatusCodes.
*/
java.util.List getRetriableStatusCodesList();
/**
*
* HTTP status codes that should trigger a retry in addition to those specified by retry_on.
*
*
* repeated uint32 retriable_status_codes = 7;
* @return The count of retriableStatusCodes.
*/
int getRetriableStatusCodesCount();
/**
*
* HTTP status codes that should trigger a retry in addition to those specified by retry_on.
*
*
* repeated uint32 retriable_status_codes = 7;
* @param index The index of the element to return.
* @return The retriableStatusCodes at the given index.
*/
int getRetriableStatusCodes(int index);
/**
*
* Specifies parameters that control exponential retry back off. This parameter is optional, in which case the
* default base interval is 25 milliseconds or, if set, the current value of the
* ``upstream.base_retry_backoff_ms`` runtime parameter. The default maximum interval is 10 times
* the base interval. The documentation for :ref:`config_http_filters_router_x-envoy-max-retries`
* describes Envoy's back-off algorithm.
*
*
* .envoy.config.route.v3.RetryPolicy.RetryBackOff retry_back_off = 8;
* @return Whether the retryBackOff field is set.
*/
boolean hasRetryBackOff();
/**
*
* Specifies parameters that control exponential retry back off. This parameter is optional, in which case the
* default base interval is 25 milliseconds or, if set, the current value of the
* ``upstream.base_retry_backoff_ms`` runtime parameter. The default maximum interval is 10 times
* the base interval. The documentation for :ref:`config_http_filters_router_x-envoy-max-retries`
* describes Envoy's back-off algorithm.
*
*
* .envoy.config.route.v3.RetryPolicy.RetryBackOff retry_back_off = 8;
* @return The retryBackOff.
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RetryBackOff getRetryBackOff();
/**
*
* Specifies parameters that control exponential retry back off. This parameter is optional, in which case the
* default base interval is 25 milliseconds or, if set, the current value of the
* ``upstream.base_retry_backoff_ms`` runtime parameter. The default maximum interval is 10 times
* the base interval. The documentation for :ref:`config_http_filters_router_x-envoy-max-retries`
* describes Envoy's back-off algorithm.
*
*
* .envoy.config.route.v3.RetryPolicy.RetryBackOff retry_back_off = 8;
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RetryBackOffOrBuilder getRetryBackOffOrBuilder();
/**
*
* Specifies parameters that control a retry back-off strategy that is used
* when the request is rate limited by the upstream server. The server may
* return a response header like ``Retry-After`` or ``X-RateLimit-Reset`` to
* provide feedback to the client on how long to wait before retrying. If
* configured, this back-off strategy will be used instead of the
* default exponential back off strategy (configured using ``retry_back_off``)
* whenever a response includes the matching headers.
*
*
* .envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff rate_limited_retry_back_off = 11;
* @return Whether the rateLimitedRetryBackOff field is set.
*/
boolean hasRateLimitedRetryBackOff();
/**
*
* Specifies parameters that control a retry back-off strategy that is used
* when the request is rate limited by the upstream server. The server may
* return a response header like ``Retry-After`` or ``X-RateLimit-Reset`` to
* provide feedback to the client on how long to wait before retrying. If
* configured, this back-off strategy will be used instead of the
* default exponential back off strategy (configured using ``retry_back_off``)
* whenever a response includes the matching headers.
*
*
* .envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff rate_limited_retry_back_off = 11;
* @return The rateLimitedRetryBackOff.
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff getRateLimitedRetryBackOff();
/**
*
* Specifies parameters that control a retry back-off strategy that is used
* when the request is rate limited by the upstream server. The server may
* return a response header like ``Retry-After`` or ``X-RateLimit-Reset`` to
* provide feedback to the client on how long to wait before retrying. If
* configured, this back-off strategy will be used instead of the
* default exponential back off strategy (configured using ``retry_back_off``)
* whenever a response includes the matching headers.
*
*
* .envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff rate_limited_retry_back_off = 11;
*/
io.envoyproxy.envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOffOrBuilder getRateLimitedRetryBackOffOrBuilder();
/**
*
* HTTP response headers that trigger a retry if present in the response. A retry will be
* triggered if any of the header matches match the upstream response headers.
* The field is only consulted if 'retriable-headers' retry policy is active.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_headers = 9;
*/
java.util.List
getRetriableHeadersList();
/**
*
* HTTP response headers that trigger a retry if present in the response. A retry will be
* triggered if any of the header matches match the upstream response headers.
* The field is only consulted if 'retriable-headers' retry policy is active.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_headers = 9;
*/
io.envoyproxy.envoy.config.route.v3.HeaderMatcher getRetriableHeaders(int index);
/**
*
* HTTP response headers that trigger a retry if present in the response. A retry will be
* triggered if any of the header matches match the upstream response headers.
* The field is only consulted if 'retriable-headers' retry policy is active.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_headers = 9;
*/
int getRetriableHeadersCount();
/**
*
* HTTP response headers that trigger a retry if present in the response. A retry will be
* triggered if any of the header matches match the upstream response headers.
* The field is only consulted if 'retriable-headers' retry policy is active.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_headers = 9;
*/
java.util.List extends io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder>
getRetriableHeadersOrBuilderList();
/**
*
* HTTP response headers that trigger a retry if present in the response. A retry will be
* triggered if any of the header matches match the upstream response headers.
* The field is only consulted if 'retriable-headers' retry policy is active.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_headers = 9;
*/
io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder getRetriableHeadersOrBuilder(
int index);
/**
*
* HTTP headers which must be present in the request for retries to be attempted.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_request_headers = 10;
*/
java.util.List
getRetriableRequestHeadersList();
/**
*
* HTTP headers which must be present in the request for retries to be attempted.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_request_headers = 10;
*/
io.envoyproxy.envoy.config.route.v3.HeaderMatcher getRetriableRequestHeaders(int index);
/**
*
* HTTP headers which must be present in the request for retries to be attempted.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_request_headers = 10;
*/
int getRetriableRequestHeadersCount();
/**
*
* HTTP headers which must be present in the request for retries to be attempted.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_request_headers = 10;
*/
java.util.List extends io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder>
getRetriableRequestHeadersOrBuilderList();
/**
*
* HTTP headers which must be present in the request for retries to be attempted.
*
*
* repeated .envoy.config.route.v3.HeaderMatcher retriable_request_headers = 10;
*/
io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder getRetriableRequestHeadersOrBuilder(
int index);
}