go-control-plane: github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/local_ratelimit/v3 Index | Files

package envoy_extensions_filters_http_local_ratelimit_v3

import "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/local_ratelimit/v3"

Index

Package Files

local_rate_limit.pb.go local_rate_limit.pb.validate.go

Variables

var File_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto protoreflect.FileDescriptor

type LocalRateLimit Uses

type LocalRateLimit struct {

    // The human readable prefix to use when emitting stats.
    StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
    // This field allows for a custom HTTP response status code to the downstream client when
    // the request has been rate limited.
    // Defaults to 429 (TooManyRequests).
    //
    // .. note::
    //   If this is set to < 400, 429 will be used instead.
    Status *v3.HttpStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
    // The token bucket configuration to use for rate limiting requests that are processed by this
    // filter. Each request processed by the filter consumes a single token. If the token is available,
    // the request will be allowed. If no tokens are available, the request will receive the configured
    // rate limit status.
    //
    // .. note::
    //   It's fine for the token bucket to be unset for the global configuration since the rate limit
    //   can be applied at a the virtual host or route level. Thus, the token bucket must be set
    //   for the per route configuration otherwise the config will be rejected.
    //
    // .. note::
    //   When using per route configuration, the bucket becomes unique to that route.
    //
    // .. note::
    //   In the current implementation the token bucket's :ref:`fill_interval
    //   <envoy_api_field_type.v3.TokenBucket.fill_interval>` must be >= 50ms to avoid too aggressive
    //   refills.
    TokenBucket *v3.TokenBucket `protobuf:"bytes,3,opt,name=token_bucket,json=tokenBucket,proto3" json:"token_bucket,omitempty"`
    // If set, this will enable -- but not necessarily enforce -- the rate limit for the given
    // fraction of requests.
    // Defaults to 0% of requests for safety.
    FilterEnabled *v31.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.
    //
    // Note: this only applies to the fraction of enabled requests.
    //
    // Defaults to 0% of requests for safety.
    FilterEnforced *v31.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 response for requests that
    // have been rate limited.
    ResponseHeadersToAdd []*v31.HeaderValueOption `protobuf:"bytes,6,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"`
    // The rate limit descriptor list to use in the local rate limit to override
    // on. The rate limit descriptor is selected by the first full match from the
    // request descriptors.
    //
    // Example on how to use ::ref:`this <config_http_filters_local_rate_limit_descriptors>`
    //
    // .. note::
    //
    //   In the current implementation the descriptor's token bucket :ref:`fill_interval
    //   <envoy_api_field_type.v3.TokenBucket.fill_interval>` must be a multiple
    //   global :ref:`token bucket's<envoy_api_field_extensions.filters.http.local_ratelimit.v3.LocalRateLimit.token_bucket>` fill interval.
    //
    //   The descriptors must match verbatim for rate limiting to apply. There is no partial
    //   match by a subset of descriptor entries in the current implementation.
    Descriptors []*v32.LocalRateLimitDescriptor `protobuf:"bytes,8,rep,name=descriptors,proto3" json:"descriptors,omitempty"`
    // Specifies the rate limit configurations to be applied with the same
    // stage number. If not set, the default stage number is 0.
    //
    // .. note::
    //
    //  The filter supports a range of 0 - 10 inclusively for stage numbers.
    Stage uint32 `protobuf:"varint,9,opt,name=stage,proto3" json:"stage,omitempty"`
    // contains filtered or unexported fields
}

[#next-free-field: 10]

func (*LocalRateLimit) Descriptor Uses

func (*LocalRateLimit) Descriptor() ([]byte, []int)

Deprecated: Use LocalRateLimit.ProtoReflect.Descriptor instead.

func (*LocalRateLimit) GetDescriptors Uses

func (x *LocalRateLimit) GetDescriptors() []*v32.LocalRateLimitDescriptor

func (*LocalRateLimit) GetFilterEnabled Uses

func (x *LocalRateLimit) GetFilterEnabled() *v31.RuntimeFractionalPercent

func (*LocalRateLimit) GetFilterEnforced Uses

func (x *LocalRateLimit) GetFilterEnforced() *v31.RuntimeFractionalPercent

func (*LocalRateLimit) GetResponseHeadersToAdd Uses

func (x *LocalRateLimit) GetResponseHeadersToAdd() []*v31.HeaderValueOption

func (*LocalRateLimit) GetStage Uses

func (x *LocalRateLimit) GetStage() uint32

func (*LocalRateLimit) GetStatPrefix Uses

func (x *LocalRateLimit) GetStatPrefix() string

func (*LocalRateLimit) GetStatus Uses

func (x *LocalRateLimit) GetStatus() *v3.HttpStatus

func (*LocalRateLimit) GetTokenBucket Uses

func (x *LocalRateLimit) GetTokenBucket() *v3.TokenBucket

func (*LocalRateLimit) ProtoMessage Uses

func (*LocalRateLimit) ProtoMessage()

func (*LocalRateLimit) ProtoReflect Uses

func (x *LocalRateLimit) ProtoReflect() protoreflect.Message

func (*LocalRateLimit) Reset Uses

func (x *LocalRateLimit) Reset()

func (*LocalRateLimit) String Uses

func (x *LocalRateLimit) String() string

func (*LocalRateLimit) Validate Uses

func (m *LocalRateLimit) Validate() error

Validate checks the field values on LocalRateLimit with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type LocalRateLimitValidationError Uses

type LocalRateLimitValidationError struct {
    // contains filtered or unexported fields
}

LocalRateLimitValidationError is the validation error returned by LocalRateLimit.Validate if the designated constraints aren't met.

func (LocalRateLimitValidationError) Cause Uses

func (e LocalRateLimitValidationError) Cause() error

Cause function returns cause value.

func (LocalRateLimitValidationError) Error Uses

func (e LocalRateLimitValidationError) Error() string

Error satisfies the builtin error interface

func (LocalRateLimitValidationError) ErrorName Uses

func (e LocalRateLimitValidationError) ErrorName() string

ErrorName returns error name.

func (LocalRateLimitValidationError) Field Uses

func (e LocalRateLimitValidationError) Field() string

Field function returns field value.

func (LocalRateLimitValidationError) Key Uses

func (e LocalRateLimitValidationError) Key() bool

Key function returns key value.

func (LocalRateLimitValidationError) Reason Uses

func (e LocalRateLimitValidationError) Reason() string

Reason function returns reason value.

Package envoy_extensions_filters_http_local_ratelimit_v3 imports 21 packages (graph) and is imported by 6 packages. Updated 2021-01-22. Refresh now. Tools for package owners.