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 Summary
Modifier and TypeMethodDescription``BucketId`` builder.``BucketId`` builder.Customize the deny response to the requests over the rate limit.Customize the deny response to the requests over the rate limit.Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed.Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed.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.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.com.google.protobuf.Duration
The interval at which the data plane (RLQS client) is to report quota usage for this bucket.com.google.protobuf.DurationOrBuilder
The interval at which the data plane (RLQS client) is to report quota usage for this bucket.boolean
``BucketId`` builder.boolean
Customize the deny response to the requests over the rate limit.boolean
Configures the behavior in the "expired assignment" state: the bucket's assignment has expired, and cannot be refreshed.boolean
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.boolean
The interval at which the data plane (RLQS client) is to report quota usage for this bucket.Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder
isInitialized
Methods inherited from interface com.google.protobuf.MessageOrBuilder
findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
-
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
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;
-