// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v7.35.1
// source: envoy/extensions/filters/http/local_ratelimit/v3/local_rate_limit.proto

package local_ratelimitv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v31 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	v33 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
	v32 "github.com/envoyproxy/go-control-plane/envoy/extensions/common/ratelimit/v3"
	v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// [#next-free-field: 19]
type LocalRateLimit struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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_v3_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 request that
	// has been rate limited and is also forwarded upstream. This can only occur when the
	// filter is enabled but not enforced.
	RequestHeadersToAddWhenNotEnforced []*v31.HeaderValueOption `protobuf:"bytes,10,rep,name=request_headers_to_add_when_not_enforced,json=requestHeadersToAddWhenNotEnforced,proto3" json:"request_headers_to_add_when_not_enforced,omitempty"`
	// Specifies a list of HTTP headers that should be added to each response for requests that
	// have been rate limited. This occurs when the filter is enabled and fully enforced.
	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_v3_api_field_type.v3.TokenBucket.fill_interval>` must be a multiple
	//	global :ref:`token bucket's<envoy_v3_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"`
	// Specifies the scope of the rate limiter's token bucket.
	// If set to false, the token bucket is shared across all worker threads,
	// thus the rate limits are applied per Envoy process.
	// If set to true, a token bucket is allocated for each connection.
	// Thus the rate limits are applied per connection thereby allowing
	// one to rate limit requests on a per connection basis.
	// If unspecified, the default value is false.
	LocalRateLimitPerDownstreamConnection bool `protobuf:"varint,11,opt,name=local_rate_limit_per_downstream_connection,json=localRateLimitPerDownstreamConnection,proto3" json:"local_rate_limit_per_downstream_connection,omitempty"`
	// Enables the local cluster level rate limiting, iff this is set explicitly. For example,
	// given an Envoy gateway that contains N Envoy instances and a rate limit rule X tokens
	// per second. If this is set, the total rate limit of whole gateway will always be X tokens
	// per second regardless of how N changes. If this is not set, the total rate limit of whole
	// gateway will be N * X tokens per second.
	//
	// .. note::
	//
	//	This should never be set if the ``local_rate_limit_per_downstream_connection`` is set to
	//	true. Because if per connection rate limiting is enabled, we assume that the token buckets
	//	should never be shared across Envoy instances.
	//
	// .. note::
	//
	//	This only works when the :ref:`local cluster name
	//	<envoy_v3_api_field_config.bootstrap.v3.ClusterManager.local_cluster_name>` is set and
	//	the related cluster is defined in the bootstrap configuration.
	LocalClusterRateLimit *v32.LocalClusterRateLimit `protobuf:"bytes,16,opt,name=local_cluster_rate_limit,json=localClusterRateLimit,proto3" json:"local_cluster_rate_limit,omitempty"`
	// Defines the standard version to use for X-RateLimit headers emitted by the filter.
	//
	//   - “X-RateLimit-Limit“ - indicates the request-quota associated to the
	//     client in the current time-window followed by the description of the
	//     quota policy.
	//   - “X-RateLimit-Remaining“ - indicates the remaining requests in the
	//     current time-window.
	//   - “X-RateLimit-Reset“ - indicates the number of seconds until reset of
	//     the current time-window.
	//
	// In case rate limiting policy specifies more then one time window, the values
	// above represent the window that is closest to reaching its limit.
	//
	// For more information about the headers specification see selected version of
	// the `draft RFC <https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html>`_.
	//
	// Disabled by default.
	EnableXRatelimitHeaders v32.XRateLimitHeadersRFCVersion `protobuf:"varint,12,opt,name=enable_x_ratelimit_headers,json=enableXRatelimitHeaders,proto3,enum=envoy.extensions.common.ratelimit.v3.XRateLimitHeadersRFCVersion" json:"enable_x_ratelimit_headers,omitempty"`
	// Specifies if the local rate limit filter should include the virtual host rate limits.
	VhRateLimits v32.VhRateLimitsOptions `protobuf:"varint,13,opt,name=vh_rate_limits,json=vhRateLimits,proto3,enum=envoy.extensions.common.ratelimit.v3.VhRateLimitsOptions" json:"vh_rate_limits,omitempty"`
	// Specifies if default token bucket should be always consumed.
	// If set to false, default token bucket will only be consumed when there is
	// no matching descriptor. If set to true, default token bucket will always
	// be consumed. Default is true.
	AlwaysConsumeDefaultTokenBucket *wrapperspb.BoolValue `protobuf:"bytes,14,opt,name=always_consume_default_token_bucket,json=alwaysConsumeDefaultTokenBucket,proto3" json:"always_consume_default_token_bucket,omitempty"`
	// Specifies whether a “RESOURCE_EXHAUSTED“ gRPC code must be returned instead
	// of the default “UNAVAILABLE“ gRPC code for a rate limited gRPC call. The
	// HTTP code will be 200 for a gRPC response.
	RateLimitedAsResourceExhausted bool `protobuf:"varint,15,opt,name=rate_limited_as_resource_exhausted,json=rateLimitedAsResourceExhausted,proto3" json:"rate_limited_as_resource_exhausted,omitempty"`
	// Rate limit configuration that is used to generate a list of descriptor entries based on
	// the request context. The generated entries will be used to find one or multiple matched rate
	// limit rule from the “descriptors“.
	// If this is set, then
	// :ref:`VirtualHost.rate_limits<envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` or
	// :ref:`RouteAction.rate_limits<envoy_v3_api_field_config.route.v3.RouteAction.rate_limits>` fields
	// will be ignored.
	//
	// .. note::
	//
	//	Not all configuration fields of
	//	:ref:`rate limit config <envoy_v3_api_msg_config.route.v3.RateLimit>` is supported at here.
	//	Following fields are not supported:
	//
	//	1. :ref:`rate limit stage <envoy_v3_api_field_config.route.v3.RateLimit.stage>`.
	//	2. :ref:`dynamic metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.dynamic_metadata>`.
	//	3. :ref:`disable_key <envoy_v3_api_field_config.route.v3.RateLimit.disable_key>`.
	//	4. :ref:`override limit <envoy_v3_api_field_config.route.v3.RateLimit.limit>`.
	RateLimits []*v33.RateLimit `protobuf:"bytes,17,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
	// Specifies the max dynamic descriptors kept in the cache for a particular wildcard descriptor
	// configured in the global :ref:`descriptors<envoy_v3_api_field_extensions.filters.http.local_ratelimit.v3.LocalRateLimit.descriptors>`.
	// Wildcard descriptor means descriptor has one or more entries with just key and value omitted. For example if user has configured two descriptors
	// with blank value entries, then max dynamic descriptors stored in the LRU cache will be 2 * max_dynamic_descriptors.
	// Actual number of dynamic descriptors will depend on the cardinality of unique values received from the http request for the omitted
	// values.
	// Minimum is 1. Default is 20.
	MaxDynamicDescriptors *wrapperspb.UInt32Value `protobuf:"bytes,18,opt,name=max_dynamic_descriptors,json=maxDynamicDescriptors,proto3" json:"max_dynamic_descriptors,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *LocalRateLimit) Reset() {
	*x = LocalRateLimit{}
	mi := &file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LocalRateLimit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LocalRateLimit) ProtoMessage() {}

func (x *LocalRateLimit) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LocalRateLimit.ProtoReflect.Descriptor instead.
func (*LocalRateLimit) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDescGZIP(), []int{0}
}

func (x *LocalRateLimit) GetStatPrefix() string {
	if x != nil {
		return x.StatPrefix
	}
	return ""
}

func (x *LocalRateLimit) GetStatus() *v3.HttpStatus {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *LocalRateLimit) GetTokenBucket() *v3.TokenBucket {
	if x != nil {
		return x.TokenBucket
	}
	return nil
}

func (x *LocalRateLimit) GetFilterEnabled() *v31.RuntimeFractionalPercent {
	if x != nil {
		return x.FilterEnabled
	}
	return nil
}

func (x *LocalRateLimit) GetFilterEnforced() *v31.RuntimeFractionalPercent {
	if x != nil {
		return x.FilterEnforced
	}
	return nil
}

func (x *LocalRateLimit) GetRequestHeadersToAddWhenNotEnforced() []*v31.HeaderValueOption {
	if x != nil {
		return x.RequestHeadersToAddWhenNotEnforced
	}
	return nil
}

func (x *LocalRateLimit) GetResponseHeadersToAdd() []*v31.HeaderValueOption {
	if x != nil {
		return x.ResponseHeadersToAdd
	}
	return nil
}

func (x *LocalRateLimit) GetDescriptors() []*v32.LocalRateLimitDescriptor {
	if x != nil {
		return x.Descriptors
	}
	return nil
}

func (x *LocalRateLimit) GetStage() uint32 {
	if x != nil {
		return x.Stage
	}
	return 0
}

func (x *LocalRateLimit) GetLocalRateLimitPerDownstreamConnection() bool {
	if x != nil {
		return x.LocalRateLimitPerDownstreamConnection
	}
	return false
}

func (x *LocalRateLimit) GetLocalClusterRateLimit() *v32.LocalClusterRateLimit {
	if x != nil {
		return x.LocalClusterRateLimit
	}
	return nil
}

func (x *LocalRateLimit) GetEnableXRatelimitHeaders() v32.XRateLimitHeadersRFCVersion {
	if x != nil {
		return x.EnableXRatelimitHeaders
	}
	return v32.XRateLimitHeadersRFCVersion(0)
}

func (x *LocalRateLimit) GetVhRateLimits() v32.VhRateLimitsOptions {
	if x != nil {
		return x.VhRateLimits
	}
	return v32.VhRateLimitsOptions(0)
}

func (x *LocalRateLimit) GetAlwaysConsumeDefaultTokenBucket() *wrapperspb.BoolValue {
	if x != nil {
		return x.AlwaysConsumeDefaultTokenBucket
	}
	return nil
}

func (x *LocalRateLimit) GetRateLimitedAsResourceExhausted() bool {
	if x != nil {
		return x.RateLimitedAsResourceExhausted
	}
	return false
}

func (x *LocalRateLimit) GetRateLimits() []*v33.RateLimit {
	if x != nil {
		return x.RateLimits
	}
	return nil
}

func (x *LocalRateLimit) GetMaxDynamicDescriptors() *wrapperspb.UInt32Value {
	if x != nil {
		return x.MaxDynamicDescriptors
	}
	return nil
}

var File_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto protoreflect.FileDescriptor

const file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDesc = "" +
	"\n" +
	"Genvoy/extensions/filters/http/local_ratelimit/v3/local_rate_limit.proto\x120envoy.extensions.filters.http.local_ratelimit.v3\x1a\x1fenvoy/config/core/v3/base.proto\x1a,envoy/config/route/v3/route_components.proto\x1a4envoy/extensions/common/ratelimit/v3/ratelimit.proto\x1a\x1fenvoy/type/v3/http_status.proto\x1a envoy/type/v3/token_bucket.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dudpa/annotations/status.proto\x1a\x17validate/validate.proto\"\xf0\v\n" +
	"\x0eLocalRateLimit\x12(\n" +
	"\vstat_prefix\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" +
	"statPrefix\x121\n" +
	"\x06status\x18\x02 \x01(\v2\x19.envoy.type.v3.HttpStatusR\x06status\x12=\n" +
	"\ftoken_bucket\x18\x03 \x01(\v2\x1a.envoy.type.v3.TokenBucketR\vtokenBucket\x12U\n" +
	"\x0efilter_enabled\x18\x04 \x01(\v2..envoy.config.core.v3.RuntimeFractionalPercentR\rfilterEnabled\x12W\n" +
	"\x0ffilter_enforced\x18\x05 \x01(\v2..envoy.config.core.v3.RuntimeFractionalPercentR\x0efilterEnforced\x12\x87\x01\n" +
	"(request_headers_to_add_when_not_enforced\x18\n" +
	" \x03(\v2'.envoy.config.core.v3.HeaderValueOptionB\b\xfaB\x05\x92\x01\x02\x10\n" +
	"R\"requestHeadersToAddWhenNotEnforced\x12h\n" +
	"\x17response_headers_to_add\x18\x06 \x03(\v2'.envoy.config.core.v3.HeaderValueOptionB\b\xfaB\x05\x92\x01\x02\x10\n" +
	"R\x14responseHeadersToAdd\x12`\n" +
	"\vdescriptors\x18\b \x03(\v2>.envoy.extensions.common.ratelimit.v3.LocalRateLimitDescriptorR\vdescriptors\x12\x1d\n" +
	"\x05stage\x18\t \x01(\rB\a\xfaB\x04*\x02\x18\n" +
	"R\x05stage\x12Y\n" +
	"*local_rate_limit_per_downstream_connection\x18\v \x01(\bR%localRateLimitPerDownstreamConnection\x12t\n" +
	"\x18local_cluster_rate_limit\x18\x10 \x01(\v2;.envoy.extensions.common.ratelimit.v3.LocalClusterRateLimitR\x15localClusterRateLimit\x12\x88\x01\n" +
	"\x1aenable_x_ratelimit_headers\x18\f \x01(\x0e2A.envoy.extensions.common.ratelimit.v3.XRateLimitHeadersRFCVersionB\b\xfaB\x05\x82\x01\x02\x10\x01R\x17enableXRatelimitHeaders\x12i\n" +
	"\x0evh_rate_limits\x18\r \x01(\x0e29.envoy.extensions.common.ratelimit.v3.VhRateLimitsOptionsB\b\xfaB\x05\x82\x01\x02\x10\x01R\fvhRateLimits\x12h\n" +
	"#always_consume_default_token_bucket\x18\x0e \x01(\v2\x1a.google.protobuf.BoolValueR\x1falwaysConsumeDefaultTokenBucket\x12J\n" +
	"\"rate_limited_as_resource_exhausted\x18\x0f \x01(\bR\x1erateLimitedAsResourceExhausted\x12A\n" +
	"\vrate_limits\x18\x11 \x03(\v2 .envoy.config.route.v3.RateLimitR\n" +
	"rateLimits\x12]\n" +
	"\x17max_dynamic_descriptors\x18\x12 \x01(\v2\x1c.google.protobuf.UInt32ValueB\a\xfaB\x04*\x02(\x01R\x15maxDynamicDescriptorsB\xca\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	">io.envoyproxy.envoy.extensions.filters.http.local_ratelimit.v3B\x13LocalRateLimitProtoP\x01Zigithub.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/local_ratelimit/v3;local_ratelimitv3b\x06proto3"

var (
	file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDescOnce sync.Once
	file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDescData []byte
)

func file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDescGZIP() []byte {
	file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDesc), len(file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDesc)))
	})
	return file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDescData
}

var file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_goTypes = []any{
	(*LocalRateLimit)(nil),               // 0: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
	(*v3.HttpStatus)(nil),                // 1: envoy.type.v3.HttpStatus
	(*v3.TokenBucket)(nil),               // 2: envoy.type.v3.TokenBucket
	(*v31.RuntimeFractionalPercent)(nil), // 3: envoy.config.core.v3.RuntimeFractionalPercent
	(*v31.HeaderValueOption)(nil),        // 4: envoy.config.core.v3.HeaderValueOption
	(*v32.LocalRateLimitDescriptor)(nil), // 5: envoy.extensions.common.ratelimit.v3.LocalRateLimitDescriptor
	(*v32.LocalClusterRateLimit)(nil),    // 6: envoy.extensions.common.ratelimit.v3.LocalClusterRateLimit
	(v32.XRateLimitHeadersRFCVersion)(0), // 7: envoy.extensions.common.ratelimit.v3.XRateLimitHeadersRFCVersion
	(v32.VhRateLimitsOptions)(0),         // 8: envoy.extensions.common.ratelimit.v3.VhRateLimitsOptions
	(*wrapperspb.BoolValue)(nil),         // 9: google.protobuf.BoolValue
	(*v33.RateLimit)(nil),                // 10: envoy.config.route.v3.RateLimit
	(*wrapperspb.UInt32Value)(nil),       // 11: google.protobuf.UInt32Value
}
var file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_depIdxs = []int32{
	1,  // 0: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.status:type_name -> envoy.type.v3.HttpStatus
	2,  // 1: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.token_bucket:type_name -> envoy.type.v3.TokenBucket
	3,  // 2: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.filter_enabled:type_name -> envoy.config.core.v3.RuntimeFractionalPercent
	3,  // 3: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.filter_enforced:type_name -> envoy.config.core.v3.RuntimeFractionalPercent
	4,  // 4: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.request_headers_to_add_when_not_enforced:type_name -> envoy.config.core.v3.HeaderValueOption
	4,  // 5: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.response_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
	5,  // 6: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.descriptors:type_name -> envoy.extensions.common.ratelimit.v3.LocalRateLimitDescriptor
	6,  // 7: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.local_cluster_rate_limit:type_name -> envoy.extensions.common.ratelimit.v3.LocalClusterRateLimit
	7,  // 8: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.enable_x_ratelimit_headers:type_name -> envoy.extensions.common.ratelimit.v3.XRateLimitHeadersRFCVersion
	8,  // 9: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.vh_rate_limits:type_name -> envoy.extensions.common.ratelimit.v3.VhRateLimitsOptions
	9,  // 10: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.always_consume_default_token_bucket:type_name -> google.protobuf.BoolValue
	10, // 11: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.rate_limits:type_name -> envoy.config.route.v3.RateLimit
	11, // 12: envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit.max_dynamic_descriptors:type_name -> google.protobuf.UInt32Value
	13, // [13:13] is the sub-list for method output_type
	13, // [13:13] is the sub-list for method input_type
	13, // [13:13] is the sub-list for extension type_name
	13, // [13:13] is the sub-list for extension extendee
	0,  // [0:13] is the sub-list for field type_name
}

func init() { file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_init() }
func file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_init() {
	if File_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDesc), len(file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_depIdxs,
		MessageInfos:      file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_msgTypes,
	}.Build()
	File_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto = out.File
	file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_goTypes = nil
	file_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto_depIdxs = nil
}
