Class RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite
-
- com.google.protobuf.AbstractMessage
-
- com.google.protobuf.GeneratedMessageV3
-
- io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction
-
- All Implemented Interfaces:
com.google.protobuf.Message,com.google.protobuf.MessageLite,com.google.protobuf.MessageLiteOrBuilder,com.google.protobuf.MessageOrBuilder,RateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder,Serializable
- Enclosing class:
- RateLimitQuotaResponse.BucketAction
public static final class RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction extends com.google.protobuf.GeneratedMessageV3 implements RateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder
Quota assignment for the bucket. Configures the rate limiting strategy and the duration for the given :ref:`bucket_id <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`. **Applying the first assignment to the bucket** Once the data plane receives the ``QuotaAssignmentAction``, it must send the current usage report for the bucket, and start rate limiting requests matched into the bucket using the strategy configured in the :ref:`rate_limit_strategy <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.rate_limit_strategy>` field. The assignment becomes bucket's ``active`` assignment. **Expiring the assignment** The duration of the assignment defined in the :ref:`assignment_time_to_live <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>` field. When the duration runs off, the assignment is ``expired``, and no longer ``active``. The data plane should stop applying the rate limiting strategy to the bucket, and transition the bucket to the "expired assignment" state. This activates the behavior configured in the :ref:`expired_assignment_behavior <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.expired_assignment_behavior>` field. **Replacing the assignment** * If the rate limiting strategy is different from bucket's ``active`` assignment, or the current bucket assignment is ``expired``, the data plane must immediately end the current assignment, report the bucket usage, and apply the new assignment. The new assignment becomes bucket's ``active`` assignment. `` If the rate limiting strategy is the same as the bucket's ``active`` (not ``expired``) assignment, the data plane should extend the duration of the ``active`` assignment for the duration of the new assignment provided in the :ref:`assignment_time_to_live <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>` field. The ``active`` assignment is considered unchanged.
Protobuf typeenvoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.BuilderQuota assignment for the bucket.-
Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3
com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage,BuilderType extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType,BuilderType>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
-
-
Field Summary
Fields Modifier and Type Field Description static intASSIGNMENT_TIME_TO_LIVE_FIELD_NUMBERstatic intRATE_LIMIT_STRATEGY_FIELD_NUMBER
-
Method Summary
-
Methods inherited from class com.google.protobuf.GeneratedMessageV3
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, hasField, hasOneof, internalGetMapField, isStringEmpty, makeExtensionsImmutable, 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, writeStringNoTag
-
Methods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite
addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
ASSIGNMENT_TIME_TO_LIVE_FIELD_NUMBER
public static final int ASSIGNMENT_TIME_TO_LIVE_FIELD_NUMBER
- See Also:
- Constant Field Values
-
RATE_LIMIT_STRATEGY_FIELD_NUMBER
public static final int RATE_LIMIT_STRATEGY_FIELD_NUMBER
- See Also:
- Constant Field Values
-
-
Method Detail
-
newInstance
protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
- Overrides:
newInstancein classcom.google.protobuf.GeneratedMessageV3
-
getUnknownFields
public final com.google.protobuf.UnknownFieldSet getUnknownFields()
- Specified by:
getUnknownFieldsin interfacecom.google.protobuf.MessageOrBuilder- Overrides:
getUnknownFieldsin 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
-
hasAssignmentTimeToLive
public boolean hasAssignmentTimeToLive()
A duration after which the assignment is be considered ``expired``. The process of the expiration is described :ref:`above <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`. * If unset, the assignment has no expiration date. * If set to ``0``, the assignment expires immediately, forcing the client into the :ref:`"expired assignment" <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` state. This may be used by the RLQS server in cases when it needs clients to proactively fall back to the pre-configured :ref:`ExpiredAssignmentBehavior <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`, f.e. before the server going into restart. .. attention:: Note that :ref:`expiring <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>` the assignment is not the same as :ref:`abandoning <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` the assignment. While expiring the assignment just transitions the bucket to the "expired assignment" state; abandoning the assignment completely erases the bucket from the data plane memory, and stops the usage reports.
.google.protobuf.Duration assignment_time_to_live = 2 [(.validate.rules) = { ... }- Specified by:
hasAssignmentTimeToLivein interfaceRateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder- Returns:
- Whether the assignmentTimeToLive field is set.
-
getAssignmentTimeToLive
public com.google.protobuf.Duration getAssignmentTimeToLive()
A duration after which the assignment is be considered ``expired``. The process of the expiration is described :ref:`above <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`. * If unset, the assignment has no expiration date. * If set to ``0``, the assignment expires immediately, forcing the client into the :ref:`"expired assignment" <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` state. This may be used by the RLQS server in cases when it needs clients to proactively fall back to the pre-configured :ref:`ExpiredAssignmentBehavior <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`, f.e. before the server going into restart. .. attention:: Note that :ref:`expiring <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>` the assignment is not the same as :ref:`abandoning <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` the assignment. While expiring the assignment just transitions the bucket to the "expired assignment" state; abandoning the assignment completely erases the bucket from the data plane memory, and stops the usage reports.
.google.protobuf.Duration assignment_time_to_live = 2 [(.validate.rules) = { ... }- Specified by:
getAssignmentTimeToLivein interfaceRateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder- Returns:
- The assignmentTimeToLive.
-
getAssignmentTimeToLiveOrBuilder
public com.google.protobuf.DurationOrBuilder getAssignmentTimeToLiveOrBuilder()
A duration after which the assignment is be considered ``expired``. The process of the expiration is described :ref:`above <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`. * If unset, the assignment has no expiration date. * If set to ``0``, the assignment expires immediately, forcing the client into the :ref:`"expired assignment" <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` state. This may be used by the RLQS server in cases when it needs clients to proactively fall back to the pre-configured :ref:`ExpiredAssignmentBehavior <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`, f.e. before the server going into restart. .. attention:: Note that :ref:`expiring <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>` the assignment is not the same as :ref:`abandoning <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` the assignment. While expiring the assignment just transitions the bucket to the "expired assignment" state; abandoning the assignment completely erases the bucket from the data plane memory, and stops the usage reports.
.google.protobuf.Duration assignment_time_to_live = 2 [(.validate.rules) = { ... }- Specified by:
getAssignmentTimeToLiveOrBuilderin interfaceRateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder
-
hasRateLimitStrategy
public boolean hasRateLimitStrategy()
Configures the local rate limiter for the request matched to the bucket. If not set, allow all requests.
.envoy.type.v3.RateLimitStrategy rate_limit_strategy = 3;- Specified by:
hasRateLimitStrategyin interfaceRateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder- Returns:
- Whether the rateLimitStrategy field is set.
-
getRateLimitStrategy
public RateLimitStrategy getRateLimitStrategy()
Configures the local rate limiter for the request matched to the bucket. If not set, allow all requests.
.envoy.type.v3.RateLimitStrategy rate_limit_strategy = 3;- Specified by:
getRateLimitStrategyin interfaceRateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder- Returns:
- The rateLimitStrategy.
-
getRateLimitStrategyOrBuilder
public RateLimitStrategyOrBuilder getRateLimitStrategyOrBuilder()
Configures the local rate limiter for the request matched to the bucket. If not set, allow all requests.
.envoy.type.v3.RateLimitStrategy rate_limit_strategy = 3;- Specified by:
getRateLimitStrategyOrBuilderin interfaceRateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitializedin interfacecom.google.protobuf.MessageLiteOrBuilder- Overrides:
isInitializedin classcom.google.protobuf.GeneratedMessageV3
-
writeTo
public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException- 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
public boolean equals(Object obj)
- 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 RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(InputStream input) throws IOException
- Throws:
IOException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
parseDelimitedFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseDelimitedFrom(InputStream input) throws IOException
- Throws:
IOException
-
parseDelimitedFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
- Throws:
IOException
-
parseFrom
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
newBuilderForType
public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder newBuilderForType()
- Specified by:
newBuilderForTypein interfacecom.google.protobuf.Message- Specified by:
newBuilderForTypein interfacecom.google.protobuf.MessageLite
-
newBuilder
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder newBuilder()
-
newBuilder
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder newBuilder(RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction prototype)
-
toBuilder
public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder toBuilder()
- Specified by:
toBuilderin interfacecom.google.protobuf.Message- Specified by:
toBuilderin interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
- Specified by:
newBuilderForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstance
public static RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getDefaultInstance()
-
parser
public static com.google.protobuf.Parser<RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction> parser()
-
getParserForType
public com.google.protobuf.Parser<RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction> getParserForType()
- Specified by:
getParserForTypein interfacecom.google.protobuf.Message- Specified by:
getParserForTypein interfacecom.google.protobuf.MessageLite- Overrides:
getParserForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstanceForType
public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageLiteOrBuilder- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageOrBuilder
-
-