Class RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder

  • All Implemented Interfaces:
    com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, RateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder, java.lang.Cloneable
    Enclosing class:
    RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction

    public static final class RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder
    extends com.google.protobuf.GeneratedMessage.Builder<RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder>
    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
    • Field Detail

      • bitField0_

        private int bitField0_
      • assignmentTimeToLive_

        private com.google.protobuf.Duration assignmentTimeToLive_
      • assignmentTimeToLiveBuilder_

        private com.google.protobuf.SingleFieldBuilder<com.google.protobuf.Duration,​com.google.protobuf.Duration.Builder,​com.google.protobuf.DurationOrBuilder> assignmentTimeToLiveBuilder_
    • Constructor Detail

      • Builder

        private Builder()
      • Builder

        private Builder​(com.google.protobuf.AbstractMessage.BuilderParent parent)
    • Method Detail

      • getDescriptor

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

        private void maybeForceBuilderInitialization()
      • getDescriptorForType

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
        Specified by:
        getDescriptorForType in interface com.google.protobuf.Message.Builder
        Specified by:
        getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getDescriptorForType in class com.google.protobuf.GeneratedMessage.Builder<RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder>
      • getDefaultInstanceForType

        public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      • 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.
      • setAssignmentTimeToLive

        public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder setAssignmentTimeToLive​(com.google.protobuf.Duration value)
         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) = { ... }
      • setAssignmentTimeToLive

        public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder setAssignmentTimeToLive​(com.google.protobuf.Duration.Builder builderForValue)
         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) = { ... }
      • mergeAssignmentTimeToLive

        public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder mergeAssignmentTimeToLive​(com.google.protobuf.Duration value)
         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) = { ... }
      • clearAssignmentTimeToLive

        public RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder clearAssignmentTimeToLive()
         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) = { ... }
      • getAssignmentTimeToLiveBuilder

        public com.google.protobuf.Duration.Builder getAssignmentTimeToLiveBuilder()
         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) = { ... }
      • 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
      • getAssignmentTimeToLiveFieldBuilder

        private com.google.protobuf.SingleFieldBuilder<com.google.protobuf.Duration,​com.google.protobuf.Duration.Builder,​com.google.protobuf.DurationOrBuilder> getAssignmentTimeToLiveFieldBuilder()
         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) = { ... }
      • getRateLimitStrategyBuilder

        public RateLimitStrategy.Builder getRateLimitStrategyBuilder()
         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;
      • getRateLimitStrategyFieldBuilder

        private com.google.protobuf.SingleFieldBuilder<RateLimitStrategy,​RateLimitStrategy.Builder,​RateLimitStrategyOrBuilder> getRateLimitStrategyFieldBuilder()
         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;