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, Cloneable
    Enclosing class:
    RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction

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

      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • 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.GeneratedMessageV3.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
      • 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;