.. _envoy_v3_api_file_envoy/extensions/filters/http/ratelimit/v3/rate_limit.proto: Rate limit ========== .. _extension_envoy.filters.http.ratelimit: This extension may be referenced by the qualified name *envoy.filters.http.ratelimit* .. note:: This extension is intended to be robust against untrusted downstream traffic. It assumes that the upstream is trusted. Rate limit :ref:`configuration overview `. .. _envoy_v3_api_msg_extensions.filters.http.ratelimit.v3.RateLimit: extensions.filters.http.ratelimit.v3.RateLimit ---------------------------------------------- `[extensions.filters.http.ratelimit.v3.RateLimit proto] `_ .. code-block:: json { "domain": "...", "stage": "...", "request_type": "...", "timeout": "{...}", "failure_mode_deny": "...", "rate_limited_as_resource_exhausted": "...", "rate_limit_service": "{...}" } .. _envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimit.domain: domain (`string `_, *REQUIRED*) The rate limit domain to use when calling the rate limit service. .. _envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimit.stage: stage (`uint32 `_) 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. .. _envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimit.request_type: request_type (`string `_) 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` is set to true. If :ref:`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. .. _envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimit.timeout: timeout (`Duration `_) The timeout in milliseconds for the rate limit service RPC. If not set, this defaults to 20ms. .. _envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimit.failure_mode_deny: failure_mode_deny (`bool `_) 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. Defaults to false. .. _envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimit.rate_limited_as_resource_exhausted: rate_limited_as_resource_exhausted (`bool `_) 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. .. _envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimit.rate_limit_service: rate_limit_service (:ref:`config.ratelimit.v3.RateLimitServiceConfig `, *REQUIRED*) Configuration for an external rate limit service provider. If not specified, any calls to the rate limit service will immediately return success.