ratelimitv2

package
v1.36.3-20240219202604... Latest Latest
Warning

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

Go to latest
Published: unknown License: Apache-2.0 Imports: 6 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) 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) SetDescriptors

func (x *RateLimitRequest) SetDescriptors(v []*ratelimit.RateLimitDescriptor)

func (*RateLimitRequest) SetDomain

func (x *RateLimitRequest) SetDomain(v string)

func (*RateLimitRequest) SetHitsAddend

func (x *RateLimitRequest) SetHitsAddend(v uint32)

func (*RateLimitRequest) String

func (x *RateLimitRequest) String() string

type RateLimitRequest_builder

type RateLimitRequest_builder 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
	// 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
	// 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
	// contains filtered or unexported fields
}

func (RateLimitRequest_builder) Build

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) 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) SetHeaders

func (x *RateLimitResponse) SetHeaders(v []*core.HeaderValue)

func (*RateLimitResponse) SetOverallCode

func (x *RateLimitResponse) SetOverallCode(v RateLimitResponse_Code)

func (*RateLimitResponse) SetRequestHeadersToAdd

func (x *RateLimitResponse) SetRequestHeadersToAdd(v []*core.HeaderValue)

func (*RateLimitResponse) SetStatuses

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) 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) ClearCurrentLimit

func (x *RateLimitResponse_DescriptorStatus) ClearCurrentLimit()

func (*RateLimitResponse_DescriptorStatus) GetCode

func (*RateLimitResponse_DescriptorStatus) GetCurrentLimit

func (*RateLimitResponse_DescriptorStatus) GetLimitRemaining

func (x *RateLimitResponse_DescriptorStatus) GetLimitRemaining() uint32

func (*RateLimitResponse_DescriptorStatus) HasCurrentLimit

func (x *RateLimitResponse_DescriptorStatus) HasCurrentLimit() bool

func (*RateLimitResponse_DescriptorStatus) ProtoMessage

func (*RateLimitResponse_DescriptorStatus) ProtoMessage()

func (*RateLimitResponse_DescriptorStatus) ProtoReflect

func (*RateLimitResponse_DescriptorStatus) Reset

func (*RateLimitResponse_DescriptorStatus) SetCode

func (*RateLimitResponse_DescriptorStatus) SetCurrentLimit

func (*RateLimitResponse_DescriptorStatus) SetLimitRemaining

func (x *RateLimitResponse_DescriptorStatus) SetLimitRemaining(v uint32)

func (*RateLimitResponse_DescriptorStatus) String

type RateLimitResponse_DescriptorStatus_builder

type RateLimitResponse_DescriptorStatus_builder struct {

	// The response code for an individual descriptor.
	Code RateLimitResponse_Code
	// The current limit as configured by the server. Useful for debugging, etc.
	CurrentLimit *RateLimitResponse_RateLimit
	// The limit remaining in the current time unit.
	LimitRemaining uint32
	// contains filtered or unexported fields
}

func (RateLimitResponse_DescriptorStatus_builder) Build

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) 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) SetName

func (x *RateLimitResponse_RateLimit) SetName(v string)

func (*RateLimitResponse_RateLimit) SetRequestsPerUnit

func (x *RateLimitResponse_RateLimit) SetRequestsPerUnit(v uint32)

func (*RateLimitResponse_RateLimit) SetUnit

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) Number

func (RateLimitResponse_RateLimit_Unit) String

func (RateLimitResponse_RateLimit_Unit) Type

type RateLimitResponse_RateLimit_builder

type RateLimitResponse_RateLimit_builder struct {

	// A name or description of this limit.
	Name string
	// The number of requests per unit of time.
	RequestsPerUnit uint32
	// The unit of time.
	Unit RateLimitResponse_RateLimit_Unit
	// contains filtered or unexported fields
}

func (RateLimitResponse_RateLimit_builder) Build

type RateLimitResponse_builder

type RateLimitResponse_builder struct {

	// The overall response code which takes into account all of the descriptors that were passed
	// in the RateLimitRequest message.
	OverallCode RateLimitResponse_Code
	// 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
	// A list of headers to add to the response
	Headers []*core.HeaderValue
	// A list of headers to add to the request when forwarded
	RequestHeadersToAdd []*core.HeaderValue
	// contains filtered or unexported fields
}

func (RateLimitResponse_builder) Build

Jump to

Keyboard shortcuts

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