Class 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, java.io.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:
    Serialized Form
    • Constructor Detail

      • QuotaAssignmentAction

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

        private QuotaAssignmentAction()
    • Method Detail

      • 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
      • 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 java.io.IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessage
        Throws:
        java.io.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​(java.lang.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​(java.nio.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,
                                                                                          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                                                   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
      • 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

        public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder