ratelimitv2

package
v1.33.0-20240425200945... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: unknown License: Apache-2.0 Imports: 7 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	RateLimitResponse_Code_name = map[int32]string{
		0: "UNKNOWN",
		1: "OK",
		2: "OVER_LIMIT",
	}
	RateLimitResponse_Code_value = map[string]int32{
		"UNKNOWN":    0,
		"OK":         1,
		"OVER_LIMIT": 2,
	}
)

Enum value maps for RateLimitResponse_Code.

View Source
var (
	RateLimitResponse_RateLimit_Unit_name = map[int32]string{
		0: "UNKNOWN",
		1: "SECOND",
		2: "MINUTE",
		3: "HOUR",
		4: "DAY",
	}
	RateLimitResponse_RateLimit_Unit_value = map[string]int32{
		"UNKNOWN": 0,
		"SECOND":  1,
		"MINUTE":  2,
		"HOUR":    3,
		"DAY":     4,
	}
)

Enum value maps for RateLimitResponse_RateLimit_Unit.

View Source
var File_envoy_service_ratelimit_v2_rls_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type RateLimitRequest

type RateLimitRequest struct {

	// All rate limit requests must specify a domain. This enables the configuration to be per
	// application without fear of overlap. E.g., "envoy".
	Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"`
	// All rate limit requests must specify at least one RateLimitDescriptor. Each descriptor is
	// processed by the service (see below). If any of the descriptors are over limit, the entire
	// request is considered to be over limit.
	Descriptors []*ratelimit.RateLimitDescriptor `protobuf:"bytes,2,rep,name=descriptors,proto3" json:"descriptors,omitempty"`
	// Rate limit requests can optionally specify the number of hits a request adds to the matched
	// limit. If the value is not set in the message, a request increases the matched limit by 1.
	HitsAddend uint32 `protobuf:"varint,3,opt,name=hits_addend,json=hitsAddend,proto3" json:"hits_addend,omitempty"`
	// contains filtered or unexported fields
}

Main message for a rate limit request. The rate limit service is designed to be fully generic in the sense that it can operate on arbitrary hierarchical key/value pairs. The loaded configuration will parse the request and find the most specific limit to apply. In addition, a RateLimitRequest can contain multiple "descriptors" to limit on. When multiple descriptors are provided, the server will limit on *ALL* of them and return an OVER_LIMIT response if any of them are over limit. This enables more complex application level rate limiting scenarios if desired.

func (*RateLimitRequest) Descriptor deprecated

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

Deprecated: Use RateLimitRequest.ProtoReflect.Descriptor instead.

func (*RateLimitRequest) GetDescriptors

func (x *RateLimitRequest) GetDescriptors() []*ratelimit.RateLimitDescriptor

func (*RateLimitRequest) GetDomain

func (x *RateLimitRequest) GetDomain() string

func (*RateLimitRequest) GetHitsAddend

func (x *RateLimitRequest) GetHitsAddend() uint32

func (*RateLimitRequest) ProtoMessage

func (*RateLimitRequest) ProtoMessage()

func (*RateLimitRequest) ProtoReflect

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

func (*RateLimitRequest) Reset

func (x *RateLimitRequest) Reset()

func (*RateLimitRequest) String

func (x *RateLimitRequest) String() string

type RateLimitResponse

type RateLimitResponse struct {

	// The overall response code which takes into account all of the descriptors that were passed
	// in the RateLimitRequest message.
	OverallCode RateLimitResponse_Code `` /* 150-byte string literal not displayed */
	// A list of DescriptorStatus messages which matches the length of the descriptor list passed
	// in the RateLimitRequest. This can be used by the caller to determine which individual
	// descriptors failed and/or what the currently configured limits are for all of them.
	Statuses []*RateLimitResponse_DescriptorStatus `protobuf:"bytes,2,rep,name=statuses,proto3" json:"statuses,omitempty"`
	// A list of headers to add to the response
	Headers []*core.HeaderValue `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"`
	// A list of headers to add to the request when forwarded
	RequestHeadersToAdd []*core.HeaderValue `protobuf:"bytes,4,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"`
	// contains filtered or unexported fields
}

A response from a ShouldRateLimit call.

func (*RateLimitResponse) Descriptor deprecated

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

Deprecated: Use RateLimitResponse.ProtoReflect.Descriptor instead.

func (*RateLimitResponse) GetHeaders

func (x *RateLimitResponse) GetHeaders() []*core.HeaderValue

func (*RateLimitResponse) GetOverallCode

func (x *RateLimitResponse) GetOverallCode() RateLimitResponse_Code

func (*RateLimitResponse) GetRequestHeadersToAdd

func (x *RateLimitResponse) GetRequestHeadersToAdd() []*core.HeaderValue

func (*RateLimitResponse) GetStatuses

func (*RateLimitResponse) ProtoMessage

func (*RateLimitResponse) ProtoMessage()

func (*RateLimitResponse) ProtoReflect

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

func (*RateLimitResponse) Reset

func (x *RateLimitResponse) Reset()

func (*RateLimitResponse) String

func (x *RateLimitResponse) String() string

type RateLimitResponse_Code

type RateLimitResponse_Code int32
const (
	// The response code is not known.
	RateLimitResponse_UNKNOWN RateLimitResponse_Code = 0
	// The response code to notify that the number of requests are under limit.
	RateLimitResponse_OK RateLimitResponse_Code = 1
	// The response code to notify that the number of requests are over limit.
	RateLimitResponse_OVER_LIMIT RateLimitResponse_Code = 2
)

func (RateLimitResponse_Code) Descriptor

func (RateLimitResponse_Code) Enum

func (RateLimitResponse_Code) EnumDescriptor deprecated

func (RateLimitResponse_Code) EnumDescriptor() ([]byte, []int)

Deprecated: Use RateLimitResponse_Code.Descriptor instead.

func (RateLimitResponse_Code) Number

func (RateLimitResponse_Code) String

func (x RateLimitResponse_Code) String() string

func (RateLimitResponse_Code) Type

type RateLimitResponse_DescriptorStatus

type RateLimitResponse_DescriptorStatus struct {

	// The response code for an individual descriptor.
	Code RateLimitResponse_Code `protobuf:"varint,1,opt,name=code,proto3,enum=envoy.service.ratelimit.v2.RateLimitResponse_Code" json:"code,omitempty"`
	// The current limit as configured by the server. Useful for debugging, etc.
	CurrentLimit *RateLimitResponse_RateLimit `protobuf:"bytes,2,opt,name=current_limit,json=currentLimit,proto3" json:"current_limit,omitempty"`
	// The limit remaining in the current time unit.
	LimitRemaining uint32 `protobuf:"varint,3,opt,name=limit_remaining,json=limitRemaining,proto3" json:"limit_remaining,omitempty"`
	// contains filtered or unexported fields
}

func (*RateLimitResponse_DescriptorStatus) Descriptor deprecated

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

Deprecated: Use RateLimitResponse_DescriptorStatus.ProtoReflect.Descriptor instead.

func (*RateLimitResponse_DescriptorStatus) GetCode

func (*RateLimitResponse_DescriptorStatus) GetCurrentLimit

func (*RateLimitResponse_DescriptorStatus) GetLimitRemaining

func (x *RateLimitResponse_DescriptorStatus) GetLimitRemaining() uint32

func (*RateLimitResponse_DescriptorStatus) ProtoMessage

func (*RateLimitResponse_DescriptorStatus) ProtoMessage()

func (*RateLimitResponse_DescriptorStatus) ProtoReflect

func (*RateLimitResponse_DescriptorStatus) Reset

func (*RateLimitResponse_DescriptorStatus) String

type RateLimitResponse_RateLimit

type RateLimitResponse_RateLimit struct {

	// A name or description of this limit.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// The number of requests per unit of time.
	RequestsPerUnit uint32 `protobuf:"varint,1,opt,name=requests_per_unit,json=requestsPerUnit,proto3" json:"requests_per_unit,omitempty"`
	// The unit of time.
	Unit RateLimitResponse_RateLimit_Unit `` /* 127-byte string literal not displayed */
	// contains filtered or unexported fields
}

Defines an actual rate limit in terms of requests per unit of time and the unit itself.

func (*RateLimitResponse_RateLimit) Descriptor deprecated

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

Deprecated: Use RateLimitResponse_RateLimit.ProtoReflect.Descriptor instead.

func (*RateLimitResponse_RateLimit) GetName

func (x *RateLimitResponse_RateLimit) GetName() string

func (*RateLimitResponse_RateLimit) GetRequestsPerUnit

func (x *RateLimitResponse_RateLimit) GetRequestsPerUnit() uint32

func (*RateLimitResponse_RateLimit) GetUnit

func (*RateLimitResponse_RateLimit) ProtoMessage

func (*RateLimitResponse_RateLimit) ProtoMessage()

func (*RateLimitResponse_RateLimit) ProtoReflect

func (*RateLimitResponse_RateLimit) Reset

func (x *RateLimitResponse_RateLimit) Reset()

func (*RateLimitResponse_RateLimit) String

func (x *RateLimitResponse_RateLimit) String() string

type RateLimitResponse_RateLimit_Unit

type RateLimitResponse_RateLimit_Unit int32
const (
	// The time unit is not known.
	RateLimitResponse_RateLimit_UNKNOWN RateLimitResponse_RateLimit_Unit = 0
	// The time unit representing a second.
	RateLimitResponse_RateLimit_SECOND RateLimitResponse_RateLimit_Unit = 1
	// The time unit representing a minute.
	RateLimitResponse_RateLimit_MINUTE RateLimitResponse_RateLimit_Unit = 2
	// The time unit representing an hour.
	RateLimitResponse_RateLimit_HOUR RateLimitResponse_RateLimit_Unit = 3
	// The time unit representing a day.
	RateLimitResponse_RateLimit_DAY RateLimitResponse_RateLimit_Unit = 4
)

func (RateLimitResponse_RateLimit_Unit) Descriptor

func (RateLimitResponse_RateLimit_Unit) Enum

func (RateLimitResponse_RateLimit_Unit) EnumDescriptor deprecated

func (RateLimitResponse_RateLimit_Unit) EnumDescriptor() ([]byte, []int)

Deprecated: Use RateLimitResponse_RateLimit_Unit.Descriptor instead.

func (RateLimitResponse_RateLimit_Unit) Number

func (RateLimitResponse_RateLimit_Unit) String

func (RateLimitResponse_RateLimit_Unit) Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL