Class RateLimitQuotaBucketSettings
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite
-
- com.google.protobuf.AbstractMessage
-
- com.google.protobuf.GeneratedMessage
-
- io.envoyproxy.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings
-
- All Implemented Interfaces:
com.google.protobuf.Message
,com.google.protobuf.MessageLite
,com.google.protobuf.MessageLiteOrBuilder
,com.google.protobuf.MessageOrBuilder
,RateLimitQuotaBucketSettingsOrBuilder
,java.io.Serializable
public final class RateLimitQuotaBucketSettings extends com.google.protobuf.GeneratedMessage implements RateLimitQuotaBucketSettingsOrBuilder
Rate Limit Quota Bucket Settings to apply on the successful ``bucket_matchers`` match. Specify this message in the :ref:`Matcher.OnMatch.action <envoy_v3_api_field_.xds.type.matcher.v3.Matcher.OnMatch.action>` field of the ``bucket_matchers`` matcher tree to assign the matched requests to the Quota Bucket. Usage example: :ref:`RateLimitQuotaFilterConfig.bucket_matchers <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig.bucket_matchers>`. [#next-free-field: 6]
Protobuf typeenvoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RateLimitQuotaBucketSettings.BucketIdBuilder
``BucketIdBuilder`` makes it possible to build :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` with values substituted from the dynamic properties associated with each individual request.static interface
RateLimitQuotaBucketSettings.BucketIdBuilderOrBuilder
static class
RateLimitQuotaBucketSettings.Builder
Rate Limit Quota Bucket Settings to apply on the successful ``bucket_matchers`` match.static class
RateLimitQuotaBucketSettings.DenyResponseSettings
Customize the deny response to the requests over the rate limit.static interface
RateLimitQuotaBucketSettings.DenyResponseSettingsOrBuilder
static class
RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior
Specifies the behavior when the bucket's assignment has expired, and cannot be refreshed for any reason.static interface
RateLimitQuotaBucketSettings.ExpiredAssignmentBehaviorOrBuilder
static class
RateLimitQuotaBucketSettings.NoAssignmentBehavior
Configures the behavior after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment.static interface
RateLimitQuotaBucketSettings.NoAssignmentBehaviorOrBuilder
-
Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessage
com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.FieldAccessorTable, com.google.protobuf.GeneratedMessage.GeneratedExtension<ContainingT extends com.google.protobuf.Message,T extends java.lang.Object>, com.google.protobuf.GeneratedMessage.UnusedPrivateParameter
-
-
Field Summary
Fields Modifier and Type Field Description private int
bitField0_
static int
BUCKET_ID_BUILDER_FIELD_NUMBER
private RateLimitQuotaBucketSettings.BucketIdBuilder
bucketIdBuilder_
private static RateLimitQuotaBucketSettings
DEFAULT_INSTANCE
static int
DENY_RESPONSE_SETTINGS_FIELD_NUMBER
private RateLimitQuotaBucketSettings.DenyResponseSettings
denyResponseSettings_
static int
EXPIRED_ASSIGNMENT_BEHAVIOR_FIELD_NUMBER
private RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior
expiredAssignmentBehavior_
private byte
memoizedIsInitialized
static int
NO_ASSIGNMENT_BEHAVIOR_FIELD_NUMBER
private RateLimitQuotaBucketSettings.NoAssignmentBehavior
noAssignmentBehavior_
private static com.google.protobuf.Parser<RateLimitQuotaBucketSettings>
PARSER
static int
REPORTING_INTERVAL_FIELD_NUMBER
private com.google.protobuf.Duration
reportingInterval_
private static long
serialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description private
RateLimitQuotaBucketSettings()
private
RateLimitQuotaBucketSettings(com.google.protobuf.GeneratedMessage.Builder<?> builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
RateLimitQuotaBucketSettings.BucketIdBuilder
getBucketIdBuilder()
``BucketId`` builder.RateLimitQuotaBucketSettings.BucketIdBuilderOrBuilder
getBucketIdBuilderOrBuilder()
``BucketId`` builder.static RateLimitQuotaBucketSettings
getDefaultInstance()
RateLimitQuotaBucketSettings
getDefaultInstanceForType()
RateLimitQuotaBucketSettings.DenyResponseSettings
getDenyResponseSettings()
Customize the deny response to the requests over the rate limit.RateLimitQuotaBucketSettings.DenyResponseSettingsOrBuilder
getDenyResponseSettingsOrBuilder()
Customize the deny response to the requests over the rate limit.static com.google.protobuf.Descriptors.Descriptor
getDescriptor()
RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior
getExpiredAssignmentBehavior()
Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed.RateLimitQuotaBucketSettings.ExpiredAssignmentBehaviorOrBuilder
getExpiredAssignmentBehaviorOrBuilder()
Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed.RateLimitQuotaBucketSettings.NoAssignmentBehavior
getNoAssignmentBehavior()
Configures the behavior in the "no assignment" state: after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment.RateLimitQuotaBucketSettings.NoAssignmentBehaviorOrBuilder
getNoAssignmentBehaviorOrBuilder()
Configures the behavior in the "no assignment" state: after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment.com.google.protobuf.Parser<RateLimitQuotaBucketSettings>
getParserForType()
com.google.protobuf.Duration
getReportingInterval()
The interval at which the data plane (RLQS client) is to report quota usage for this bucket.com.google.protobuf.DurationOrBuilder
getReportingIntervalOrBuilder()
The interval at which the data plane (RLQS client) is to report quota usage for this bucket.int
getSerializedSize()
boolean
hasBucketIdBuilder()
``BucketId`` builder.boolean
hasDenyResponseSettings()
Customize the deny response to the requests over the rate limit.boolean
hasExpiredAssignmentBehavior()
Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed.int
hashCode()
boolean
hasNoAssignmentBehavior()
Configures the behavior in the "no assignment" state: after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment.boolean
hasReportingInterval()
The interval at which the data plane (RLQS client) is to report quota usage for this bucket.protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable()
boolean
isInitialized()
static RateLimitQuotaBucketSettings.Builder
newBuilder()
static RateLimitQuotaBucketSettings.Builder
newBuilder(RateLimitQuotaBucketSettings prototype)
RateLimitQuotaBucketSettings.Builder
newBuilderForType()
protected RateLimitQuotaBucketSettings.Builder
newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
static RateLimitQuotaBucketSettings
parseDelimitedFrom(java.io.InputStream input)
static RateLimitQuotaBucketSettings
parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static RateLimitQuotaBucketSettings
parseFrom(byte[] data)
static RateLimitQuotaBucketSettings
parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static RateLimitQuotaBucketSettings
parseFrom(com.google.protobuf.ByteString data)
static RateLimitQuotaBucketSettings
parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static RateLimitQuotaBucketSettings
parseFrom(com.google.protobuf.CodedInputStream input)
static RateLimitQuotaBucketSettings
parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static RateLimitQuotaBucketSettings
parseFrom(java.io.InputStream input)
static RateLimitQuotaBucketSettings
parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static RateLimitQuotaBucketSettings
parseFrom(java.nio.ByteBuffer data)
static RateLimitQuotaBucketSettings
parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.protobuf.Parser<RateLimitQuotaBucketSettings>
parser()
RateLimitQuotaBucketSettings.Builder
toBuilder()
void
writeTo(com.google.protobuf.CodedOutputStream output)
-
Methods inherited from class com.google.protobuf.GeneratedMessage
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, newFileScopedGeneratedExtension, newInstance, newMessageScopedGeneratedExtension, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
-
Methods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashFields, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite
addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
bitField0_
private int bitField0_
-
BUCKET_ID_BUILDER_FIELD_NUMBER
public static final int BUCKET_ID_BUILDER_FIELD_NUMBER
- See Also:
- Constant Field Values
-
bucketIdBuilder_
private RateLimitQuotaBucketSettings.BucketIdBuilder bucketIdBuilder_
-
REPORTING_INTERVAL_FIELD_NUMBER
public static final int REPORTING_INTERVAL_FIELD_NUMBER
- See Also:
- Constant Field Values
-
reportingInterval_
private com.google.protobuf.Duration reportingInterval_
-
DENY_RESPONSE_SETTINGS_FIELD_NUMBER
public static final int DENY_RESPONSE_SETTINGS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
denyResponseSettings_
private RateLimitQuotaBucketSettings.DenyResponseSettings denyResponseSettings_
-
NO_ASSIGNMENT_BEHAVIOR_FIELD_NUMBER
public static final int NO_ASSIGNMENT_BEHAVIOR_FIELD_NUMBER
- See Also:
- Constant Field Values
-
noAssignmentBehavior_
private RateLimitQuotaBucketSettings.NoAssignmentBehavior noAssignmentBehavior_
-
EXPIRED_ASSIGNMENT_BEHAVIOR_FIELD_NUMBER
public static final int EXPIRED_ASSIGNMENT_BEHAVIOR_FIELD_NUMBER
- See Also:
- Constant Field Values
-
expiredAssignmentBehavior_
private RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior expiredAssignmentBehavior_
-
memoizedIsInitialized
private byte memoizedIsInitialized
-
DEFAULT_INSTANCE
private static final RateLimitQuotaBucketSettings DEFAULT_INSTANCE
-
PARSER
private static final com.google.protobuf.Parser<RateLimitQuotaBucketSettings> PARSER
-
-
Method Detail
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
-
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
- Specified by:
internalGetFieldAccessorTable
in classcom.google.protobuf.GeneratedMessage
-
hasBucketIdBuilder
public boolean hasBucketIdBuilder()
``BucketId`` builder. :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` is a map from the string key to the string value which serves as bucket identifier common for on the control plane and the data plane. While ``BucketId`` is always static, ``BucketIdBuilder`` allows to populate map values with the dynamic properties associated with the each individual request. Example 1: static fields only ``BucketIdBuilder``: .. validated-code-block:: yaml :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder: name: string_value: my_bucket hello: string_value: world Produces the following ``BucketId`` for all requests: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket hello: world Example 2: static and dynamic fields .. validated-code-block:: yaml :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder: name: string_value: my_bucket env: custom_value: typed_config: '@type': type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput header_name: environment In this example, the value of ``BucketId`` key ``env`` is substituted from the ``environment`` request header. This is equivalent to the following ``pseudo-code``: .. code-block:: yaml name: 'my_bucket' env: $header['environment'] For example, the request with the HTTP header ``env`` set to ``staging`` will produce the following ``BucketId``: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket env: staging For the request with the HTTP header ``environment`` set to ``prod``, will produce: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket env: prod .. note:: The order of ``BucketId`` keys do not matter. Buckets ``{ a: 'A', b: 'B' }`` and ``{ b: 'B', a: 'A' }`` are identical. If not set, requests will NOT be reported to the server, and will always limited according to :ref:`no_assignment_behavior <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>` configuration.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder = 1;
- Specified by:
hasBucketIdBuilder
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- Whether the bucketIdBuilder field is set.
-
getBucketIdBuilder
public RateLimitQuotaBucketSettings.BucketIdBuilder getBucketIdBuilder()
``BucketId`` builder. :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` is a map from the string key to the string value which serves as bucket identifier common for on the control plane and the data plane. While ``BucketId`` is always static, ``BucketIdBuilder`` allows to populate map values with the dynamic properties associated with the each individual request. Example 1: static fields only ``BucketIdBuilder``: .. validated-code-block:: yaml :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder: name: string_value: my_bucket hello: string_value: world Produces the following ``BucketId`` for all requests: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket hello: world Example 2: static and dynamic fields .. validated-code-block:: yaml :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder: name: string_value: my_bucket env: custom_value: typed_config: '@type': type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput header_name: environment In this example, the value of ``BucketId`` key ``env`` is substituted from the ``environment`` request header. This is equivalent to the following ``pseudo-code``: .. code-block:: yaml name: 'my_bucket' env: $header['environment'] For example, the request with the HTTP header ``env`` set to ``staging`` will produce the following ``BucketId``: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket env: staging For the request with the HTTP header ``environment`` set to ``prod``, will produce: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket env: prod .. note:: The order of ``BucketId`` keys do not matter. Buckets ``{ a: 'A', b: 'B' }`` and ``{ b: 'B', a: 'A' }`` are identical. If not set, requests will NOT be reported to the server, and will always limited according to :ref:`no_assignment_behavior <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>` configuration.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder = 1;
- Specified by:
getBucketIdBuilder
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- The bucketIdBuilder.
-
getBucketIdBuilderOrBuilder
public RateLimitQuotaBucketSettings.BucketIdBuilderOrBuilder getBucketIdBuilderOrBuilder()
``BucketId`` builder. :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` is a map from the string key to the string value which serves as bucket identifier common for on the control plane and the data plane. While ``BucketId`` is always static, ``BucketIdBuilder`` allows to populate map values with the dynamic properties associated with the each individual request. Example 1: static fields only ``BucketIdBuilder``: .. validated-code-block:: yaml :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder: name: string_value: my_bucket hello: string_value: world Produces the following ``BucketId`` for all requests: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket hello: world Example 2: static and dynamic fields .. validated-code-block:: yaml :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder: name: string_value: my_bucket env: custom_value: typed_config: '@type': type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput header_name: environment In this example, the value of ``BucketId`` key ``env`` is substituted from the ``environment`` request header. This is equivalent to the following ``pseudo-code``: .. code-block:: yaml name: 'my_bucket' env: $header['environment'] For example, the request with the HTTP header ``env`` set to ``staging`` will produce the following ``BucketId``: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket env: staging For the request with the HTTP header ``environment`` set to ``prod``, will produce: .. validated-code-block:: yaml :type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket env: prod .. note:: The order of ``BucketId`` keys do not matter. Buckets ``{ a: 'A', b: 'B' }`` and ``{ b: 'B', a: 'A' }`` are identical. If not set, requests will NOT be reported to the server, and will always limited according to :ref:`no_assignment_behavior <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>` configuration.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder = 1;
- Specified by:
getBucketIdBuilderOrBuilder
in interfaceRateLimitQuotaBucketSettingsOrBuilder
-
hasReportingInterval
public boolean hasReportingInterval()
The interval at which the data plane (RLQS client) is to report quota usage for this bucket. When the first request is matched to a bucket with no assignment, the data plane is to report the request immediately in the :ref:`RateLimitQuotaUsageReports <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaUsageReports>` message. For the RLQS server, this signals that the data plane is now subscribed to the quota assignments in this bucket, and will start sending the assignment as described in the :ref:`RLQS documentation <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`. After sending the initial report, the data plane is to continue reporting the bucket usage with the internal specified in this field. If for any reason RLQS client doesn't receive the initial assignment for the reported bucket, the data plane will eventually consider the bucket abandoned and stop sending the usage reports. This is explained in more details at :ref:`Rate Limit Quota Service (RLQS) <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`. [#comment: 100000000 nanoseconds = 0.1 seconds]
.google.protobuf.Duration reporting_interval = 2 [(.validate.rules) = { ... }
- Specified by:
hasReportingInterval
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- Whether the reportingInterval field is set.
-
getReportingInterval
public com.google.protobuf.Duration getReportingInterval()
The interval at which the data plane (RLQS client) is to report quota usage for this bucket. When the first request is matched to a bucket with no assignment, the data plane is to report the request immediately in the :ref:`RateLimitQuotaUsageReports <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaUsageReports>` message. For the RLQS server, this signals that the data plane is now subscribed to the quota assignments in this bucket, and will start sending the assignment as described in the :ref:`RLQS documentation <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`. After sending the initial report, the data plane is to continue reporting the bucket usage with the internal specified in this field. If for any reason RLQS client doesn't receive the initial assignment for the reported bucket, the data plane will eventually consider the bucket abandoned and stop sending the usage reports. This is explained in more details at :ref:`Rate Limit Quota Service (RLQS) <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`. [#comment: 100000000 nanoseconds = 0.1 seconds]
.google.protobuf.Duration reporting_interval = 2 [(.validate.rules) = { ... }
- Specified by:
getReportingInterval
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- The reportingInterval.
-
getReportingIntervalOrBuilder
public com.google.protobuf.DurationOrBuilder getReportingIntervalOrBuilder()
The interval at which the data plane (RLQS client) is to report quota usage for this bucket. When the first request is matched to a bucket with no assignment, the data plane is to report the request immediately in the :ref:`RateLimitQuotaUsageReports <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaUsageReports>` message. For the RLQS server, this signals that the data plane is now subscribed to the quota assignments in this bucket, and will start sending the assignment as described in the :ref:`RLQS documentation <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`. After sending the initial report, the data plane is to continue reporting the bucket usage with the internal specified in this field. If for any reason RLQS client doesn't receive the initial assignment for the reported bucket, the data plane will eventually consider the bucket abandoned and stop sending the usage reports. This is explained in more details at :ref:`Rate Limit Quota Service (RLQS) <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`. [#comment: 100000000 nanoseconds = 0.1 seconds]
.google.protobuf.Duration reporting_interval = 2 [(.validate.rules) = { ... }
- Specified by:
getReportingIntervalOrBuilder
in interfaceRateLimitQuotaBucketSettingsOrBuilder
-
hasDenyResponseSettings
public boolean hasDenyResponseSettings()
Customize the deny response to the requests over the rate limit. If not set, the filter will be configured as if an empty message is set, and will behave according to the defaults specified in :ref:`DenyResponseSettings <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings>`.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings deny_response_settings = 3;
- Specified by:
hasDenyResponseSettings
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- Whether the denyResponseSettings field is set.
-
getDenyResponseSettings
public RateLimitQuotaBucketSettings.DenyResponseSettings getDenyResponseSettings()
Customize the deny response to the requests over the rate limit. If not set, the filter will be configured as if an empty message is set, and will behave according to the defaults specified in :ref:`DenyResponseSettings <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings>`.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings deny_response_settings = 3;
- Specified by:
getDenyResponseSettings
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- The denyResponseSettings.
-
getDenyResponseSettingsOrBuilder
public RateLimitQuotaBucketSettings.DenyResponseSettingsOrBuilder getDenyResponseSettingsOrBuilder()
Customize the deny response to the requests over the rate limit. If not set, the filter will be configured as if an empty message is set, and will behave according to the defaults specified in :ref:`DenyResponseSettings <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings>`.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings deny_response_settings = 3;
- Specified by:
getDenyResponseSettingsOrBuilder
in interfaceRateLimitQuotaBucketSettingsOrBuilder
-
hasNoAssignmentBehavior
public boolean hasNoAssignmentBehavior()
Configures the behavior in the "no assignment" state: after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment. If not set, the default behavior is to allow all requests.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.NoAssignmentBehavior no_assignment_behavior = 4;
- Specified by:
hasNoAssignmentBehavior
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- Whether the noAssignmentBehavior field is set.
-
getNoAssignmentBehavior
public RateLimitQuotaBucketSettings.NoAssignmentBehavior getNoAssignmentBehavior()
Configures the behavior in the "no assignment" state: after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment. If not set, the default behavior is to allow all requests.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.NoAssignmentBehavior no_assignment_behavior = 4;
- Specified by:
getNoAssignmentBehavior
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- The noAssignmentBehavior.
-
getNoAssignmentBehaviorOrBuilder
public RateLimitQuotaBucketSettings.NoAssignmentBehaviorOrBuilder getNoAssignmentBehaviorOrBuilder()
Configures the behavior in the "no assignment" state: after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment. If not set, the default behavior is to allow all requests.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.NoAssignmentBehavior no_assignment_behavior = 4;
- Specified by:
getNoAssignmentBehaviorOrBuilder
in interfaceRateLimitQuotaBucketSettingsOrBuilder
-
hasExpiredAssignmentBehavior
public boolean hasExpiredAssignmentBehavior()
Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed. If not set, the bucket is abandoned when its ``active`` assignment expires. The process of abandoning the bucket, and restarting the subscription is described in the :ref:`AbandonAction <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` message.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior expired_assignment_behavior = 5;
- Specified by:
hasExpiredAssignmentBehavior
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- Whether the expiredAssignmentBehavior field is set.
-
getExpiredAssignmentBehavior
public RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior getExpiredAssignmentBehavior()
Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed. If not set, the bucket is abandoned when its ``active`` assignment expires. The process of abandoning the bucket, and restarting the subscription is described in the :ref:`AbandonAction <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` message.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior expired_assignment_behavior = 5;
- Specified by:
getExpiredAssignmentBehavior
in interfaceRateLimitQuotaBucketSettingsOrBuilder
- Returns:
- The expiredAssignmentBehavior.
-
getExpiredAssignmentBehaviorOrBuilder
public RateLimitQuotaBucketSettings.ExpiredAssignmentBehaviorOrBuilder getExpiredAssignmentBehaviorOrBuilder()
Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed. If not set, the bucket is abandoned when its ``active`` assignment expires. The process of abandoning the bucket, and restarting the subscription is described in the :ref:`AbandonAction <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` message.
.envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior expired_assignment_behavior = 5;
- Specified by:
getExpiredAssignmentBehaviorOrBuilder
in interfaceRateLimitQuotaBucketSettingsOrBuilder
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitialized
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Overrides:
isInitialized
in classcom.google.protobuf.GeneratedMessage
-
writeTo
public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException
- Specified by:
writeTo
in interfacecom.google.protobuf.MessageLite
- Overrides:
writeTo
in classcom.google.protobuf.GeneratedMessage
- Throws:
java.io.IOException
-
getSerializedSize
public int getSerializedSize()
- Specified by:
getSerializedSize
in interfacecom.google.protobuf.MessageLite
- Overrides:
getSerializedSize
in classcom.google.protobuf.GeneratedMessage
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equals
in interfacecom.google.protobuf.Message
- Overrides:
equals
in classcom.google.protobuf.AbstractMessage
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfacecom.google.protobuf.Message
- Overrides:
hashCode
in classcom.google.protobuf.AbstractMessage
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(java.io.InputStream input) throws java.io.IOException
- Throws:
java.io.IOException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
parseDelimitedFrom
public static RateLimitQuotaBucketSettings parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException
- Throws:
java.io.IOException
-
parseDelimitedFrom
public static RateLimitQuotaBucketSettings parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException
- Throws:
java.io.IOException
-
parseFrom
public static RateLimitQuotaBucketSettings parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
newBuilderForType
public RateLimitQuotaBucketSettings.Builder newBuilderForType()
- Specified by:
newBuilderForType
in interfacecom.google.protobuf.Message
- Specified by:
newBuilderForType
in interfacecom.google.protobuf.MessageLite
-
newBuilder
public static RateLimitQuotaBucketSettings.Builder newBuilder()
-
newBuilder
public static RateLimitQuotaBucketSettings.Builder newBuilder(RateLimitQuotaBucketSettings prototype)
-
toBuilder
public RateLimitQuotaBucketSettings.Builder toBuilder()
- Specified by:
toBuilder
in interfacecom.google.protobuf.Message
- Specified by:
toBuilder
in interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected RateLimitQuotaBucketSettings.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
- Overrides:
newBuilderForType
in classcom.google.protobuf.AbstractMessage
-
getDefaultInstance
public static RateLimitQuotaBucketSettings getDefaultInstance()
-
parser
public static com.google.protobuf.Parser<RateLimitQuotaBucketSettings> parser()
-
getParserForType
public com.google.protobuf.Parser<RateLimitQuotaBucketSettings> getParserForType()
- Specified by:
getParserForType
in interfacecom.google.protobuf.Message
- Specified by:
getParserForType
in interfacecom.google.protobuf.MessageLite
- Overrides:
getParserForType
in classcom.google.protobuf.GeneratedMessage
-
getDefaultInstanceForType
public RateLimitQuotaBucketSettings getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageOrBuilder
-
-