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 Details

    • getRetryOn

      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

      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

      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

      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

      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

      List<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

      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

      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

      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

      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;