Interface RateLimitQuotaBucketSettingsOrBuilder

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

@Generated 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;