Interface RateLimitQuotaBucketSettingsOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
RateLimitQuotaBucketSettings, RateLimitQuotaBucketSettings.Builder

public interface RateLimitQuotaBucketSettingsOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Details

    • hasBucketIdBuilder

      boolean hasBucketIdBuilder()
       ``BucketId`` builder.
      
       :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` is a map from
       the string key to the string value which serves as bucket identifier common for on
       the control plane and the data plane.
      
       While ``BucketId`` is always static, ``BucketIdBuilder`` allows to populate map values
       with the dynamic properties associated with the each individual request.
      
       Example 1: static fields only
      
       ``BucketIdBuilder``:
      
       .. validated-code-block:: yaml
       :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder
      
       bucket_id_builder:
       name:
       string_value: my_bucket
       hello:
       string_value: world
      
       Produces the following ``BucketId`` for all requests:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       hello: world
      
       Example 2: static and dynamic fields
      
       .. validated-code-block:: yaml
       :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder
      
       bucket_id_builder:
       name:
       string_value: my_bucket
       env:
       custom_value:
       typed_config:
       '@type': type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput
       header_name: environment
      
       In this example, the value of ``BucketId`` key ``env`` is substituted from the ``environment``
       request header.
      
       This is equivalent to the following ``pseudo-code``:
      
       .. code-block:: yaml
      
       name: 'my_bucket'
       env: $header['environment']
      
       For example, the request with the HTTP header ``env`` set to ``staging`` will produce
       the following ``BucketId``:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       env: staging
      
       For the request with the HTTP header ``environment`` set to ``prod``, will produce:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       env: prod
      
       .. note::
       The order of ``BucketId`` keys do not matter. Buckets ``{ a: 'A', b: 'B' }`` and
       ``{ b: 'B', a: 'A' }`` are identical.
      
       If not set, requests will NOT be reported to the server, and will always limited
       according to :ref:`no_assignment_behavior
       <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>`
       configuration.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder = 1;
      Returns:
      Whether the bucketIdBuilder field is set.
    • getBucketIdBuilder

       ``BucketId`` builder.
      
       :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` is a map from
       the string key to the string value which serves as bucket identifier common for on
       the control plane and the data plane.
      
       While ``BucketId`` is always static, ``BucketIdBuilder`` allows to populate map values
       with the dynamic properties associated with the each individual request.
      
       Example 1: static fields only
      
       ``BucketIdBuilder``:
      
       .. validated-code-block:: yaml
       :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder
      
       bucket_id_builder:
       name:
       string_value: my_bucket
       hello:
       string_value: world
      
       Produces the following ``BucketId`` for all requests:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       hello: world
      
       Example 2: static and dynamic fields
      
       .. validated-code-block:: yaml
       :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder
      
       bucket_id_builder:
       name:
       string_value: my_bucket
       env:
       custom_value:
       typed_config:
       '@type': type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput
       header_name: environment
      
       In this example, the value of ``BucketId`` key ``env`` is substituted from the ``environment``
       request header.
      
       This is equivalent to the following ``pseudo-code``:
      
       .. code-block:: yaml
      
       name: 'my_bucket'
       env: $header['environment']
      
       For example, the request with the HTTP header ``env`` set to ``staging`` will produce
       the following ``BucketId``:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       env: staging
      
       For the request with the HTTP header ``environment`` set to ``prod``, will produce:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       env: prod
      
       .. note::
       The order of ``BucketId`` keys do not matter. Buckets ``{ a: 'A', b: 'B' }`` and
       ``{ b: 'B', a: 'A' }`` are identical.
      
       If not set, requests will NOT be reported to the server, and will always limited
       according to :ref:`no_assignment_behavior
       <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>`
       configuration.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder = 1;
      Returns:
      The bucketIdBuilder.
    • getBucketIdBuilderOrBuilder

       ``BucketId`` builder.
      
       :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` is a map from
       the string key to the string value which serves as bucket identifier common for on
       the control plane and the data plane.
      
       While ``BucketId`` is always static, ``BucketIdBuilder`` allows to populate map values
       with the dynamic properties associated with the each individual request.
      
       Example 1: static fields only
      
       ``BucketIdBuilder``:
      
       .. validated-code-block:: yaml
       :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder
      
       bucket_id_builder:
       name:
       string_value: my_bucket
       hello:
       string_value: world
      
       Produces the following ``BucketId`` for all requests:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       hello: world
      
       Example 2: static and dynamic fields
      
       .. validated-code-block:: yaml
       :type-name: envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder
      
       bucket_id_builder:
       name:
       string_value: my_bucket
       env:
       custom_value:
       typed_config:
       '@type': type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput
       header_name: environment
      
       In this example, the value of ``BucketId`` key ``env`` is substituted from the ``environment``
       request header.
      
       This is equivalent to the following ``pseudo-code``:
      
       .. code-block:: yaml
      
       name: 'my_bucket'
       env: $header['environment']
      
       For example, the request with the HTTP header ``env`` set to ``staging`` will produce
       the following ``BucketId``:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       env: staging
      
       For the request with the HTTP header ``environment`` set to ``prod``, will produce:
      
       .. validated-code-block:: yaml
       :type-name: envoy.service.rate_limit_quota.v3.BucketId
      
       bucket:
       name: my_bucket
       env: prod
      
       .. note::
       The order of ``BucketId`` keys do not matter. Buckets ``{ a: 'A', b: 'B' }`` and
       ``{ b: 'B', a: 'A' }`` are identical.
      
       If not set, requests will NOT be reported to the server, and will always limited
       according to :ref:`no_assignment_behavior
       <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>`
       configuration.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.BucketIdBuilder bucket_id_builder = 1;
    • hasReportingInterval

      boolean hasReportingInterval()
       The interval at which the data plane (RLQS client) is to report quota usage for this bucket.
      
       When the first request is matched to a bucket with no assignment, the data plane is to report
       the request immediately in the :ref:`RateLimitQuotaUsageReports
       <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaUsageReports>` message.
       For the RLQS server, this signals that the data plane is now subscribed to
       the quota assignments in this bucket, and will start sending the assignment as described in
       the :ref:`RLQS documentation <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`.
      
       After sending the initial report, the data plane is to continue reporting the bucket usage with
       the internal specified in this field.
      
       If for any reason RLQS client doesn't receive the initial assignment for the reported bucket,
       the data plane will eventually consider the bucket abandoned and stop sending the usage
       reports. This is explained in more details at :ref:`Rate Limit Quota Service (RLQS)
       <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`.
      
       [#comment: 100000000 nanoseconds = 0.1 seconds]
       
      .google.protobuf.Duration reporting_interval = 2 [(.validate.rules) = { ... }
      Returns:
      Whether the reportingInterval field is set.
    • getReportingInterval

      com.google.protobuf.Duration getReportingInterval()
       The interval at which the data plane (RLQS client) is to report quota usage for this bucket.
      
       When the first request is matched to a bucket with no assignment, the data plane is to report
       the request immediately in the :ref:`RateLimitQuotaUsageReports
       <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaUsageReports>` message.
       For the RLQS server, this signals that the data plane is now subscribed to
       the quota assignments in this bucket, and will start sending the assignment as described in
       the :ref:`RLQS documentation <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`.
      
       After sending the initial report, the data plane is to continue reporting the bucket usage with
       the internal specified in this field.
      
       If for any reason RLQS client doesn't receive the initial assignment for the reported bucket,
       the data plane will eventually consider the bucket abandoned and stop sending the usage
       reports. This is explained in more details at :ref:`Rate Limit Quota Service (RLQS)
       <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`.
      
       [#comment: 100000000 nanoseconds = 0.1 seconds]
       
      .google.protobuf.Duration reporting_interval = 2 [(.validate.rules) = { ... }
      Returns:
      The reportingInterval.
    • getReportingIntervalOrBuilder

      com.google.protobuf.DurationOrBuilder getReportingIntervalOrBuilder()
       The interval at which the data plane (RLQS client) is to report quota usage for this bucket.
      
       When the first request is matched to a bucket with no assignment, the data plane is to report
       the request immediately in the :ref:`RateLimitQuotaUsageReports
       <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaUsageReports>` message.
       For the RLQS server, this signals that the data plane is now subscribed to
       the quota assignments in this bucket, and will start sending the assignment as described in
       the :ref:`RLQS documentation <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`.
      
       After sending the initial report, the data plane is to continue reporting the bucket usage with
       the internal specified in this field.
      
       If for any reason RLQS client doesn't receive the initial assignment for the reported bucket,
       the data plane will eventually consider the bucket abandoned and stop sending the usage
       reports. This is explained in more details at :ref:`Rate Limit Quota Service (RLQS)
       <envoy_v3_api_file_envoy/service/rate_limit_quota/v3/rlqs.proto>`.
      
       [#comment: 100000000 nanoseconds = 0.1 seconds]
       
      .google.protobuf.Duration reporting_interval = 2 [(.validate.rules) = { ... }
    • hasDenyResponseSettings

      boolean hasDenyResponseSettings()
       Customize the deny response to the requests over the rate limit.
       If not set, the filter will be configured as if an empty message is set,
       and will behave according to the defaults specified in :ref:`DenyResponseSettings
       <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings>`.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings deny_response_settings = 3;
      Returns:
      Whether the denyResponseSettings field is set.
    • getDenyResponseSettings

       Customize the deny response to the requests over the rate limit.
       If not set, the filter will be configured as if an empty message is set,
       and will behave according to the defaults specified in :ref:`DenyResponseSettings
       <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings>`.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings deny_response_settings = 3;
      Returns:
      The denyResponseSettings.
    • getDenyResponseSettingsOrBuilder

       Customize the deny response to the requests over the rate limit.
       If not set, the filter will be configured as if an empty message is set,
       and will behave according to the defaults specified in :ref:`DenyResponseSettings
       <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings>`.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.DenyResponseSettings deny_response_settings = 3;
    • hasNoAssignmentBehavior

      boolean hasNoAssignmentBehavior()
       Configures the behavior in the "no assignment" state: after the first request has been
       matched to the bucket, and before the the RLQS server returns the first quota assignment.
      
       If not set, the default behavior is to allow all requests.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.NoAssignmentBehavior no_assignment_behavior = 4;
      Returns:
      Whether the noAssignmentBehavior field is set.
    • getNoAssignmentBehavior

       Configures the behavior in the "no assignment" state: after the first request has been
       matched to the bucket, and before the the RLQS server returns the first quota assignment.
      
       If not set, the default behavior is to allow all requests.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.NoAssignmentBehavior no_assignment_behavior = 4;
      Returns:
      The noAssignmentBehavior.
    • getNoAssignmentBehaviorOrBuilder

       Configures the behavior in the "no assignment" state: after the first request has been
       matched to the bucket, and before the the RLQS server returns the first quota assignment.
      
       If not set, the default behavior is to allow all requests.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.NoAssignmentBehavior no_assignment_behavior = 4;
    • hasExpiredAssignmentBehavior

      boolean hasExpiredAssignmentBehavior()
       Configures the behavior in the "expired assignment" state: the bucket's assignment has expired,
       and cannot be refreshed.
      
       If not set, the bucket is abandoned when its ``active`` assignment expires.
       The process of abandoning the bucket, and restarting the subscription is described in the
       :ref:`AbandonAction <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
       message.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior expired_assignment_behavior = 5;
      Returns:
      Whether the expiredAssignmentBehavior field is set.
    • getExpiredAssignmentBehavior

       Configures the behavior in the "expired assignment" state: the bucket's assignment has expired,
       and cannot be refreshed.
      
       If not set, the bucket is abandoned when its ``active`` assignment expires.
       The process of abandoning the bucket, and restarting the subscription is described in the
       :ref:`AbandonAction <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
       message.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior expired_assignment_behavior = 5;
      Returns:
      The expiredAssignmentBehavior.
    • getExpiredAssignmentBehaviorOrBuilder

       Configures the behavior in the "expired assignment" state: the bucket's assignment has expired,
       and cannot be refreshed.
      
       If not set, the bucket is abandoned when its ``active`` assignment expires.
       The process of abandoning the bucket, and restarting the subscription is described in the
       :ref:`AbandonAction <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
       message.
       
      .envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior expired_assignment_behavior = 5;