Interface RateLimitQuotaBucketSettingsOrBuilder

    • Method Detail

      • 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

        RateLimitQuotaBucketSettings.BucketIdBuilder 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

        RateLimitQuotaBucketSettings.BucketIdBuilderOrBuilder 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

        RateLimitQuotaBucketSettings.DenyResponseSettings 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

        RateLimitQuotaBucketSettings.DenyResponseSettingsOrBuilder 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

        RateLimitQuotaBucketSettings.NoAssignmentBehavior 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

        RateLimitQuotaBucketSettings.NoAssignmentBehaviorOrBuilder 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

        RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior 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

        RateLimitQuotaBucketSettings.ExpiredAssignmentBehaviorOrBuilder 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;