|
|
|
@ -19,7 +19,6 @@ option java_generic_services = true; |
|
|
|
|
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
|
|
|
|
option (xds.annotations.v3.file_status).work_in_progress = true; |
|
|
|
|
|
|
|
|
|
// [#not-implemented-hide:] |
|
|
|
|
// [#protodoc-title: Rate Limit Quota Service (RLQS)] |
|
|
|
|
|
|
|
|
|
// The Rate Limit Quota Service (RLQS) is a Envoy global rate limiting service that allows to |
|
|
|
@ -126,7 +125,7 @@ message RateLimitQuotaResponse { |
|
|
|
|
// the current bucket assignment is ``expired``, the data plane must immediately |
|
|
|
|
// end the current assignment, report the bucket usage, and apply the new assignment. |
|
|
|
|
// The new assignment becomes bucket's ``active`` assignment. |
|
|
|
|
// `` If the rate limiting strategy is the same as the bucket's ``active`` (not ``expired``) |
|
|
|
|
// * If the rate limiting strategy is the same as the bucket's ``active`` (not ``expired``) |
|
|
|
|
// assignment, the data plane should extend the duration of the ``active`` assignment |
|
|
|
|
// for the duration of the new assignment provided in the :ref:`assignment_time_to_live |
|
|
|
|
// <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>` |
|
|
|
@ -156,7 +155,6 @@ message RateLimitQuotaResponse { |
|
|
|
|
google.protobuf.Duration assignment_time_to_live = 2 [(validate.rules).duration = {gte {}}]; |
|
|
|
|
|
|
|
|
|
// Configures the local rate limiter for the request matched to the bucket. |
|
|
|
|
// |
|
|
|
|
// If not set, allow all requests. |
|
|
|
|
type.v3.RateLimitStrategy rate_limit_strategy = 3; |
|
|
|
|
} |
|
|
|
@ -183,9 +181,11 @@ message RateLimitQuotaResponse { |
|
|
|
|
// 1. The process of :ref:`subscription and reporting |
|
|
|
|
// <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.reporting_interval>` |
|
|
|
|
// starts from the beginning. |
|
|
|
|
// |
|
|
|
|
// 2. The bucket transitions to the :ref:`"no assignment" |
|
|
|
|
// <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>` |
|
|
|
|
// state. |
|
|
|
|
// |
|
|
|
|
// 3. Once the new assignment is received, it's applied per |
|
|
|
|
// "Applying the first assignment to the bucket" section of the :ref:`QuotaAssignmentAction |
|
|
|
|
// <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`. |
|
|
|
|