Class RateLimit
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class[#next-free-field: 18]static enumDefines the version of the standard to use for X-RateLimit headers.Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3
com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT, BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessageLite.InternalOneOfEnum -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intFields inherited from class com.google.protobuf.GeneratedMessageV3
alwaysUseFieldBuilders, unknownFieldsFields inherited from class com.google.protobuf.AbstractMessage
memoizedSizeFields inherited from class com.google.protobuf.AbstractMessageLite
memoizedHashCode -
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic RateLimitstatic final com.google.protobuf.Descriptors.DescriptorbooleanDisables emitting the :ref:`x-envoy-ratelimited<config_http_filters_router_x-envoy-ratelimited>` header in case of rate limiting (i.e. 429 responses).The rate limit domain to use when calling the rate limit service.com.google.protobuf.ByteStringThe rate limit domain to use when calling the rate limit service.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.intDefines 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.booleanThe filter's behaviour in case the rate limiting service does not respond back.If set, this will override the failure_mode_deny parameter with a runtime fraction.If set, this will override the failure_mode_deny parameter with a runtime fraction.If set, this will enable -- but not necessarily enforce -- the rate limit for the given fraction of requests.If set, this will enable -- but not necessarily enforce -- the rate limit for the given fraction of requests.If set, this will enforce the rate limit decisions for the given fraction of requests.If set, this will enforce the rate limit decisions for the given fraction of requests.com.google.protobuf.Parser<RateLimit>booleanSpecifies whether a ``RESOURCE_EXHAUSTED`` gRPC code must be returned instead of the default ``UNAVAILABLE`` gRPC code for a rate limited gRPC call.This field allows for a custom HTTP response status code to the downstream client when the request has been rate limited.This field allows for a custom HTTP response status code to the downstream client when the request has been rate limited.getRateLimits(int index) Rate limit configuration that is used to generate a list of descriptor entries based on the request context.intRate limit configuration that is used to generate a list of descriptor entries based on the request context.Configuration for an external rate limit service provider.Configuration for an external rate limit service provider.Rate limit configuration that is used to generate a list of descriptor entries based on the request context.getRateLimitsOrBuilder(int index) Rate limit configuration that is used to generate a list of descriptor entries based on the request context.List<? extends RateLimitOrBuilder>Rate limit configuration that is used to generate a list of descriptor entries based on the request context.The type of requests the filter should apply to.com.google.protobuf.ByteStringThe type of requests the filter should apply to.getResponseHeadersToAdd(int index) Specifies a list of HTTP headers that should be added to each response for requests that have been rate limited.intSpecifies a list of HTTP headers that should be added to each response for requests that have been rate limited.Specifies a list of HTTP headers that should be added to each response for requests that have been rate limited.getResponseHeadersToAddOrBuilder(int index) Specifies a list of HTTP headers that should be added to each response for requests that have been rate limited.List<? extends HeaderValueOptionOrBuilder>Specifies a list of HTTP headers that should be added to each response for requests that have been rate limited.intintgetStage()Specifies the rate limit configurations to be applied with the same stage number.Optional additional prefix to use when emitting statistics.com.google.protobuf.ByteStringOptional additional prefix to use when emitting statistics.Sets the HTTP status that is returned to the client when the ratelimit server returns an error or cannot be reached.Sets the HTTP status that is returned to the client when the ratelimit server returns an error or cannot be reached.com.google.protobuf.DurationThe timeout in milliseconds for the rate limit service RPC.com.google.protobuf.DurationOrBuilderThe timeout in milliseconds for the rate limit service RPC.booleanIf set, this will override the failure_mode_deny parameter with a runtime fraction.booleanIf set, this will enable -- but not necessarily enforce -- the rate limit for the given fraction of requests.booleanIf set, this will enforce the rate limit decisions for the given fraction of requests.inthashCode()booleanThis field allows for a custom HTTP response status code to the downstream client when the request has been rate limited.booleanConfiguration for an external rate limit service provider.booleanSets the HTTP status that is returned to the client when the ratelimit server returns an error or cannot be reached.booleanThe timeout in milliseconds for the rate limit service RPC.protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTablefinal booleanstatic RateLimit.Builderstatic RateLimit.BuildernewBuilder(RateLimit prototype) protected RateLimit.BuildernewBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) protected ObjectnewInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused) static RateLimitparseDelimitedFrom(InputStream input) static RateLimitparseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static RateLimitparseFrom(byte[] data) static RateLimitparseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static RateLimitparseFrom(com.google.protobuf.ByteString data) static RateLimitparseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static RateLimitparseFrom(com.google.protobuf.CodedInputStream input) static RateLimitparseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static RateLimitparseFrom(InputStream input) static RateLimitparseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static RateLimitparseFrom(ByteBuffer data) static RateLimitparseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static com.google.protobuf.Parser<RateLimit>parser()voidwriteTo(com.google.protobuf.CodedOutputStream output) Methods inherited from class com.google.protobuf.GeneratedMessageV3
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTagMethods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toStringMethods inherited from class com.google.protobuf.AbstractMessageLite
addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeToMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.google.protobuf.MessageLite
toByteArray, toByteString, writeDelimitedTo, writeToMethods inherited from interface com.google.protobuf.MessageOrBuilder
findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
-
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
- Overrides:
newInstancein classcom.google.protobuf.GeneratedMessageV3
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() -
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()- Specified by:
internalGetFieldAccessorTablein classcom.google.protobuf.GeneratedMessageV3
-
getDomain
The rate limit domain to use when calling the rate limit service.
string domain = 1 [(.validate.rules) = { ... }- Specified by:
getDomainin interfaceRateLimitOrBuilder- 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:
getDomainBytesin interfaceRateLimitOrBuilder- 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:
getStagein interfaceRateLimitOrBuilder- Returns:
- The stage.
-
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:
getRequestTypein interfaceRateLimitOrBuilder- 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:
getRequestTypeBytesin interfaceRateLimitOrBuilder- 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:
hasTimeoutin interfaceRateLimitOrBuilder- 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:
getTimeoutin interfaceRateLimitOrBuilder- 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:
getTimeoutOrBuilderin interfaceRateLimitOrBuilder
-
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:
getFailureModeDenyin interfaceRateLimitOrBuilder- 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:
getRateLimitedAsResourceExhaustedin interfaceRateLimitOrBuilder- 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:
hasRateLimitServicein interfaceRateLimitOrBuilder- Returns:
- Whether the rateLimitService field is set.
-
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:
getRateLimitServicein interfaceRateLimitOrBuilder- Returns:
- The rateLimitService.
-
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:
getRateLimitServiceOrBuilderin interfaceRateLimitOrBuilder
-
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:
getEnableXRatelimitHeadersValuein interfaceRateLimitOrBuilder- Returns:
- The enum numeric value on the wire for enableXRatelimitHeaders.
-
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:
getEnableXRatelimitHeadersin interfaceRateLimitOrBuilder- 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:
getDisableXEnvoyRatelimitedHeaderin interfaceRateLimitOrBuilder- 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:
hasRateLimitedStatusin interfaceRateLimitOrBuilder- Returns:
- Whether the rateLimitedStatus field is set.
-
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:
getRateLimitedStatusin interfaceRateLimitOrBuilder- Returns:
- The rateLimitedStatus.
-
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:
getRateLimitedStatusOrBuilderin interfaceRateLimitOrBuilder
-
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:
getResponseHeadersToAddListin interfaceRateLimitOrBuilder
-
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:
getResponseHeadersToAddOrBuilderListin interfaceRateLimitOrBuilder
-
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:
getResponseHeadersToAddCountin interfaceRateLimitOrBuilder
-
getResponseHeadersToAdd
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:
getResponseHeadersToAddin interfaceRateLimitOrBuilder
-
getResponseHeadersToAddOrBuilder
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:
getResponseHeadersToAddOrBuilderin interfaceRateLimitOrBuilder
-
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:
hasStatusOnErrorin interfaceRateLimitOrBuilder- Returns:
- Whether the statusOnError field is set.
-
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:
getStatusOnErrorin interfaceRateLimitOrBuilder- Returns:
- The statusOnError.
-
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:
getStatusOnErrorOrBuilderin interfaceRateLimitOrBuilder
-
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:
getStatPrefixin interfaceRateLimitOrBuilder- 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:
getStatPrefixBytesin interfaceRateLimitOrBuilder- 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:
hasFilterEnabledin interfaceRateLimitOrBuilder- Returns:
- Whether the filterEnabled field is set.
-
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:
getFilterEnabledin interfaceRateLimitOrBuilder- Returns:
- The filterEnabled.
-
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:
getFilterEnabledOrBuilderin interfaceRateLimitOrBuilder
-
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:
hasFilterEnforcedin interfaceRateLimitOrBuilder- Returns:
- Whether the filterEnforced field is set.
-
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:
getFilterEnforcedin interfaceRateLimitOrBuilder- Returns:
- The filterEnforced.
-
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:
getFilterEnforcedOrBuilderin interfaceRateLimitOrBuilder
-
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:
hasFailureModeDenyPercentin interfaceRateLimitOrBuilder- Returns:
- Whether the failureModeDenyPercent field is set.
-
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:
getFailureModeDenyPercentin interfaceRateLimitOrBuilder- Returns:
- The failureModeDenyPercent.
-
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:
getFailureModeDenyPercentOrBuilderin interfaceRateLimitOrBuilder
-
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:
getRateLimitsListin interfaceRateLimitOrBuilder
-
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:
getRateLimitsOrBuilderListin interfaceRateLimitOrBuilder
-
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:
getRateLimitsCountin interfaceRateLimitOrBuilder
-
getRateLimits
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:
getRateLimitsin interfaceRateLimitOrBuilder
-
getRateLimitsOrBuilder
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:
getRateLimitsOrBuilderin interfaceRateLimitOrBuilder
-
isInitialized
public final boolean isInitialized()- Specified by:
isInitializedin interfacecom.google.protobuf.MessageLiteOrBuilder- Overrides:
isInitializedin classcom.google.protobuf.GeneratedMessageV3
-
writeTo
- Specified by:
writeToin interfacecom.google.protobuf.MessageLite- Overrides:
writeToin classcom.google.protobuf.GeneratedMessageV3- Throws:
IOException
-
getSerializedSize
public int getSerializedSize()- Specified by:
getSerializedSizein interfacecom.google.protobuf.MessageLite- Overrides:
getSerializedSizein classcom.google.protobuf.GeneratedMessageV3
-
equals
- Specified by:
equalsin interfacecom.google.protobuf.Message- Overrides:
equalsin classcom.google.protobuf.AbstractMessage
-
hashCode
public int hashCode()- Specified by:
hashCodein interfacecom.google.protobuf.Message- Overrides:
hashCodein classcom.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
- Throws:
IOException
-
parseFrom
public static RateLimit parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException - Throws:
IOException
-
parseDelimitedFrom
- Throws:
IOException
-
parseDelimitedFrom
public static RateLimit parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException - Throws:
IOException
-
parseFrom
- Throws:
IOException
-
parseFrom
public static RateLimit parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException - Throws:
IOException
-
newBuilderForType
- Specified by:
newBuilderForTypein interfacecom.google.protobuf.Message- Specified by:
newBuilderForTypein interfacecom.google.protobuf.MessageLite
-
newBuilder
-
newBuilder
-
toBuilder
- Specified by:
toBuilderin interfacecom.google.protobuf.Message- Specified by:
toBuilderin interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected RateLimit.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) - Specified by:
newBuilderForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstance
-
parser
-
getParserForType
- Specified by:
getParserForTypein interfacecom.google.protobuf.Message- Specified by:
getParserForTypein interfacecom.google.protobuf.MessageLite- Overrides:
getParserForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstanceForType
- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageLiteOrBuilder- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageOrBuilder
-