Interface RetryPolicyOrBuilder

  • All Superinterfaces:
    com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
    All Known Implementing Classes:
    RetryPolicy, RetryPolicy.Builder

    public interface RetryPolicyOrBuilder
    extends com.google.protobuf.MessageOrBuilder
    • Method Detail

      • getRetryOn

        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;
        Returns:
        The retryOn.
      • getRetryOnBytes

        com.google.protobuf.ByteString getRetryOnBytes()
         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;
        Returns:
        The bytes for retryOn.
      • hasNumRetries

        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) = { ... }
        Returns:
        Whether the numRetries field is set.
      • getNumRetries

        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) = { ... }
        Returns:
        The numRetries.
      • getNumRetriesOrBuilder

        com.google.protobuf.UInt32ValueOrBuilder getNumRetriesOrBuilder()
         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) = { ... }
      • hasPerTryTimeout

        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;
        Returns:
        Whether the perTryTimeout field is set.
      • getPerTryTimeout

        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;
        Returns:
        The perTryTimeout.
      • getPerTryTimeoutOrBuilder

        com.google.protobuf.DurationOrBuilder getPerTryTimeoutOrBuilder()
         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;
      • hasPerTryIdleTimeout

        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;
        Returns:
        Whether the perTryIdleTimeout field is set.
      • getPerTryIdleTimeout

        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;
        Returns:
        The perTryIdleTimeout.
      • getPerTryIdleTimeoutOrBuilder

        com.google.protobuf.DurationOrBuilder getPerTryIdleTimeoutOrBuilder()
         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;
      • hasRetryPriority

        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;
        Returns:
        Whether the retryPriority field is set.
      • getRetryPriority

        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;
        Returns:
        The retryPriority.
      • getRetryPriorityOrBuilder

        RetryPolicy.RetryPriorityOrBuilder getRetryPriorityOrBuilder()
         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;
      • getRetryHostPredicateList

        java.util.List<RetryPolicy.RetryHostPredicate> 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;
      • getRetryHostPredicate

        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;
      • getRetryHostPredicateCount

        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;
      • getRetryHostPredicateOrBuilderList

        java.util.List<? extends 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;
      • getRetryHostPredicateOrBuilder

        RetryPolicy.RetryHostPredicateOrBuilder getRetryHostPredicateOrBuilder​(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;
      • getRetryOptionsPredicatesList

        java.util.List<TypedExtensionConfig> 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;
      • getRetryOptionsPredicates

        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;
      • getRetryOptionsPredicatesCount

        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;
      • getRetryOptionsPredicatesOrBuilderList

        java.util.List<? extends 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;
      • getRetryOptionsPredicatesOrBuilder

        TypedExtensionConfigOrBuilder getRetryOptionsPredicatesOrBuilder​(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;
      • getHostSelectionRetryMaxAttempts

        long getHostSelectionRetryMaxAttempts()
         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;
        Returns:
        The hostSelectionRetryMaxAttempts.
      • getRetriableStatusCodesList

        java.util.List<java.lang.Integer> getRetriableStatusCodesList()
         HTTP status codes that should trigger a retry in addition to those specified by retry_on.
         
        repeated uint32 retriable_status_codes = 7;
        Returns:
        A list containing the retriableStatusCodes.
      • getRetriableStatusCodesCount

        int getRetriableStatusCodesCount()
         HTTP status codes that should trigger a retry in addition to those specified by retry_on.
         
        repeated uint32 retriable_status_codes = 7;
        Returns:
        The count of retriableStatusCodes.
      • getRetriableStatusCodes

        int getRetriableStatusCodes​(int index)
         HTTP status codes that should trigger a retry in addition to those specified by retry_on.
         
        repeated uint32 retriable_status_codes = 7;
        Parameters:
        index - The index of the element to return.
        Returns:
        The retriableStatusCodes at the given index.
      • hasRetryBackOff

        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;
        Returns:
        Whether the retryBackOff field is set.
      • getRetryBackOff

        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;
        Returns:
        The retryBackOff.
      • getRetryBackOffOrBuilder

        RetryPolicy.RetryBackOffOrBuilder getRetryBackOffOrBuilder()
         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;
      • hasRateLimitedRetryBackOff

        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;
        Returns:
        Whether the rateLimitedRetryBackOff field is set.
      • getRateLimitedRetryBackOff

        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;
        Returns:
        The rateLimitedRetryBackOff.
      • getRateLimitedRetryBackOffOrBuilder

        RetryPolicy.RateLimitedRetryBackOffOrBuilder getRateLimitedRetryBackOffOrBuilder()
         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;
      • getRetriableHeadersList

        java.util.List<HeaderMatcher> 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;
      • getRetriableHeaders

        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;
      • getRetriableHeadersCount

        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;
      • getRetriableHeadersOrBuilderList

        java.util.List<? extends 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;
      • getRetriableHeadersOrBuilder

        HeaderMatcherOrBuilder getRetriableHeadersOrBuilder​(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;
      • getRetriableRequestHeadersList

        java.util.List<HeaderMatcher> 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;
      • getRetriableRequestHeaders

        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;
      • getRetriableRequestHeadersCount

        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;
      • getRetriableRequestHeadersOrBuilderList

        java.util.List<? extends 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;
      • getRetriableRequestHeadersOrBuilder

        HeaderMatcherOrBuilder getRetriableRequestHeadersOrBuilder​(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;