Documentation ¶
Index ¶
- Variables
- type RateLimitQuotaBucketSettings
- func (*RateLimitQuotaBucketSettings) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimitQuotaBucketSettings) GetBucketIdBuilder() *RateLimitQuotaBucketSettings_BucketIdBuilder
- func (x *RateLimitQuotaBucketSettings) GetDenyResponseSettings() *RateLimitQuotaBucketSettings_DenyResponseSettings
- func (x *RateLimitQuotaBucketSettings) GetExpiredAssignmentBehavior() *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior
- func (x *RateLimitQuotaBucketSettings) GetNoAssignmentBehavior() *RateLimitQuotaBucketSettings_NoAssignmentBehavior
- func (x *RateLimitQuotaBucketSettings) GetReportingInterval() *durationpb.Duration
- func (*RateLimitQuotaBucketSettings) ProtoMessage()
- func (x *RateLimitQuotaBucketSettings) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaBucketSettings) Reset()
- func (x *RateLimitQuotaBucketSettings) String() string
- type RateLimitQuotaBucketSettings_BucketIdBuilder
- func (*RateLimitQuotaBucketSettings_BucketIdBuilder) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) GetBucketIdBuilder() map[string]*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder
- func (*RateLimitQuotaBucketSettings_BucketIdBuilder) ProtoMessage()
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) Reset()
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) String() string
- type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder
- func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetCustomValue() *v3.TypedExtensionConfig
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetStringValue() string
- func (m *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetValueSpecifier() isRateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_ValueSpecifier
- func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) ProtoMessage()
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) Reset()
- func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) String() string
- type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_CustomValue
- type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_StringValue
- type RateLimitQuotaBucketSettings_DenyResponseSettings
- func (*RateLimitQuotaBucketSettings_DenyResponseSettings) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetGrpcStatus() *status.Status
- func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetHttpBody() *wrapperspb.BytesValue
- func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetHttpStatus() *v32.HttpStatus
- func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetResponseHeadersToAdd() []*v3.HeaderValueOption
- func (*RateLimitQuotaBucketSettings_DenyResponseSettings) ProtoMessage()
- func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) Reset()
- func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) String() string
- type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior
- func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) Descriptor() ([]byte, []int)deprecated
- func (m *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetExpiredAssignmentBehavior() ...
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetExpiredAssignmentBehaviorTimeout() *durationpb.Duration
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetFallbackRateLimit() *v32.RateLimitStrategy
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetReuseLastAssignment() *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment
- func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) ProtoMessage()
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) Reset()
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) String() string
- type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_FallbackRateLimit
- type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment
- func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) Descriptor() ([]byte, []int)deprecated
- func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) ProtoMessage()
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) Reset()
- func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) String() string
- type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment_
- type RateLimitQuotaBucketSettings_NoAssignmentBehavior
- func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) GetFallbackRateLimit() *v32.RateLimitStrategy
- func (m *RateLimitQuotaBucketSettings_NoAssignmentBehavior) GetNoAssignmentBehavior() isRateLimitQuotaBucketSettings_NoAssignmentBehavior_NoAssignmentBehavior
- func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) ProtoMessage()
- func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) Reset()
- func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) String() string
- type RateLimitQuotaBucketSettings_NoAssignmentBehavior_FallbackRateLimit
- type RateLimitQuotaFilterConfig
- func (*RateLimitQuotaFilterConfig) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimitQuotaFilterConfig) GetBucketMatchers() *v31.Matcher
- func (x *RateLimitQuotaFilterConfig) GetDomain() string
- func (x *RateLimitQuotaFilterConfig) GetFilterEnabled() *v3.RuntimeFractionalPercent
- func (x *RateLimitQuotaFilterConfig) GetFilterEnforced() *v3.RuntimeFractionalPercent
- func (x *RateLimitQuotaFilterConfig) GetRequestHeadersToAddWhenNotEnforced() []*v3.HeaderValueOption
- func (x *RateLimitQuotaFilterConfig) GetRlqsServer() *v3.GrpcService
- func (*RateLimitQuotaFilterConfig) ProtoMessage()
- func (x *RateLimitQuotaFilterConfig) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaFilterConfig) Reset()
- func (x *RateLimitQuotaFilterConfig) String() string
- type RateLimitQuotaOverride
- func (*RateLimitQuotaOverride) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimitQuotaOverride) GetBucketMatchers() *v31.Matcher
- func (x *RateLimitQuotaOverride) GetDomain() string
- func (*RateLimitQuotaOverride) ProtoMessage()
- func (x *RateLimitQuotaOverride) ProtoReflect() protoreflect.Message
- func (x *RateLimitQuotaOverride) Reset()
- func (x *RateLimitQuotaOverride) String() string
Constants ¶
This section is empty.
Variables ¶
var File_envoy_extensions_filters_http_rate_limit_quota_v3_rate_limit_quota_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type RateLimitQuotaBucketSettings ¶
type RateLimitQuotaBucketSettings struct { // “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. BucketIdBuilder *RateLimitQuotaBucketSettings_BucketIdBuilder `protobuf:"bytes,1,opt,name=bucket_id_builder,json=bucketIdBuilder,proto3" json:"bucket_id_builder,omitempty"` // 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] ReportingInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=reporting_interval,json=reportingInterval,proto3" json:"reporting_interval,omitempty"` // 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>`. DenyResponseSettings *RateLimitQuotaBucketSettings_DenyResponseSettings `protobuf:"bytes,3,opt,name=deny_response_settings,json=denyResponseSettings,proto3" json:"deny_response_settings,omitempty"` // 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. NoAssignmentBehavior *RateLimitQuotaBucketSettings_NoAssignmentBehavior `protobuf:"bytes,4,opt,name=no_assignment_behavior,json=noAssignmentBehavior,proto3" json:"no_assignment_behavior,omitempty"` // 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. ExpiredAssignmentBehavior *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior `` /* 138-byte string literal not displayed */ // contains filtered or unexported fields }
Rate Limit Quota Bucket Settings to apply on the successful “bucket_matchers“ match.
Specify this message in the :ref:`Matcher.OnMatch.action <envoy_v3_api_field_.xds.type.matcher.v3.Matcher.OnMatch.action>` field of the “bucket_matchers“ matcher tree to assign the matched requests to the Quota Bucket. Usage example: :ref:`RateLimitQuotaFilterConfig.bucket_matchers <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig.bucket_matchers>`. [#next-free-field: 6]
func (*RateLimitQuotaBucketSettings) Descriptor
deprecated
func (*RateLimitQuotaBucketSettings) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaBucketSettings.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaBucketSettings) GetBucketIdBuilder ¶
func (x *RateLimitQuotaBucketSettings) GetBucketIdBuilder() *RateLimitQuotaBucketSettings_BucketIdBuilder
func (*RateLimitQuotaBucketSettings) GetDenyResponseSettings ¶
func (x *RateLimitQuotaBucketSettings) GetDenyResponseSettings() *RateLimitQuotaBucketSettings_DenyResponseSettings
func (*RateLimitQuotaBucketSettings) GetExpiredAssignmentBehavior ¶
func (x *RateLimitQuotaBucketSettings) GetExpiredAssignmentBehavior() *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior
func (*RateLimitQuotaBucketSettings) GetNoAssignmentBehavior ¶
func (x *RateLimitQuotaBucketSettings) GetNoAssignmentBehavior() *RateLimitQuotaBucketSettings_NoAssignmentBehavior
func (*RateLimitQuotaBucketSettings) GetReportingInterval ¶
func (x *RateLimitQuotaBucketSettings) GetReportingInterval() *durationpb.Duration
func (*RateLimitQuotaBucketSettings) ProtoMessage ¶
func (*RateLimitQuotaBucketSettings) ProtoMessage()
func (*RateLimitQuotaBucketSettings) ProtoReflect ¶
func (x *RateLimitQuotaBucketSettings) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaBucketSettings) Reset ¶
func (x *RateLimitQuotaBucketSettings) Reset()
func (*RateLimitQuotaBucketSettings) String ¶
func (x *RateLimitQuotaBucketSettings) String() string
type RateLimitQuotaBucketSettings_BucketIdBuilder ¶
type RateLimitQuotaBucketSettings_BucketIdBuilder struct { // The map translated into the “BucketId“ map. // // The “string key“ of this map and becomes the key of “BucketId“ map as is. // // The “ValueBuilder value“ for the key can be: // // - static “StringValue string_value“ — becomes the value in the “BucketId“ map as is. // - dynamic “TypedExtensionConfig custom_value“ — evaluated for each request. Must produce // a string output, which becomes the value in the the “BucketId“ map. // // See usage examples in the docs to :ref:`bucket_id_builder // <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.bucket_id_builder>` // field. BucketIdBuilder map[string]*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder `` /* 196-byte string literal not displayed */ // contains filtered or unexported fields }
“BucketIdBuilder“ makes it possible to build :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` with values substituted from the dynamic properties associated with each individual request. See usage examples in the docs to :ref:`bucket_id_builder <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.bucket_id_builder>` field.
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) Descriptor
deprecated
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaBucketSettings_BucketIdBuilder.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) GetBucketIdBuilder ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) GetBucketIdBuilder() map[string]*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) ProtoMessage ¶
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) ProtoMessage()
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) ProtoReflect ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) Reset ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) Reset()
func (*RateLimitQuotaBucketSettings_BucketIdBuilder) String ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder) String() string
type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder ¶
type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder struct { // Types that are assignable to ValueSpecifier: // // *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_StringValue // *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_CustomValue ValueSpecifier isRateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_ValueSpecifier `protobuf_oneof:"value_specifier"` // contains filtered or unexported fields }
Produces the value of the :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` map.
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) Descriptor
deprecated
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetCustomValue ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetCustomValue() *v3.TypedExtensionConfig
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetStringValue ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetStringValue() string
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetValueSpecifier ¶
func (m *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) GetValueSpecifier() isRateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_ValueSpecifier
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) ProtoMessage ¶
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) ProtoMessage()
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) ProtoReflect ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) Reset ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) Reset()
func (*RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) String ¶
func (x *RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder) String() string
type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_CustomValue ¶
type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_CustomValue struct { // Dynamic value — evaluated for each request. Must produce a string output, which becomes // the value in the :ref:`BucketId <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` // map. For example, extensions with the “envoy.matching.http.input“ category can be used. CustomValue *v3.TypedExtensionConfig `protobuf:"bytes,2,opt,name=custom_value,json=customValue,proto3,oneof"` }
type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_StringValue ¶
type RateLimitQuotaBucketSettings_BucketIdBuilder_ValueBuilder_StringValue struct { // Static string value — becomes the value in the :ref:`BucketId // <envoy_v3_api_msg_service.rate_limit_quota.v3.BucketId>` map as is. StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"` }
type RateLimitQuotaBucketSettings_DenyResponseSettings ¶
type RateLimitQuotaBucketSettings_DenyResponseSettings struct { // HTTP response code to deny for HTTP requests (gRPC excluded). // Defaults to 429 (:ref:`StatusCode.TooManyRequests<envoy_v3_api_enum_value_type.v3.StatusCode.TooManyRequests>`). HttpStatus *v32.HttpStatus `protobuf:"bytes,1,opt,name=http_status,json=httpStatus,proto3" json:"http_status,omitempty"` // HTTP response body used to deny for HTTP requests (gRPC excluded). // If not set, an empty body is returned. HttpBody *wrapperspb.BytesValue `protobuf:"bytes,2,opt,name=http_body,json=httpBody,proto3" json:"http_body,omitempty"` // Configure the deny response for gRPC requests over the rate limit. // Allows to specify the `RPC status code // <https://cloud.google.com/natural-language/docs/reference/rpc/google.rpc#google.rpc.Code>`_, // and the error message. // Defaults to the Status with the RPC Code “UNAVAILABLE“ and empty message. // // To identify gRPC requests, Envoy checks that the “Content-Type“ header is // “application/grpc“, or one of the various “application/grpc+“ values. // // .. note:: // // The HTTP code for a gRPC response is always 200. GrpcStatus *status.Status `protobuf:"bytes,3,opt,name=grpc_status,json=grpcStatus,proto3" json:"grpc_status,omitempty"` // Specifies a list of HTTP headers that should be added to each response for requests that // have been rate limited. Applies both to plain HTTP, and gRPC requests. // The headers are added even when the rate limit quota was not enforced. ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,4,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"` // contains filtered or unexported fields }
Customize the deny response to the requests over the rate limit.
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) Descriptor
deprecated
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaBucketSettings_DenyResponseSettings.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) GetGrpcStatus ¶
func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetGrpcStatus() *status.Status
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) GetHttpBody ¶
func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetHttpBody() *wrapperspb.BytesValue
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) GetHttpStatus ¶
func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetHttpStatus() *v32.HttpStatus
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) GetResponseHeadersToAdd ¶
func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) GetResponseHeadersToAdd() []*v3.HeaderValueOption
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) ProtoMessage ¶
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) ProtoMessage()
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) ProtoReflect ¶
func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) Reset ¶
func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) Reset()
func (*RateLimitQuotaBucketSettings_DenyResponseSettings) String ¶
func (x *RateLimitQuotaBucketSettings_DenyResponseSettings) String() string
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior ¶
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior struct { // Limit the time :ref:`ExpiredAssignmentBehavior // <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>` // is applied. If the server doesn't respond within this duration: // // 1. Selected “ExpiredAssignmentBehavior“ is no longer applied. // 2. The bucket is abandoned. 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. // 3. If a new request is matched into the bucket that has become abandoned, // the data plane restarts the subscription to the bucket. The process of restarting the // subscription is described in the :ref:`AbandonAction // <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>` // message. // // If the field is not set, the “ExpiredAssignmentBehavior“ time is **not limited**: // it applies to the bucket until replaced by an “active“ assignment. ExpiredAssignmentBehaviorTimeout *durationpb.Duration `` /* 161-byte string literal not displayed */ // Types that are assignable to ExpiredAssignmentBehavior: // // *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_FallbackRateLimit // *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment_ ExpiredAssignmentBehavior isRateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ExpiredAssignmentBehavior `protobuf_oneof:"expired_assignment_behavior"` // contains filtered or unexported fields }
Specifies the behavior when the bucket's assignment has expired, and cannot be refreshed for any reason.
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) Descriptor
deprecated
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetExpiredAssignmentBehavior ¶
func (m *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetExpiredAssignmentBehavior() isRateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ExpiredAssignmentBehavior
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetExpiredAssignmentBehaviorTimeout ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetExpiredAssignmentBehaviorTimeout() *durationpb.Duration
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetFallbackRateLimit ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetFallbackRateLimit() *v32.RateLimitStrategy
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetReuseLastAssignment ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) GetReuseLastAssignment() *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) ProtoMessage ¶
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) ProtoMessage()
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) ProtoReflect ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) Reset ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) Reset()
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) String ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior) String() string
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_FallbackRateLimit ¶
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_FallbackRateLimit struct { // Apply the rate limiting strategy to all requests matched into the bucket until the RLQS // server sends a new assignment, or the :ref:`expired_assignment_behavior_timeout // <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` // runs out. FallbackRateLimit *v32.RateLimitStrategy `protobuf:"bytes,2,opt,name=fallback_rate_limit,json=fallbackRateLimit,proto3,oneof"` }
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment ¶
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment struct {
// contains filtered or unexported fields
}
Reuse the last known quota assignment, effectively extending it for the duration specified in the :ref:`expired_assignment_behavior_timeout <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` field.
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) Descriptor
deprecated
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) ProtoMessage ¶
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) ProtoMessage()
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) ProtoReflect ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) Reset ¶
func (*RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) String ¶
func (x *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment) String() string
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment_ ¶
type RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment_ struct { // Reuse the last “active“ assignment until the RLQS server sends a new assignment, or the // :ref:`expired_assignment_behavior_timeout // <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>` // runs out. ReuseLastAssignment *RateLimitQuotaBucketSettings_ExpiredAssignmentBehavior_ReuseLastAssignment `protobuf:"bytes,3,opt,name=reuse_last_assignment,json=reuseLastAssignment,proto3,oneof"` }
type RateLimitQuotaBucketSettings_NoAssignmentBehavior ¶
type RateLimitQuotaBucketSettings_NoAssignmentBehavior struct { // Types that are assignable to NoAssignmentBehavior: // // *RateLimitQuotaBucketSettings_NoAssignmentBehavior_FallbackRateLimit NoAssignmentBehavior isRateLimitQuotaBucketSettings_NoAssignmentBehavior_NoAssignmentBehavior `protobuf_oneof:"no_assignment_behavior"` // contains filtered or unexported fields }
Configures the behavior after the first request has been matched to the bucket, and before the the RLQS server returns the first quota assignment.
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) Descriptor
deprecated
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaBucketSettings_NoAssignmentBehavior.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) GetFallbackRateLimit ¶
func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) GetFallbackRateLimit() *v32.RateLimitStrategy
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) GetNoAssignmentBehavior ¶
func (m *RateLimitQuotaBucketSettings_NoAssignmentBehavior) GetNoAssignmentBehavior() isRateLimitQuotaBucketSettings_NoAssignmentBehavior_NoAssignmentBehavior
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) ProtoMessage ¶
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) ProtoMessage()
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) ProtoReflect ¶
func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) Reset ¶
func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) Reset()
func (*RateLimitQuotaBucketSettings_NoAssignmentBehavior) String ¶
func (x *RateLimitQuotaBucketSettings_NoAssignmentBehavior) String() string
type RateLimitQuotaBucketSettings_NoAssignmentBehavior_FallbackRateLimit ¶
type RateLimitQuotaBucketSettings_NoAssignmentBehavior_FallbackRateLimit struct { // Apply pre-configured rate limiting strategy until the server sends the first assignment. FallbackRateLimit *v32.RateLimitStrategy `protobuf:"bytes,1,opt,name=fallback_rate_limit,json=fallbackRateLimit,proto3,oneof"` }
type RateLimitQuotaFilterConfig ¶
type RateLimitQuotaFilterConfig struct { // Configures the gRPC Rate Limit Quota Service (RLQS) RateLimitQuotaService. RlqsServer *v3.GrpcService `protobuf:"bytes,1,opt,name=rlqs_server,json=rlqsServer,proto3" json:"rlqs_server,omitempty"` // The application domain to use when calling the service. This enables sharing the quota // server between different applications without fear of overlap. // E.g., "envoy". Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` // The match tree to use for grouping incoming requests into buckets. // // Example: // // .. validated-code-block:: yaml // // :type-name: xds.type.matcher.v3.Matcher // // matcher_list: // matchers: // # Assign requests with header['env'] set to 'staging' to the bucket { name: 'staging' } // - predicate: // single_predicate: // input: // typed_config: // '@type': type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput // header_name: env // value_match: // exact: staging // on_match: // action: // typed_config: // '@type': type.googleapis.com/envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings // bucket_id_builder: // bucket_id_builder: // name: // string_value: staging // // # Assign requests with header['user_group'] set to 'admin' to the bucket { acl: 'admin_users' } // - predicate: // single_predicate: // input: // typed_config: // '@type': type.googleapis.com/xds.type.matcher.v3.HttpAttributesCelMatchInput // custom_match: // typed_config: // '@type': type.googleapis.com/xds.type.matcher.v3.CelMatcher // expr_match: // # Shortened for illustration purposes. Here should be parsed CEL expression: // # request.headers['user_group'] == 'admin' // parsed_expr: {} // on_match: // action: // typed_config: // '@type': type.googleapis.com/envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings // bucket_id_builder: // bucket_id_builder: // acl: // string_value: admin_users // // # Catch-all clause for the requests not matched by any of the matchers. // # In this example, deny all requests. // on_no_match: // action: // typed_config: // '@type': type.googleapis.com/envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings // no_assignment_behavior: // fallback_rate_limit: // blanket_rule: DENY_ALL // // .. attention:: // // The first matched group wins. Once the request is matched into a bucket, matcher // evaluation ends. // // Use “on_no_match“ field to assign the catch-all bucket. If a request is not matched // into any bucket, and there's no “on_no_match“ field configured, the request will be // ALLOWED by default. It will NOT be reported to the RLQS server. // // Refer to :ref:`Unified Matcher API <envoy_v3_api_msg_.xds.type.matcher.v3.Matcher>` // documentation for more information on the matcher trees. BucketMatchers *v31.Matcher `protobuf:"bytes,3,opt,name=bucket_matchers,json=bucketMatchers,proto3" json:"bucket_matchers,omitempty"` // If set, this will enable -- but not necessarily enforce -- the rate limit for the given // fraction of requests. // // Defaults to 100% of requests. FilterEnabled *v3.RuntimeFractionalPercent `protobuf:"bytes,4,opt,name=filter_enabled,json=filterEnabled,proto3" json:"filter_enabled,omitempty"` // If set, this will enforce the rate limit decisions for the given fraction of requests. // For requests that are not enforced the filter will still obtain the quota and include it // in the load computation, however the request will always be allowed regardless of the outcome // of quota application. This allows validation or testing of the rate limiting service // infrastructure without disrupting existing traffic. // // Note: this only applies to the fraction of enabled requests. // // Defaults to 100% of requests. FilterEnforced *v3.RuntimeFractionalPercent `protobuf:"bytes,5,opt,name=filter_enforced,json=filterEnforced,proto3" json:"filter_enforced,omitempty"` // Specifies a list of HTTP headers that should be added to each request that // has been rate limited and is also forwarded upstream. This can only occur when the // filter is enabled but not enforced. RequestHeadersToAddWhenNotEnforced []*v3.HeaderValueOption `` /* 173-byte string literal not displayed */ // contains filtered or unexported fields }
Configures the Rate Limit Quota filter.
Can be overridden in the per-route and per-host configurations. The more specific definition completely overrides the less specific definition. [#next-free-field: 7]
func (*RateLimitQuotaFilterConfig) Descriptor
deprecated
func (*RateLimitQuotaFilterConfig) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaFilterConfig.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaFilterConfig) GetBucketMatchers ¶
func (x *RateLimitQuotaFilterConfig) GetBucketMatchers() *v31.Matcher
func (*RateLimitQuotaFilterConfig) GetDomain ¶
func (x *RateLimitQuotaFilterConfig) GetDomain() string
func (*RateLimitQuotaFilterConfig) GetFilterEnabled ¶
func (x *RateLimitQuotaFilterConfig) GetFilterEnabled() *v3.RuntimeFractionalPercent
func (*RateLimitQuotaFilterConfig) GetFilterEnforced ¶
func (x *RateLimitQuotaFilterConfig) GetFilterEnforced() *v3.RuntimeFractionalPercent
func (*RateLimitQuotaFilterConfig) GetRequestHeadersToAddWhenNotEnforced ¶
func (x *RateLimitQuotaFilterConfig) GetRequestHeadersToAddWhenNotEnforced() []*v3.HeaderValueOption
func (*RateLimitQuotaFilterConfig) GetRlqsServer ¶
func (x *RateLimitQuotaFilterConfig) GetRlqsServer() *v3.GrpcService
func (*RateLimitQuotaFilterConfig) ProtoMessage ¶
func (*RateLimitQuotaFilterConfig) ProtoMessage()
func (*RateLimitQuotaFilterConfig) ProtoReflect ¶
func (x *RateLimitQuotaFilterConfig) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaFilterConfig) Reset ¶
func (x *RateLimitQuotaFilterConfig) Reset()
func (*RateLimitQuotaFilterConfig) String ¶
func (x *RateLimitQuotaFilterConfig) String() string
type RateLimitQuotaOverride ¶
type RateLimitQuotaOverride struct { // The application domain to use when calling the service. This enables sharing the quota // server between different applications without fear of overlap. // E.g., "envoy". // // If empty, inherits the value from the less specific definition. Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` // The match tree to use for grouping incoming requests into buckets. // // If set, fully overrides the bucket matchers provided on the less specific definition. // If not set, inherits the value from the less specific definition. // // See usage example: :ref:`RateLimitQuotaFilterConfig.bucket_matchers // <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig.bucket_matchers>`. BucketMatchers *v31.Matcher `protobuf:"bytes,2,opt,name=bucket_matchers,json=bucketMatchers,proto3" json:"bucket_matchers,omitempty"` // contains filtered or unexported fields }
Per-route and per-host configuration overrides. The more specific definition completely overrides the less specific definition.
func (*RateLimitQuotaOverride) Descriptor
deprecated
func (*RateLimitQuotaOverride) Descriptor() ([]byte, []int)
Deprecated: Use RateLimitQuotaOverride.ProtoReflect.Descriptor instead.
func (*RateLimitQuotaOverride) GetBucketMatchers ¶
func (x *RateLimitQuotaOverride) GetBucketMatchers() *v31.Matcher
func (*RateLimitQuotaOverride) GetDomain ¶
func (x *RateLimitQuotaOverride) GetDomain() string
func (*RateLimitQuotaOverride) ProtoMessage ¶
func (*RateLimitQuotaOverride) ProtoMessage()
func (*RateLimitQuotaOverride) ProtoReflect ¶
func (x *RateLimitQuotaOverride) ProtoReflect() protoreflect.Message
func (*RateLimitQuotaOverride) Reset ¶
func (x *RateLimitQuotaOverride) Reset()
func (*RateLimitQuotaOverride) String ¶
func (x *RateLimitQuotaOverride) String() string