Documentation ¶
Index ¶
- Constants
- Variables
- type BucketId
- type BucketId_builder
- type RateLimitQuotaResponse
- func (x *RateLimitQuotaResponse) GetBucketAction() []*RateLimitQuotaResponse_BucketAction
- func (*RateLimitQuotaResponse) ProtoMessage()
- func (x *RateLimitQuotaResponse) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaResponse) Reset()
- func (x *RateLimitQuotaResponse) SetBucketAction(v []*RateLimitQuotaResponse_BucketAction)
- func (x *RateLimitQuotaResponse) String() string
- type RateLimitQuotaResponse_BucketAction
- func (x *RateLimitQuotaResponse_BucketAction) ClearAbandonAction()
- func (x *RateLimitQuotaResponse_BucketAction) ClearBucketAction()
- func (x *RateLimitQuotaResponse_BucketAction) ClearBucketId()
- func (x *RateLimitQuotaResponse_BucketAction) ClearQuotaAssignmentAction()
- func (x *RateLimitQuotaResponse_BucketAction) GetAbandonAction() *RateLimitQuotaResponse_BucketAction_AbandonAction
- func (x *RateLimitQuotaResponse_BucketAction) GetBucketAction() isRateLimitQuotaResponse_BucketAction_BucketAction
- func (x *RateLimitQuotaResponse_BucketAction) GetBucketId() *BucketId
- func (x *RateLimitQuotaResponse_BucketAction) GetQuotaAssignmentAction() *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction
- func (x *RateLimitQuotaResponse_BucketAction) HasAbandonAction() bool
- func (x *RateLimitQuotaResponse_BucketAction) HasBucketAction() bool
- func (x *RateLimitQuotaResponse_BucketAction) HasBucketId() bool
- func (x *RateLimitQuotaResponse_BucketAction) HasQuotaAssignmentAction() bool
- func (*RateLimitQuotaResponse_BucketAction) ProtoMessage()
- func (x *RateLimitQuotaResponse_BucketAction) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaResponse_BucketAction) Reset()
- func (x *RateLimitQuotaResponse_BucketAction) SetAbandonAction(v *RateLimitQuotaResponse_BucketAction_AbandonAction)
- func (x *RateLimitQuotaResponse_BucketAction) SetBucketId(v *BucketId)
- func (x *RateLimitQuotaResponse_BucketAction) SetQuotaAssignmentAction(v *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction)
- func (x *RateLimitQuotaResponse_BucketAction) String() string
- func (x *RateLimitQuotaResponse_BucketAction) WhichBucketAction() case_RateLimitQuotaResponse_BucketAction_BucketAction
- type RateLimitQuotaResponse_BucketAction_AbandonAction
- func (*RateLimitQuotaResponse_BucketAction_AbandonAction) ProtoMessage()
- func (x *RateLimitQuotaResponse_BucketAction_AbandonAction) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaResponse_BucketAction_AbandonAction) Reset()
- func (x *RateLimitQuotaResponse_BucketAction_AbandonAction) String() string
- type RateLimitQuotaResponse_BucketAction_AbandonAction_
- type RateLimitQuotaResponse_BucketAction_AbandonAction_builder
- type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ClearAssignmentTimeToLive()
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ClearRateLimitStrategy()
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) GetAssignmentTimeToLive() *durationpb.Duration
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) GetRateLimitStrategy() *v3.RateLimitStrategy
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) HasAssignmentTimeToLive() bool
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) HasRateLimitStrategy() bool
- func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ProtoMessage()
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) Reset()
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) SetAssignmentTimeToLive(v *durationpb.Duration)
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) SetRateLimitStrategy(v *v3.RateLimitStrategy)
- func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) String() string
- type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_
- type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_builder
- type RateLimitQuotaResponse_BucketAction_builder
- type RateLimitQuotaResponse_builder
- type RateLimitQuotaUsageReports
- func (x *RateLimitQuotaUsageReports) GetBucketQuotaUsages() []*RateLimitQuotaUsageReports_BucketQuotaUsage
- func (x *RateLimitQuotaUsageReports) GetDomain() string
- func (*RateLimitQuotaUsageReports) ProtoMessage()
- func (x *RateLimitQuotaUsageReports) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaUsageReports) Reset()
- func (x *RateLimitQuotaUsageReports) SetBucketQuotaUsages(v []*RateLimitQuotaUsageReports_BucketQuotaUsage)
- func (x *RateLimitQuotaUsageReports) SetDomain(v string)
- func (x *RateLimitQuotaUsageReports) String() string
- type RateLimitQuotaUsageReports_BucketQuotaUsage
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) ClearBucketId()
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) ClearTimeElapsed()
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetBucketId() *BucketId
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetNumRequestsAllowed() uint64
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetNumRequestsDenied() uint64
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetTimeElapsed() *durationpb.Duration
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) HasBucketId() bool
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) HasTimeElapsed() bool
- func (*RateLimitQuotaUsageReports_BucketQuotaUsage) ProtoMessage()
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) Reset()
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetBucketId(v *BucketId)
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetNumRequestsAllowed(v uint64)
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetNumRequestsDenied(v uint64)
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetTimeElapsed(v *durationpb.Duration)
- func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) String() string
- type RateLimitQuotaUsageReports_BucketQuotaUsage_builder
- type RateLimitQuotaUsageReports_builder
Constants ¶
const RateLimitQuotaResponse_BucketAction_AbandonAction_case case_RateLimitQuotaResponse_BucketAction_BucketAction = 3
const RateLimitQuotaResponse_BucketAction_BucketAction_not_set_case case_RateLimitQuotaResponse_BucketAction_BucketAction = 0
const RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_case case_RateLimitQuotaResponse_BucketAction_BucketAction = 2
Variables ¶
var File_envoy_service_rate_limit_quota_v3_rlqs_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type BucketId ¶
type BucketId struct { Bucket map[string]string `` /* 139-byte string literal not displayed */ // contains filtered or unexported fields }
The identifier for the bucket. Used to match the bucket between the control plane (RLQS server), and the data plane (RLQS client), f.e.:
- the data plane sends a usage report for requests matched into the bucket with “BucketId“ to the control plane
- the control plane sends an assignment for the bucket with “BucketId“ to the data plane Bucket ID.
Example:
.. validated-code-block:: yaml
:type-name: envoy.service.rate_limit_quota.v3.BucketId bucket: name: my_bucket env: staging
.. note::
The order of ``BucketId`` keys do not matter. Buckets ``{ a: 'A', b: 'B' }`` and ``{ b: 'B', a: 'A' }`` are identical.
func (*BucketId) ProtoReflect ¶
func (x *BucketId) ProtoReflect() protoreflect.Message
type BucketId_builder ¶
func (BucketId_builder) Build ¶
func (b0 BucketId_builder) Build() *BucketId
type RateLimitQuotaResponse ¶
type RateLimitQuotaResponse struct { // An ordered list of actions to be applied to the buckets. The actions are applied in the // given order, from top to bottom. BucketAction []*RateLimitQuotaResponse_BucketAction `protobuf:"bytes,1,rep,name=bucket_action,json=bucketAction,proto3" json:"bucket_action,omitempty"` // contains filtered or unexported fields }
func (*RateLimitQuotaResponse) GetBucketAction ¶
func (x *RateLimitQuotaResponse) GetBucketAction() []*RateLimitQuotaResponse_BucketAction
func (*RateLimitQuotaResponse) ProtoMessage ¶
func (*RateLimitQuotaResponse) ProtoMessage()
func (*RateLimitQuotaResponse) ProtoReflect ¶
func (x *RateLimitQuotaResponse) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaResponse) Reset ¶
func (x *RateLimitQuotaResponse) Reset()
func (*RateLimitQuotaResponse) SetBucketAction ¶
func (x *RateLimitQuotaResponse) SetBucketAction(v []*RateLimitQuotaResponse_BucketAction)
func (*RateLimitQuotaResponse) String ¶
func (x *RateLimitQuotaResponse) String() string
type RateLimitQuotaResponse_BucketAction ¶
type RateLimitQuotaResponse_BucketAction struct { // “BucketId“ for which request the action is applied. BucketId *BucketId `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` // Types that are valid to be assigned to BucketAction: // // *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_ // *RateLimitQuotaResponse_BucketAction_AbandonAction_ BucketAction isRateLimitQuotaResponse_BucketAction_BucketAction `protobuf_oneof:"bucket_action"` // contains filtered or unexported fields }
Commands the data plane to apply one of the actions to the bucket with the :ref:`bucket_id <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
func (*RateLimitQuotaResponse_BucketAction) ClearAbandonAction ¶
func (x *RateLimitQuotaResponse_BucketAction) ClearAbandonAction()
func (*RateLimitQuotaResponse_BucketAction) ClearBucketAction ¶
func (x *RateLimitQuotaResponse_BucketAction) ClearBucketAction()
func (*RateLimitQuotaResponse_BucketAction) ClearBucketId ¶
func (x *RateLimitQuotaResponse_BucketAction) ClearBucketId()
func (*RateLimitQuotaResponse_BucketAction) ClearQuotaAssignmentAction ¶
func (x *RateLimitQuotaResponse_BucketAction) ClearQuotaAssignmentAction()
func (*RateLimitQuotaResponse_BucketAction) GetAbandonAction ¶
func (x *RateLimitQuotaResponse_BucketAction) GetAbandonAction() *RateLimitQuotaResponse_BucketAction_AbandonAction
func (*RateLimitQuotaResponse_BucketAction) GetBucketAction ¶
func (x *RateLimitQuotaResponse_BucketAction) GetBucketAction() isRateLimitQuotaResponse_BucketAction_BucketAction
func (*RateLimitQuotaResponse_BucketAction) GetBucketId ¶
func (x *RateLimitQuotaResponse_BucketAction) GetBucketId() *BucketId
func (*RateLimitQuotaResponse_BucketAction) GetQuotaAssignmentAction ¶
func (x *RateLimitQuotaResponse_BucketAction) GetQuotaAssignmentAction() *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction
func (*RateLimitQuotaResponse_BucketAction) HasAbandonAction ¶
func (x *RateLimitQuotaResponse_BucketAction) HasAbandonAction() bool
func (*RateLimitQuotaResponse_BucketAction) HasBucketAction ¶
func (x *RateLimitQuotaResponse_BucketAction) HasBucketAction() bool
func (*RateLimitQuotaResponse_BucketAction) HasBucketId ¶
func (x *RateLimitQuotaResponse_BucketAction) HasBucketId() bool
func (*RateLimitQuotaResponse_BucketAction) HasQuotaAssignmentAction ¶
func (x *RateLimitQuotaResponse_BucketAction) HasQuotaAssignmentAction() bool
func (*RateLimitQuotaResponse_BucketAction) ProtoMessage ¶
func (*RateLimitQuotaResponse_BucketAction) ProtoMessage()
func (*RateLimitQuotaResponse_BucketAction) ProtoReflect ¶
func (x *RateLimitQuotaResponse_BucketAction) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaResponse_BucketAction) Reset ¶
func (x *RateLimitQuotaResponse_BucketAction) Reset()
func (*RateLimitQuotaResponse_BucketAction) SetAbandonAction ¶
func (x *RateLimitQuotaResponse_BucketAction) SetAbandonAction(v *RateLimitQuotaResponse_BucketAction_AbandonAction)
func (*RateLimitQuotaResponse_BucketAction) SetBucketId ¶
func (x *RateLimitQuotaResponse_BucketAction) SetBucketId(v *BucketId)
func (*RateLimitQuotaResponse_BucketAction) SetQuotaAssignmentAction ¶
func (x *RateLimitQuotaResponse_BucketAction) SetQuotaAssignmentAction(v *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction)
func (*RateLimitQuotaResponse_BucketAction) String ¶
func (x *RateLimitQuotaResponse_BucketAction) String() string
func (*RateLimitQuotaResponse_BucketAction) WhichBucketAction ¶
func (x *RateLimitQuotaResponse_BucketAction) WhichBucketAction() case_RateLimitQuotaResponse_BucketAction_BucketAction
type RateLimitQuotaResponse_BucketAction_AbandonAction ¶
type RateLimitQuotaResponse_BucketAction_AbandonAction struct {
// contains filtered or unexported fields
}
Abandon action for the bucket. Indicates that the RLQS server will no longer be sending updates for the given :ref:`bucket_id <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
If no requests are reported for a bucket, after some time the server considers the bucket inactive. The server stops tracking the bucket, and instructs the the data plane to abandon the bucket via this message.
**Abandoning the assignment**
The data plane is to erase the bucket (including its usage data) from the memory. It should stop tracking the bucket, and stop reporting its usage. This effectively resets the data plane to the state prior to matching the first request into the bucket.
**Restarting the subscription**
If a new request is matched into a bucket previously abandoned, the data plane must behave as if it has never tracked the bucket, and it's the first request matched into it:
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.
The bucket transitions to the :ref:`"no assignment" <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>` state.
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>`.
func (*RateLimitQuotaResponse_BucketAction_AbandonAction) ProtoMessage ¶
func (*RateLimitQuotaResponse_BucketAction_AbandonAction) ProtoMessage()
func (*RateLimitQuotaResponse_BucketAction_AbandonAction) ProtoReflect ¶
func (x *RateLimitQuotaResponse_BucketAction_AbandonAction) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaResponse_BucketAction_AbandonAction) Reset ¶
func (x *RateLimitQuotaResponse_BucketAction_AbandonAction) Reset()
func (*RateLimitQuotaResponse_BucketAction_AbandonAction) String ¶
func (x *RateLimitQuotaResponse_BucketAction_AbandonAction) String() string
type RateLimitQuotaResponse_BucketAction_AbandonAction_ ¶
type RateLimitQuotaResponse_BucketAction_AbandonAction_ struct { // Abandon the bucket. // // Commands the data plane to abandon the bucket. // The process of abandoning the bucket is described in the :ref:`AbandonAction // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` // message. AbandonAction *RateLimitQuotaResponse_BucketAction_AbandonAction `protobuf:"bytes,3,opt,name=abandon_action,json=abandonAction,proto3,oneof"` }
type RateLimitQuotaResponse_BucketAction_AbandonAction_builder ¶
type RateLimitQuotaResponse_BucketAction_AbandonAction_builder struct {
// contains filtered or unexported fields
}
func (RateLimitQuotaResponse_BucketAction_AbandonAction_builder) Build ¶
type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction ¶
type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction struct { // A duration after which the assignment is be considered “expired“. The process of the // expiration is described :ref:`above // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`. // // - If unset, the assignment has no expiration date. // - If set to “0“, the assignment expires immediately, forcing the client into the // :ref:`"expired assignment" // <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` // state. This may be used by the RLQS server in cases when it needs clients to proactively // fall back to the pre-configured :ref:`ExpiredAssignmentBehavior // <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`, // f.e. before the server going into restart. // // .. attention:: // // Note that :ref:`expiring // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>` // the assignment is not the same as :ref:`abandoning // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` // the assignment. While expiring the assignment just transitions the bucket to // the "expired assignment" state; abandoning the assignment completely erases // the bucket from the data plane memory, and stops the usage reports. AssignmentTimeToLive *durationpb.Duration `protobuf:"bytes,2,opt,name=assignment_time_to_live,json=assignmentTimeToLive,proto3" json:"assignment_time_to_live,omitempty"` // Configures the local rate limiter for the request matched to the bucket. // If not set, allow all requests. RateLimitStrategy *v3.RateLimitStrategy `protobuf:"bytes,3,opt,name=rate_limit_strategy,json=rateLimitStrategy,proto3" json:"rate_limit_strategy,omitempty"` // contains filtered or unexported fields }
Quota assignment for the bucket. Configures the rate limiting strategy and the duration for the given :ref:`bucket_id <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
**Applying the first assignment to the bucket**
Once the data plane receives the “QuotaAssignmentAction“, it must send the current usage report for the bucket, and start rate limiting requests matched into the bucket using the strategy configured in the :ref:`rate_limit_strategy <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.rate_limit_strategy>` field. The assignment becomes bucket's “active“ assignment.
**Expiring the assignment**
The duration of the assignment defined in the :ref:`assignment_time_to_live <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>` field. When the duration runs off, the assignment is “expired“, and no longer “active“. The data plane should stop applying the rate limiting strategy to the bucket, and transition the bucket to the "expired assignment" state. This activates the behavior configured in the :ref:`expired_assignment_behavior <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.expired_assignment_behavior>` field.
**Replacing the assignment**
- If the rate limiting strategy is different from bucket's “active“ assignment, or 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“) 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>` field. The “active“ assignment is considered unchanged.
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ClearAssignmentTimeToLive ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ClearAssignmentTimeToLive()
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ClearRateLimitStrategy ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ClearRateLimitStrategy()
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) GetAssignmentTimeToLive ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) GetAssignmentTimeToLive() *durationpb.Duration
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) GetRateLimitStrategy ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) GetRateLimitStrategy() *v3.RateLimitStrategy
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) HasAssignmentTimeToLive ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) HasAssignmentTimeToLive() bool
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) HasRateLimitStrategy ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) HasRateLimitStrategy() bool
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ProtoMessage ¶
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ProtoMessage()
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ProtoReflect ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) Reset ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) Reset()
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) SetAssignmentTimeToLive ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) SetAssignmentTimeToLive(v *durationpb.Duration)
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) SetRateLimitStrategy ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) SetRateLimitStrategy(v *v3.RateLimitStrategy)
func (*RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) String ¶
func (x *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction) String() string
type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_ ¶
type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_ struct { // Apply the quota assignment to the bucket. // // Commands the data plane to apply a rate limiting strategy to the bucket. // The process of applying and expiring the rate limiting strategy is detailed in the // :ref:`QuotaAssignmentAction // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>` // message. QuotaAssignmentAction *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction `protobuf:"bytes,2,opt,name=quota_assignment_action,json=quotaAssignmentAction,proto3,oneof"` }
type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_builder ¶
type RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_builder struct { // A duration after which the assignment is be considered “expired“. The process of the // expiration is described :ref:`above // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`. // // - If unset, the assignment has no expiration date. // - If set to “0“, the assignment expires immediately, forcing the client into the // :ref:`"expired assignment" // <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` // state. This may be used by the RLQS server in cases when it needs clients to proactively // fall back to the pre-configured :ref:`ExpiredAssignmentBehavior // <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`, // f.e. before the server going into restart. // // .. attention:: // // Note that :ref:`expiring // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>` // the assignment is not the same as :ref:`abandoning // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` // the assignment. While expiring the assignment just transitions the bucket to // the "expired assignment" state; abandoning the assignment completely erases // the bucket from the data plane memory, and stops the usage reports. AssignmentTimeToLive *durationpb.Duration // Configures the local rate limiter for the request matched to the bucket. // If not set, allow all requests. RateLimitStrategy *v3.RateLimitStrategy // contains filtered or unexported fields }
func (RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_builder) Build ¶
type RateLimitQuotaResponse_BucketAction_builder ¶
type RateLimitQuotaResponse_BucketAction_builder struct { // “BucketId“ for which request the action is applied. BucketId *BucketId // Fields of oneof BucketAction: // Apply the quota assignment to the bucket. // // Commands the data plane to apply a rate limiting strategy to the bucket. // The process of applying and expiring the rate limiting strategy is detailed in the // :ref:`QuotaAssignmentAction // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>` // message. QuotaAssignmentAction *RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction // Abandon the bucket. // // Commands the data plane to abandon the bucket. // The process of abandoning the bucket is described in the :ref:`AbandonAction // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` // message. AbandonAction *RateLimitQuotaResponse_BucketAction_AbandonAction // contains filtered or unexported fields }
func (RateLimitQuotaResponse_BucketAction_builder) Build ¶
func (b0 RateLimitQuotaResponse_BucketAction_builder) Build() *RateLimitQuotaResponse_BucketAction
type RateLimitQuotaResponse_builder ¶
type RateLimitQuotaResponse_builder struct { // An ordered list of actions to be applied to the buckets. The actions are applied in the // given order, from top to bottom. BucketAction []*RateLimitQuotaResponse_BucketAction // contains filtered or unexported fields }
func (RateLimitQuotaResponse_builder) Build ¶
func (b0 RateLimitQuotaResponse_builder) Build() *RateLimitQuotaResponse
type RateLimitQuotaUsageReports ¶
type RateLimitQuotaUsageReports struct { // All quota requests must specify the domain. This enables sharing the quota // server between different applications without fear of overlap. // E.g., "envoy". // // Should only be provided in the first report, all subsequent messages on the same // stream are considered to be in the same domain. In case the domain needs to be // changes, close the stream, and reopen a new one with the different domain. Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` // A list of quota usage reports. The list is processed by the RLQS server in the same order // it's provided by the client. BucketQuotaUsages []*RateLimitQuotaUsageReports_BucketQuotaUsage `protobuf:"bytes,2,rep,name=bucket_quota_usages,json=bucketQuotaUsages,proto3" json:"bucket_quota_usages,omitempty"` // contains filtered or unexported fields }
func (*RateLimitQuotaUsageReports) GetBucketQuotaUsages ¶
func (x *RateLimitQuotaUsageReports) GetBucketQuotaUsages() []*RateLimitQuotaUsageReports_BucketQuotaUsage
func (*RateLimitQuotaUsageReports) GetDomain ¶
func (x *RateLimitQuotaUsageReports) GetDomain() string
func (*RateLimitQuotaUsageReports) ProtoMessage ¶
func (*RateLimitQuotaUsageReports) ProtoMessage()
func (*RateLimitQuotaUsageReports) ProtoReflect ¶
func (x *RateLimitQuotaUsageReports) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaUsageReports) Reset ¶
func (x *RateLimitQuotaUsageReports) Reset()
func (*RateLimitQuotaUsageReports) SetBucketQuotaUsages ¶
func (x *RateLimitQuotaUsageReports) SetBucketQuotaUsages(v []*RateLimitQuotaUsageReports_BucketQuotaUsage)
func (*RateLimitQuotaUsageReports) SetDomain ¶
func (x *RateLimitQuotaUsageReports) SetDomain(v string)
func (*RateLimitQuotaUsageReports) String ¶
func (x *RateLimitQuotaUsageReports) String() string
type RateLimitQuotaUsageReports_BucketQuotaUsage ¶
type RateLimitQuotaUsageReports_BucketQuotaUsage struct { // “BucketId“ for which request quota usage is reported. BucketId *BucketId `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` // Time elapsed since the last report. TimeElapsed *durationpb.Duration `protobuf:"bytes,2,opt,name=time_elapsed,json=timeElapsed,proto3" json:"time_elapsed,omitempty"` // Requests the data plane has allowed through. NumRequestsAllowed uint64 `protobuf:"varint,3,opt,name=num_requests_allowed,json=numRequestsAllowed,proto3" json:"num_requests_allowed,omitempty"` // Requests throttled. NumRequestsDenied uint64 `protobuf:"varint,4,opt,name=num_requests_denied,json=numRequestsDenied,proto3" json:"num_requests_denied,omitempty"` // contains filtered or unexported fields }
The usage report for a bucket.
.. note::
Note that the first report sent for a ``BucketId`` indicates to the RLQS server that the RLQS client is subscribing for the future assignments for this ``BucketId``.
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) ClearBucketId ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) ClearBucketId()
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) ClearTimeElapsed ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) ClearTimeElapsed()
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) GetBucketId ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetBucketId() *BucketId
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) GetNumRequestsAllowed ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetNumRequestsAllowed() uint64
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) GetNumRequestsDenied ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetNumRequestsDenied() uint64
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) GetTimeElapsed ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) GetTimeElapsed() *durationpb.Duration
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) HasBucketId ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) HasBucketId() bool
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) HasTimeElapsed ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) HasTimeElapsed() bool
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) ProtoMessage ¶
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) ProtoMessage()
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) ProtoReflect ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) Reset ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) Reset()
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) SetBucketId ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetBucketId(v *BucketId)
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) SetNumRequestsAllowed ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetNumRequestsAllowed(v uint64)
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) SetNumRequestsDenied ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetNumRequestsDenied(v uint64)
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) SetTimeElapsed ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) SetTimeElapsed(v *durationpb.Duration)
func (*RateLimitQuotaUsageReports_BucketQuotaUsage) String ¶
func (x *RateLimitQuotaUsageReports_BucketQuotaUsage) String() string
type RateLimitQuotaUsageReports_BucketQuotaUsage_builder ¶
type RateLimitQuotaUsageReports_BucketQuotaUsage_builder struct { // “BucketId“ for which request quota usage is reported. BucketId *BucketId // Time elapsed since the last report. TimeElapsed *durationpb.Duration // Requests the data plane has allowed through. NumRequestsAllowed uint64 // Requests throttled. NumRequestsDenied uint64 // contains filtered or unexported fields }
func (RateLimitQuotaUsageReports_BucketQuotaUsage_builder) Build ¶
type RateLimitQuotaUsageReports_builder ¶
type RateLimitQuotaUsageReports_builder struct { // All quota requests must specify the domain. This enables sharing the quota // server between different applications without fear of overlap. // E.g., "envoy". // // Should only be provided in the first report, all subsequent messages on the same // stream are considered to be in the same domain. In case the domain needs to be // changes, close the stream, and reopen a new one with the different domain. Domain string // A list of quota usage reports. The list is processed by the RLQS server in the same order // it's provided by the client. BucketQuotaUsages []*RateLimitQuotaUsageReports_BucketQuotaUsage // contains filtered or unexported fields }
func (RateLimitQuotaUsageReports_builder) Build ¶
func (b0 RateLimitQuotaUsageReports_builder) Build() *RateLimitQuotaUsageReports