Class RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
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.GeneratedMessage 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 type envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction
See Also:
  • Field Details

  • Constructor Details

    • QuotaAssignmentAction

      private QuotaAssignmentAction(com.google.protobuf.GeneratedMessage.Builder<?> builder)
    • QuotaAssignmentAction

      private QuotaAssignmentAction()
  • Method Details

    • getDescriptor

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

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • 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:
      hasAssignmentTimeToLive in interface RateLimitQuotaResponse.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:
      getAssignmentTimeToLive in interface RateLimitQuotaResponse.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:
      getAssignmentTimeToLiveOrBuilder in interface RateLimitQuotaResponse.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:
      hasRateLimitStrategy in interface RateLimitQuotaResponse.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:
      getRateLimitStrategy in interface RateLimitQuotaResponse.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:
      getRateLimitStrategyOrBuilder in interface RateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder
    • isInitialized

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

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

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

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

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

      public static 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

      Throws:
      IOException
    • parseFrom

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

      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

      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

    • newBuilder

    • toBuilder

      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

    • parser

      public static com.google.protobuf.Parser<RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction> parser()
    • getParserForType

      public com.google.protobuf.Parser<RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessage
    • getDefaultInstanceForType

      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder