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.
         [#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.
         [#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.
         [#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;