java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
io.envoyproxy.envoy.extensions.filters.http.ratelimit.v3.RateLimit
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, RateLimitOrBuilder, Serializable

public final class RateLimit extends com.google.protobuf.GeneratedMessageV3 implements RateLimitOrBuilder
 [#next-free-field: 18]
 
Protobuf type envoy.extensions.filters.http.ratelimit.v3.RateLimit
See Also:
  • Field Details

    • DOMAIN_FIELD_NUMBER

      public static final int DOMAIN_FIELD_NUMBER
      See Also:
    • STAGE_FIELD_NUMBER

      public static final int STAGE_FIELD_NUMBER
      See Also:
    • REQUEST_TYPE_FIELD_NUMBER

      public static final int REQUEST_TYPE_FIELD_NUMBER
      See Also:
    • TIMEOUT_FIELD_NUMBER

      public static final int TIMEOUT_FIELD_NUMBER
      See Also:
    • FAILURE_MODE_DENY_FIELD_NUMBER

      public static final int FAILURE_MODE_DENY_FIELD_NUMBER
      See Also:
    • RATE_LIMITED_AS_RESOURCE_EXHAUSTED_FIELD_NUMBER

      public static final int RATE_LIMITED_AS_RESOURCE_EXHAUSTED_FIELD_NUMBER
      See Also:
    • RATE_LIMIT_SERVICE_FIELD_NUMBER

      public static final int RATE_LIMIT_SERVICE_FIELD_NUMBER
      See Also:
    • ENABLE_X_RATELIMIT_HEADERS_FIELD_NUMBER

      public static final int ENABLE_X_RATELIMIT_HEADERS_FIELD_NUMBER
      See Also:
    • DISABLE_X_ENVOY_RATELIMITED_HEADER_FIELD_NUMBER

      public static final int DISABLE_X_ENVOY_RATELIMITED_HEADER_FIELD_NUMBER
      See Also:
    • RATE_LIMITED_STATUS_FIELD_NUMBER

      public static final int RATE_LIMITED_STATUS_FIELD_NUMBER
      See Also:
    • RESPONSE_HEADERS_TO_ADD_FIELD_NUMBER

      public static final int RESPONSE_HEADERS_TO_ADD_FIELD_NUMBER
      See Also:
    • STATUS_ON_ERROR_FIELD_NUMBER

      public static final int STATUS_ON_ERROR_FIELD_NUMBER
      See Also:
    • STAT_PREFIX_FIELD_NUMBER

      public static final int STAT_PREFIX_FIELD_NUMBER
      See Also:
    • FILTER_ENABLED_FIELD_NUMBER

      public static final int FILTER_ENABLED_FIELD_NUMBER
      See Also:
    • FILTER_ENFORCED_FIELD_NUMBER

      public static final int FILTER_ENFORCED_FIELD_NUMBER
      See Also:
    • FAILURE_MODE_DENY_PERCENT_FIELD_NUMBER

      public static final int FAILURE_MODE_DENY_PERCENT_FIELD_NUMBER
      See Also:
    • RATE_LIMITS_FIELD_NUMBER

      public static final int RATE_LIMITS_FIELD_NUMBER
      See Also:
  • Method Details

    • newInstance

      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      Overrides:
      newInstance in class com.google.protobuf.GeneratedMessageV3
    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
    • getDomain

      public String getDomain()
       The rate limit domain to use when calling the rate limit service.
       
      string domain = 1 [(.validate.rules) = { ... }
      Specified by:
      getDomain in interface RateLimitOrBuilder
      Returns:
      The domain.
    • getDomainBytes

      public com.google.protobuf.ByteString getDomainBytes()
       The rate limit domain to use when calling the rate limit service.
       
      string domain = 1 [(.validate.rules) = { ... }
      Specified by:
      getDomainBytes in interface RateLimitOrBuilder
      Returns:
      The bytes for domain.
    • getStage

      public int getStage()
       Specifies the rate limit configurations to be applied with the same
       stage number. If not set, the default stage number is 0.
      
       .. note::
      
        The filter supports a range of 0 - 10 inclusively for stage numbers.
       
      uint32 stage = 2 [(.validate.rules) = { ... }
      Specified by:
      getStage in interface RateLimitOrBuilder
      Returns:
      The stage.
    • getRequestType

      public String getRequestType()
       The type of requests the filter should apply to. The supported
       types are ``internal``, ``external`` or ``both``. A request is considered internal if
       :ref:`x-envoy-internal<config_http_conn_man_headers_x-envoy-internal>` is set to true. If
       :ref:`x-envoy-internal<config_http_conn_man_headers_x-envoy-internal>` is not set or false, a
       request is considered external. The filter defaults to ``both``, and it will apply to all request
       types.
       
      string request_type = 3 [(.validate.rules) = { ... }
      Specified by:
      getRequestType in interface RateLimitOrBuilder
      Returns:
      The requestType.
    • getRequestTypeBytes

      public com.google.protobuf.ByteString getRequestTypeBytes()
       The type of requests the filter should apply to. The supported
       types are ``internal``, ``external`` or ``both``. A request is considered internal if
       :ref:`x-envoy-internal<config_http_conn_man_headers_x-envoy-internal>` is set to true. If
       :ref:`x-envoy-internal<config_http_conn_man_headers_x-envoy-internal>` is not set or false, a
       request is considered external. The filter defaults to ``both``, and it will apply to all request
       types.
       
      string request_type = 3 [(.validate.rules) = { ... }
      Specified by:
      getRequestTypeBytes in interface RateLimitOrBuilder
      Returns:
      The bytes for requestType.
    • hasTimeout

      public boolean hasTimeout()
       The timeout in milliseconds for the rate limit service RPC. If not
       set, this defaults to 20ms.
       
      .google.protobuf.Duration timeout = 4;
      Specified by:
      hasTimeout in interface RateLimitOrBuilder
      Returns:
      Whether the timeout field is set.
    • getTimeout

      public com.google.protobuf.Duration getTimeout()
       The timeout in milliseconds for the rate limit service RPC. If not
       set, this defaults to 20ms.
       
      .google.protobuf.Duration timeout = 4;
      Specified by:
      getTimeout in interface RateLimitOrBuilder
      Returns:
      The timeout.
    • getTimeoutOrBuilder

      public com.google.protobuf.DurationOrBuilder getTimeoutOrBuilder()
       The timeout in milliseconds for the rate limit service RPC. If not
       set, this defaults to 20ms.
       
      .google.protobuf.Duration timeout = 4;
      Specified by:
      getTimeoutOrBuilder in interface RateLimitOrBuilder
    • getFailureModeDeny

      public boolean getFailureModeDeny()
       The filter's behaviour in case the rate limiting service does
       not respond back. When it is set to true, Envoy will not allow traffic in case of
       communication failure between rate limiting service and the proxy.
       
      bool failure_mode_deny = 5;
      Specified by:
      getFailureModeDeny in interface RateLimitOrBuilder
      Returns:
      The failureModeDeny.
    • getRateLimitedAsResourceExhausted

      public boolean getRateLimitedAsResourceExhausted()
       Specifies whether a ``RESOURCE_EXHAUSTED`` gRPC code must be returned instead
       of the default ``UNAVAILABLE`` gRPC code for a rate limited gRPC call. The
       HTTP code will be 200 for a gRPC response.
       
      bool rate_limited_as_resource_exhausted = 6;
      Specified by:
      getRateLimitedAsResourceExhausted in interface RateLimitOrBuilder
      Returns:
      The rateLimitedAsResourceExhausted.
    • hasRateLimitService

      public boolean hasRateLimitService()
       Configuration for an external rate limit service provider. If not
       specified, any calls to the rate limit service will immediately return
       success.
       
      .envoy.config.ratelimit.v3.RateLimitServiceConfig rate_limit_service = 7 [(.validate.rules) = { ... }
      Specified by:
      hasRateLimitService in interface RateLimitOrBuilder
      Returns:
      Whether the rateLimitService field is set.
    • getRateLimitService

      public RateLimitServiceConfig getRateLimitService()
       Configuration for an external rate limit service provider. If not
       specified, any calls to the rate limit service will immediately return
       success.
       
      .envoy.config.ratelimit.v3.RateLimitServiceConfig rate_limit_service = 7 [(.validate.rules) = { ... }
      Specified by:
      getRateLimitService in interface RateLimitOrBuilder
      Returns:
      The rateLimitService.
    • getRateLimitServiceOrBuilder

      public RateLimitServiceConfigOrBuilder getRateLimitServiceOrBuilder()
       Configuration for an external rate limit service provider. If not
       specified, any calls to the rate limit service will immediately return
       success.
       
      .envoy.config.ratelimit.v3.RateLimitServiceConfig rate_limit_service = 7 [(.validate.rules) = { ... }
      Specified by:
      getRateLimitServiceOrBuilder in interface RateLimitOrBuilder
    • getEnableXRatelimitHeadersValue

      public int getEnableXRatelimitHeadersValue()
       Defines the standard version to use for X-RateLimit headers emitted by the filter:
      
       * ``X-RateLimit-Limit`` - indicates the request-quota associated to the
         client in the current time-window followed by the description of the
         quota policy. The values are returned by the rate limiting service in
         :ref:`current_limit<envoy_v3_api_field_service.ratelimit.v3.RateLimitResponse.DescriptorStatus.current_limit>`
         field. Example: ``10, 10;w=1;name="per-ip", 1000;w=3600``.
       * ``X-RateLimit-Remaining`` - indicates the remaining requests in the
         current time-window. The values are returned by the rate limiting service
         in :ref:`limit_remaining<envoy_v3_api_field_service.ratelimit.v3.RateLimitResponse.DescriptorStatus.limit_remaining>`
         field.
       * ``X-RateLimit-Reset`` - indicates the number of seconds until reset of
         the current time-window. The values are returned by the rate limiting service
         in :ref:`duration_until_reset<envoy_v3_api_field_service.ratelimit.v3.RateLimitResponse.DescriptorStatus.duration_until_reset>`
         field.
      
       In case rate limiting policy specifies more than one time window, the values
       above represent the window that is closest to reaching its limit.
      
       For more information about the headers specification see selected version of
       the `draft RFC <https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html>`_.
      
       Disabled by default.
      
       [#next-major-version: unify with local ratelimit, should use common.ratelimit.v3.XRateLimitHeadersRFCVersion instead.]
       
      .envoy.extensions.filters.http.ratelimit.v3.RateLimit.XRateLimitHeadersRFCVersion enable_x_ratelimit_headers = 8 [(.validate.rules) = { ... }
      Specified by:
      getEnableXRatelimitHeadersValue in interface RateLimitOrBuilder
      Returns:
      The enum numeric value on the wire for enableXRatelimitHeaders.
    • getEnableXRatelimitHeaders

      public RateLimit.XRateLimitHeadersRFCVersion getEnableXRatelimitHeaders()
       Defines the standard version to use for X-RateLimit headers emitted by the filter:
      
       * ``X-RateLimit-Limit`` - indicates the request-quota associated to the
         client in the current time-window followed by the description of the
         quota policy. The values are returned by the rate limiting service in
         :ref:`current_limit<envoy_v3_api_field_service.ratelimit.v3.RateLimitResponse.DescriptorStatus.current_limit>`
         field. Example: ``10, 10;w=1;name="per-ip", 1000;w=3600``.
       * ``X-RateLimit-Remaining`` - indicates the remaining requests in the
         current time-window. The values are returned by the rate limiting service
         in :ref:`limit_remaining<envoy_v3_api_field_service.ratelimit.v3.RateLimitResponse.DescriptorStatus.limit_remaining>`
         field.
       * ``X-RateLimit-Reset`` - indicates the number of seconds until reset of
         the current time-window. The values are returned by the rate limiting service
         in :ref:`duration_until_reset<envoy_v3_api_field_service.ratelimit.v3.RateLimitResponse.DescriptorStatus.duration_until_reset>`
         field.
      
       In case rate limiting policy specifies more than one time window, the values
       above represent the window that is closest to reaching its limit.
      
       For more information about the headers specification see selected version of
       the `draft RFC <https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html>`_.
      
       Disabled by default.
      
       [#next-major-version: unify with local ratelimit, should use common.ratelimit.v3.XRateLimitHeadersRFCVersion instead.]
       
      .envoy.extensions.filters.http.ratelimit.v3.RateLimit.XRateLimitHeadersRFCVersion enable_x_ratelimit_headers = 8 [(.validate.rules) = { ... }
      Specified by:
      getEnableXRatelimitHeaders in interface RateLimitOrBuilder
      Returns:
      The enableXRatelimitHeaders.
    • getDisableXEnvoyRatelimitedHeader

      public boolean getDisableXEnvoyRatelimitedHeader()
       Disables emitting the :ref:`x-envoy-ratelimited<config_http_filters_router_x-envoy-ratelimited>` header
       in case of rate limiting (i.e. 429 responses).
       Having this header not present potentially makes the request retriable.
       
      bool disable_x_envoy_ratelimited_header = 9;
      Specified by:
      getDisableXEnvoyRatelimitedHeader in interface RateLimitOrBuilder
      Returns:
      The disableXEnvoyRatelimitedHeader.
    • hasRateLimitedStatus

      public boolean hasRateLimitedStatus()
       This field allows for a custom HTTP response status code to the downstream client when
       the request has been rate limited.
       Defaults to 429 (TooManyRequests).
      
       .. note::
         If this is set to < 400, 429 will be used instead.
       
      .envoy.type.v3.HttpStatus rate_limited_status = 10;
      Specified by:
      hasRateLimitedStatus in interface RateLimitOrBuilder
      Returns:
      Whether the rateLimitedStatus field is set.
    • getRateLimitedStatus

      public HttpStatus getRateLimitedStatus()
       This field allows for a custom HTTP response status code to the downstream client when
       the request has been rate limited.
       Defaults to 429 (TooManyRequests).
      
       .. note::
         If this is set to < 400, 429 will be used instead.
       
      .envoy.type.v3.HttpStatus rate_limited_status = 10;
      Specified by:
      getRateLimitedStatus in interface RateLimitOrBuilder
      Returns:
      The rateLimitedStatus.
    • getRateLimitedStatusOrBuilder

      public HttpStatusOrBuilder getRateLimitedStatusOrBuilder()
       This field allows for a custom HTTP response status code to the downstream client when
       the request has been rate limited.
       Defaults to 429 (TooManyRequests).
      
       .. note::
         If this is set to < 400, 429 will be used instead.
       
      .envoy.type.v3.HttpStatus rate_limited_status = 10;
      Specified by:
      getRateLimitedStatusOrBuilder in interface RateLimitOrBuilder
    • getResponseHeadersToAddList

      public List<HeaderValueOption> getResponseHeadersToAddList()
       Specifies a list of HTTP headers that should be added to each response for requests that
       have been rate limited.
       
      repeated .envoy.config.core.v3.HeaderValueOption response_headers_to_add = 11 [(.validate.rules) = { ... }
      Specified by:
      getResponseHeadersToAddList in interface RateLimitOrBuilder
    • getResponseHeadersToAddOrBuilderList

      public List<? extends HeaderValueOptionOrBuilder> getResponseHeadersToAddOrBuilderList()
       Specifies a list of HTTP headers that should be added to each response for requests that
       have been rate limited.
       
      repeated .envoy.config.core.v3.HeaderValueOption response_headers_to_add = 11 [(.validate.rules) = { ... }
      Specified by:
      getResponseHeadersToAddOrBuilderList in interface RateLimitOrBuilder
    • getResponseHeadersToAddCount

      public int getResponseHeadersToAddCount()
       Specifies a list of HTTP headers that should be added to each response for requests that
       have been rate limited.
       
      repeated .envoy.config.core.v3.HeaderValueOption response_headers_to_add = 11 [(.validate.rules) = { ... }
      Specified by:
      getResponseHeadersToAddCount in interface RateLimitOrBuilder
    • getResponseHeadersToAdd

      public HeaderValueOption getResponseHeadersToAdd(int index)
       Specifies a list of HTTP headers that should be added to each response for requests that
       have been rate limited.
       
      repeated .envoy.config.core.v3.HeaderValueOption response_headers_to_add = 11 [(.validate.rules) = { ... }
      Specified by:
      getResponseHeadersToAdd in interface RateLimitOrBuilder
    • getResponseHeadersToAddOrBuilder

      public HeaderValueOptionOrBuilder getResponseHeadersToAddOrBuilder(int index)
       Specifies a list of HTTP headers that should be added to each response for requests that
       have been rate limited.
       
      repeated .envoy.config.core.v3.HeaderValueOption response_headers_to_add = 11 [(.validate.rules) = { ... }
      Specified by:
      getResponseHeadersToAddOrBuilder in interface RateLimitOrBuilder
    • hasStatusOnError

      public boolean hasStatusOnError()
       Sets the HTTP status that is returned to the client when the ratelimit server returns an error
       or cannot be reached. The default status is 500.
       
      .envoy.type.v3.HttpStatus status_on_error = 12;
      Specified by:
      hasStatusOnError in interface RateLimitOrBuilder
      Returns:
      Whether the statusOnError field is set.
    • getStatusOnError

      public HttpStatus getStatusOnError()
       Sets the HTTP status that is returned to the client when the ratelimit server returns an error
       or cannot be reached. The default status is 500.
       
      .envoy.type.v3.HttpStatus status_on_error = 12;
      Specified by:
      getStatusOnError in interface RateLimitOrBuilder
      Returns:
      The statusOnError.
    • getStatusOnErrorOrBuilder

      public HttpStatusOrBuilder getStatusOnErrorOrBuilder()
       Sets the HTTP status that is returned to the client when the ratelimit server returns an error
       or cannot be reached. The default status is 500.
       
      .envoy.type.v3.HttpStatus status_on_error = 12;
      Specified by:
      getStatusOnErrorOrBuilder in interface RateLimitOrBuilder
    • getStatPrefix

      public String getStatPrefix()
       Optional additional prefix to use when emitting statistics. This allows to distinguish
       emitted statistics between configured ``ratelimit`` filters in an HTTP filter chain.
       
      string stat_prefix = 13;
      Specified by:
      getStatPrefix in interface RateLimitOrBuilder
      Returns:
      The statPrefix.
    • getStatPrefixBytes

      public com.google.protobuf.ByteString getStatPrefixBytes()
       Optional additional prefix to use when emitting statistics. This allows to distinguish
       emitted statistics between configured ``ratelimit`` filters in an HTTP filter chain.
       
      string stat_prefix = 13;
      Specified by:
      getStatPrefixBytes in interface RateLimitOrBuilder
      Returns:
      The bytes for statPrefix.
    • hasFilterEnabled

      public boolean hasFilterEnabled()
       If set, this will enable -- but not necessarily enforce -- the rate limit for the given
       fraction of requests.
      
       If not set then ``ratelimit.http_filter_enabled`` runtime key will be used to determine
       the fraction of requests to enforce rate limits on. And the default percentage of the
       runtime key is 100% for backwards compatibility.
       
      .envoy.config.core.v3.RuntimeFractionalPercent filter_enabled = 14;
      Specified by:
      hasFilterEnabled in interface RateLimitOrBuilder
      Returns:
      Whether the filterEnabled field is set.
    • getFilterEnabled

      public RuntimeFractionalPercent getFilterEnabled()
       If set, this will enable -- but not necessarily enforce -- the rate limit for the given
       fraction of requests.
      
       If not set then ``ratelimit.http_filter_enabled`` runtime key will be used to determine
       the fraction of requests to enforce rate limits on. And the default percentage of the
       runtime key is 100% for backwards compatibility.
       
      .envoy.config.core.v3.RuntimeFractionalPercent filter_enabled = 14;
      Specified by:
      getFilterEnabled in interface RateLimitOrBuilder
      Returns:
      The filterEnabled.
    • getFilterEnabledOrBuilder

      public RuntimeFractionalPercentOrBuilder getFilterEnabledOrBuilder()
       If set, this will enable -- but not necessarily enforce -- the rate limit for the given
       fraction of requests.
      
       If not set then ``ratelimit.http_filter_enabled`` runtime key will be used to determine
       the fraction of requests to enforce rate limits on. And the default percentage of the
       runtime key is 100% for backwards compatibility.
       
      .envoy.config.core.v3.RuntimeFractionalPercent filter_enabled = 14;
      Specified by:
      getFilterEnabledOrBuilder in interface RateLimitOrBuilder
    • hasFilterEnforced

      public boolean hasFilterEnforced()
       If set, this will enforce the rate limit decisions for the given fraction of requests.
      
       Note: this only applies to the fraction of enabled requests.
      
       If not set then ``ratelimit.http_filter_enforcing`` runtime key will be used to determine
       the fraction of requests to enforce rate limits on. And the default percentage of the
       runtime key is 100% for backwards compatibility.
       
      .envoy.config.core.v3.RuntimeFractionalPercent filter_enforced = 15;
      Specified by:
      hasFilterEnforced in interface RateLimitOrBuilder
      Returns:
      Whether the filterEnforced field is set.
    • getFilterEnforced

      public RuntimeFractionalPercent getFilterEnforced()
       If set, this will enforce the rate limit decisions for the given fraction of requests.
      
       Note: this only applies to the fraction of enabled requests.
      
       If not set then ``ratelimit.http_filter_enforcing`` runtime key will be used to determine
       the fraction of requests to enforce rate limits on. And the default percentage of the
       runtime key is 100% for backwards compatibility.
       
      .envoy.config.core.v3.RuntimeFractionalPercent filter_enforced = 15;
      Specified by:
      getFilterEnforced in interface RateLimitOrBuilder
      Returns:
      The filterEnforced.
    • getFilterEnforcedOrBuilder

      public RuntimeFractionalPercentOrBuilder getFilterEnforcedOrBuilder()
       If set, this will enforce the rate limit decisions for the given fraction of requests.
      
       Note: this only applies to the fraction of enabled requests.
      
       If not set then ``ratelimit.http_filter_enforcing`` runtime key will be used to determine
       the fraction of requests to enforce rate limits on. And the default percentage of the
       runtime key is 100% for backwards compatibility.
       
      .envoy.config.core.v3.RuntimeFractionalPercent filter_enforced = 15;
      Specified by:
      getFilterEnforcedOrBuilder in interface RateLimitOrBuilder
    • hasFailureModeDenyPercent

      public boolean hasFailureModeDenyPercent()
       If set, this will override the failure_mode_deny parameter with a runtime fraction.
       If the runtime key is not specified, the value of failure_mode_deny will be used.
      
       Example:
      
       .. code-block:: yaml
      
         failure_mode_deny: true
         failure_mode_deny_percent:
           default_value:
             numerator: 50
             denominator: HUNDRED
           runtime_key: ratelimit.failure_mode_deny_percent
      
       This means that when the rate limit service is unavailable, 50% of requests will be denied
       (fail closed) and 50% will be allowed (fail open).
       
      .envoy.config.core.v3.RuntimeFractionalPercent failure_mode_deny_percent = 16;
      Specified by:
      hasFailureModeDenyPercent in interface RateLimitOrBuilder
      Returns:
      Whether the failureModeDenyPercent field is set.
    • getFailureModeDenyPercent

      public RuntimeFractionalPercent getFailureModeDenyPercent()
       If set, this will override the failure_mode_deny parameter with a runtime fraction.
       If the runtime key is not specified, the value of failure_mode_deny will be used.
      
       Example:
      
       .. code-block:: yaml
      
         failure_mode_deny: true
         failure_mode_deny_percent:
           default_value:
             numerator: 50
             denominator: HUNDRED
           runtime_key: ratelimit.failure_mode_deny_percent
      
       This means that when the rate limit service is unavailable, 50% of requests will be denied
       (fail closed) and 50% will be allowed (fail open).
       
      .envoy.config.core.v3.RuntimeFractionalPercent failure_mode_deny_percent = 16;
      Specified by:
      getFailureModeDenyPercent in interface RateLimitOrBuilder
      Returns:
      The failureModeDenyPercent.
    • getFailureModeDenyPercentOrBuilder

      public RuntimeFractionalPercentOrBuilder getFailureModeDenyPercentOrBuilder()
       If set, this will override the failure_mode_deny parameter with a runtime fraction.
       If the runtime key is not specified, the value of failure_mode_deny will be used.
      
       Example:
      
       .. code-block:: yaml
      
         failure_mode_deny: true
         failure_mode_deny_percent:
           default_value:
             numerator: 50
             denominator: HUNDRED
           runtime_key: ratelimit.failure_mode_deny_percent
      
       This means that when the rate limit service is unavailable, 50% of requests will be denied
       (fail closed) and 50% will be allowed (fail open).
       
      .envoy.config.core.v3.RuntimeFractionalPercent failure_mode_deny_percent = 16;
      Specified by:
      getFailureModeDenyPercentOrBuilder in interface RateLimitOrBuilder
    • getRateLimitsList

      public List<RateLimit> getRateLimitsList()
       Rate limit configuration that is used to generate a list of descriptor entries based on
       the request context. The generated entries will be sent to the rate limit service.
       If this is set, then
       :ref:`VirtualHost.rate_limits<envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` or
       :ref:`RouteAction.rate_limits<envoy_v3_api_field_config.route.v3.RouteAction.rate_limits>` fields
       will be ignored. However, :ref:`RateLimitPerRoute.rate_limits<envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.rate_limits>`
       will take precedence over this field.
      
       .. note::
         Not all configuration fields of
         :ref:`rate limit config <envoy_v3_api_msg_config.route.v3.RateLimit>` is supported at here.
         Following fields are not supported:
      
         1. :ref:`rate limit stage <envoy_v3_api_field_config.route.v3.RateLimit.stage>`.
         2. :ref:`dynamic metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.dynamic_metadata>`.
         3. :ref:`disable_key <envoy_v3_api_field_config.route.v3.RateLimit.disable_key>`.
         4. :ref:`override limit <envoy_v3_api_field_config.route.v3.RateLimit.limit>`.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 17;
      Specified by:
      getRateLimitsList in interface RateLimitOrBuilder
    • getRateLimitsOrBuilderList

      public List<? extends RateLimitOrBuilder> getRateLimitsOrBuilderList()
       Rate limit configuration that is used to generate a list of descriptor entries based on
       the request context. The generated entries will be sent to the rate limit service.
       If this is set, then
       :ref:`VirtualHost.rate_limits<envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` or
       :ref:`RouteAction.rate_limits<envoy_v3_api_field_config.route.v3.RouteAction.rate_limits>` fields
       will be ignored. However, :ref:`RateLimitPerRoute.rate_limits<envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.rate_limits>`
       will take precedence over this field.
      
       .. note::
         Not all configuration fields of
         :ref:`rate limit config <envoy_v3_api_msg_config.route.v3.RateLimit>` is supported at here.
         Following fields are not supported:
      
         1. :ref:`rate limit stage <envoy_v3_api_field_config.route.v3.RateLimit.stage>`.
         2. :ref:`dynamic metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.dynamic_metadata>`.
         3. :ref:`disable_key <envoy_v3_api_field_config.route.v3.RateLimit.disable_key>`.
         4. :ref:`override limit <envoy_v3_api_field_config.route.v3.RateLimit.limit>`.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 17;
      Specified by:
      getRateLimitsOrBuilderList in interface RateLimitOrBuilder
    • getRateLimitsCount

      public int getRateLimitsCount()
       Rate limit configuration that is used to generate a list of descriptor entries based on
       the request context. The generated entries will be sent to the rate limit service.
       If this is set, then
       :ref:`VirtualHost.rate_limits<envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` or
       :ref:`RouteAction.rate_limits<envoy_v3_api_field_config.route.v3.RouteAction.rate_limits>` fields
       will be ignored. However, :ref:`RateLimitPerRoute.rate_limits<envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.rate_limits>`
       will take precedence over this field.
      
       .. note::
         Not all configuration fields of
         :ref:`rate limit config <envoy_v3_api_msg_config.route.v3.RateLimit>` is supported at here.
         Following fields are not supported:
      
         1. :ref:`rate limit stage <envoy_v3_api_field_config.route.v3.RateLimit.stage>`.
         2. :ref:`dynamic metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.dynamic_metadata>`.
         3. :ref:`disable_key <envoy_v3_api_field_config.route.v3.RateLimit.disable_key>`.
         4. :ref:`override limit <envoy_v3_api_field_config.route.v3.RateLimit.limit>`.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 17;
      Specified by:
      getRateLimitsCount in interface RateLimitOrBuilder
    • getRateLimits

      public RateLimit getRateLimits(int index)
       Rate limit configuration that is used to generate a list of descriptor entries based on
       the request context. The generated entries will be sent to the rate limit service.
       If this is set, then
       :ref:`VirtualHost.rate_limits<envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` or
       :ref:`RouteAction.rate_limits<envoy_v3_api_field_config.route.v3.RouteAction.rate_limits>` fields
       will be ignored. However, :ref:`RateLimitPerRoute.rate_limits<envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.rate_limits>`
       will take precedence over this field.
      
       .. note::
         Not all configuration fields of
         :ref:`rate limit config <envoy_v3_api_msg_config.route.v3.RateLimit>` is supported at here.
         Following fields are not supported:
      
         1. :ref:`rate limit stage <envoy_v3_api_field_config.route.v3.RateLimit.stage>`.
         2. :ref:`dynamic metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.dynamic_metadata>`.
         3. :ref:`disable_key <envoy_v3_api_field_config.route.v3.RateLimit.disable_key>`.
         4. :ref:`override limit <envoy_v3_api_field_config.route.v3.RateLimit.limit>`.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 17;
      Specified by:
      getRateLimits in interface RateLimitOrBuilder
    • getRateLimitsOrBuilder

      public RateLimitOrBuilder getRateLimitsOrBuilder(int index)
       Rate limit configuration that is used to generate a list of descriptor entries based on
       the request context. The generated entries will be sent to the rate limit service.
       If this is set, then
       :ref:`VirtualHost.rate_limits<envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` or
       :ref:`RouteAction.rate_limits<envoy_v3_api_field_config.route.v3.RouteAction.rate_limits>` fields
       will be ignored. However, :ref:`RateLimitPerRoute.rate_limits<envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.rate_limits>`
       will take precedence over this field.
      
       .. note::
         Not all configuration fields of
         :ref:`rate limit config <envoy_v3_api_msg_config.route.v3.RateLimit>` is supported at here.
         Following fields are not supported:
      
         1. :ref:`rate limit stage <envoy_v3_api_field_config.route.v3.RateLimit.stage>`.
         2. :ref:`dynamic metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.dynamic_metadata>`.
         3. :ref:`disable_key <envoy_v3_api_field_config.route.v3.RateLimit.disable_key>`.
         4. :ref:`override limit <envoy_v3_api_field_config.route.v3.RateLimit.limit>`.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 17;
      Specified by:
      getRateLimitsOrBuilder in interface RateLimitOrBuilder
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessageV3
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static RateLimit parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RateLimit parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RateLimit parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RateLimit parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RateLimit parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RateLimit parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static RateLimit parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static RateLimit parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static RateLimit parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static RateLimit parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static RateLimit parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static RateLimit parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

      public RateLimit.Builder newBuilderForType()
      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

      public static RateLimit.Builder newBuilder()
    • newBuilder

      public static RateLimit.Builder newBuilder(RateLimit prototype)
    • toBuilder

      public RateLimit.Builder toBuilder()
      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected RateLimit.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      Specified by:
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstance

      public static RateLimit getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<RateLimit> parser()
    • getParserForType

      public com.google.protobuf.Parser<RateLimit> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstanceForType

      public RateLimit getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder