# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: envoy/extensions/filters/http/ratelimit/v3/rate_limit.proto
# Protobuf Python Version: 4.25.0
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from envoy.config.core.v3 import base_pb2 as envoy_dot_config_dot_core_dot_v3_dot_base__pb2
from envoy.config.core.v3 import extension_pb2 as envoy_dot_config_dot_core_dot_v3_dot_extension__pb2
from envoy.config.ratelimit.v3 import rls_pb2 as envoy_dot_config_dot_ratelimit_dot_v3_dot_rls__pb2
from envoy.config.route.v3 import route_components_pb2 as envoy_dot_config_dot_route_dot_v3_dot_route__components__pb2
from envoy.type.metadata.v3 import metadata_pb2 as envoy_dot_type_dot_metadata_dot_v3_dot_metadata__pb2
from envoy.type.v3 import http_status_pb2 as envoy_dot_type_dot_v3_dot_http__status__pb2
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from udpa.annotations import status_pb2 as udpa_dot_annotations_dot_status__pb2
from udpa.annotations import versioning_pb2 as udpa_dot_annotations_dot_versioning__pb2
from validate import validate_pb2 as validate_dot_validate__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;envoy/extensions/filters/http/ratelimit/v3/rate_limit.proto\x12*envoy.extensions.filters.http.ratelimit.v3\x1a\x1f\x65nvoy/config/core/v3/base.proto\x1a$envoy/config/core/v3/extension.proto\x1a#envoy/config/ratelimit/v3/rls.proto\x1a,envoy/config/route/v3/route_components.proto\x1a%envoy/type/metadata/v3/metadata.proto\x1a\x1f\x65nvoy/type/v3/http_status.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\xf1\x05\n\tRateLimit\x12\x17\n\x06\x64omain\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x16\n\x05stage\x18\x02 \x01(\rB\x07\xfa\x42\x04*\x02\x18\n\x12\x37\n\x0crequest_type\x18\x03 \x01(\tB!\xfa\x42\x1er\x1cR\x08internalR\x08\x65xternalR\x04\x62othR\x00\x12*\n\x07timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x11\x66\x61ilure_mode_deny\x18\x05 \x01(\x08\x12*\n\"rate_limited_as_resource_exhausted\x18\x06 \x01(\x08\x12W\n\x12rate_limit_service\x18\x07 \x01(\x0b\x32\x31.envoy.config.ratelimit.v3.RateLimitServiceConfigB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x7f\n\x1a\x65nable_x_ratelimit_headers\x18\x08 \x01(\x0e\x32Q.envoy.extensions.filters.http.ratelimit.v3.RateLimit.XRateLimitHeadersRFCVersionB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12*\n\"disable_x_envoy_ratelimited_header\x18\t \x01(\x08\x12\x36\n\x13rate_limited_status\x18\n \x01(\x0b\x32\x19.envoy.type.v3.HttpStatus\x12R\n\x17response_headers_to_add\x18\x0b \x03(\x0b\x32\'.envoy.config.core.v3.HeaderValueOptionB\x08\xfa\x42\x05\x92\x01\x02\x10\n\"<\n\x1bXRateLimitHeadersRFCVersion\x12\x07\n\x03OFF\x10\x00\x12\x14\n\x10\x44RAFT_VERSION_03\x10\x01:7\x9a\xc5\x88\x1e\x32\n0envoy.config.filter.http.rate_limit.v2.RateLimit\"\xf6\x0f\n\x0fRateLimitConfig\x12\x16\n\x05stage\x18\x01 \x01(\rB\x07\xfa\x42\x04*\x02\x18\n\x12\x13\n\x0b\x64isable_key\x18\x02 \x01(\t\x12]\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x42.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.ActionB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x12S\n\x05limit\x18\x04 \x01(\x0b\x32\x44.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Override\x1a\x8f\x0c\n\x06\x41\x63tion\x12j\n\x0esource_cluster\x18\x01 \x01(\x0b\x32P.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.SourceClusterH\x00\x12t\n\x13\x64\x65stination_cluster\x18\x02 \x01(\x0b\x32U.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.DestinationClusterH\x00\x12l\n\x0frequest_headers\x18\x03 \x01(\x0b\x32Q.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.RequestHeadersH\x00\x12j\n\x0eremote_address\x18\x04 \x01(\x0b\x32P.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.RemoteAddressH\x00\x12\x64\n\x0bgeneric_key\x18\x05 \x01(\x0b\x32M.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.GenericKeyH\x00\x12q\n\x12header_value_match\x18\x06 \x01(\x0b\x32S.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.HeaderValueMatchH\x00\x12_\n\x08metadata\x18\x08 \x01(\x0b\x32K.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.MetaDataH\x00\x12?\n\textension\x18\t \x01(\x0b\x32*.envoy.config.core.v3.TypedExtensionConfigH\x00\x1a\x0f\n\rSourceCluster\x1a\x14\n\x12\x44\x65stinationCluster\x1am\n\x0eRequestHeaders\x12\"\n\x0bheader_name\x18\x01 \x01(\tB\r\xfa\x42\nr\x08\x10\x01\xc0\x01\x01\xc8\x01\x00\x12\x1f\n\x0e\x64\x65scriptor_key\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x16\n\x0eskip_if_absent\x18\x03 \x01(\x08\x1a\x0f\n\rRemoteAddress\x1aG\n\nGenericKey\x12!\n\x10\x64\x65scriptor_value\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x16\n\x0e\x64\x65scriptor_key\x18\x02 \x01(\t\x1a\x8c\x01\n\x10HeaderValueMatch\x12!\n\x10\x64\x65scriptor_value\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x14\n\x0c\x65xpect_match\x18\x02 \x01(\x08\x12?\n\x07headers\x18\x03 \x03(\x0b\x32$.envoy.config.route.v3.HeaderMatcherB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x1a\xb5\x02\n\x08MetaData\x12\x1f\n\x0e\x64\x65scriptor_key\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x43\n\x0cmetadata_key\x18\x02 \x01(\x0b\x32#.envoy.type.metadata.v3.MetadataKeyB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x15\n\rdefault_value\x18\x03 \x01(\t\x12l\n\x06source\x18\x04 \x01(\x0e\x32R.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Action.MetaData.SourceB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x16\n\x0eskip_if_absent\x18\x05 \x01(\x08\"&\n\x06Source\x12\x0b\n\x07\x44YNAMIC\x10\x00\x12\x0f\n\x0bROUTE_ENTRY\x10\x01\x42\x17\n\x10\x61\x63tion_specifier\x12\x03\xf8\x42\x01\x1a\xef\x01\n\x08Override\x12p\n\x10\x64ynamic_metadata\x18\x01 \x01(\x0b\x32T.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig.Override.DynamicMetadataH\x00\x1aV\n\x0f\x44ynamicMetadata\x12\x43\n\x0cmetadata_key\x18\x01 \x01(\x0b\x32#.envoy.type.metadata.v3.MetadataKeyB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x42\x19\n\x12override_specifier\x12\x03\xf8\x42\x01\"\xf6\x03\n\x11RateLimitPerRoute\x12s\n\x0evh_rate_limits\x18\x01 \x01(\x0e\x32Q.envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute.VhRateLimitsOptionsB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12p\n\x0foverride_option\x18\x02 \x01(\x0e\x32M.envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute.OverrideOptionsB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12P\n\x0brate_limits\x18\x03 \x03(\x0b\x32;.envoy.extensions.filters.http.ratelimit.v3.RateLimitConfig\x12\x0e\n\x06\x64omain\x18\x04 \x01(\t\"<\n\x13VhRateLimitsOptions\x12\x0c\n\x08OVERRIDE\x10\x00\x12\x0b\n\x07INCLUDE\x10\x01\x12\n\n\x06IGNORE\x10\x02\"Z\n\x0fOverrideOptions\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x13\n\x0fOVERRIDE_POLICY\x10\x01\x12\x12\n\x0eINCLUDE_POLICY\x10\x02\x12\x11\n\rIGNORE_POLICY\x10\x03\x42\xb3\x01\n8io.envoyproxy.envoy.extensions.filters.http.ratelimit.v3B\x0eRateLimitProtoP\x01Z]github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/ratelimit/v3;ratelimitv3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'envoy.extensions.filters.http.ratelimit.v3.rate_limit_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
  _globals['DESCRIPTOR']._options = None
  _globals['DESCRIPTOR']._serialized_options = b'\n8io.envoyproxy.envoy.extensions.filters.http.ratelimit.v3B\016RateLimitProtoP\001Z]github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/ratelimit/v3;ratelimitv3\272\200\310\321\006\002\020\002'
  _globals['_RATELIMIT'].fields_by_name['domain']._options = None
  _globals['_RATELIMIT'].fields_by_name['domain']._serialized_options = b'\372B\004r\002\020\001'
  _globals['_RATELIMIT'].fields_by_name['stage']._options = None
  _globals['_RATELIMIT'].fields_by_name['stage']._serialized_options = b'\372B\004*\002\030\n'
  _globals['_RATELIMIT'].fields_by_name['request_type']._options = None
  _globals['_RATELIMIT'].fields_by_name['request_type']._serialized_options = b'\372B\036r\034R\010internalR\010externalR\004bothR\000'
  _globals['_RATELIMIT'].fields_by_name['rate_limit_service']._options = None
  _globals['_RATELIMIT'].fields_by_name['rate_limit_service']._serialized_options = b'\372B\005\212\001\002\020\001'
  _globals['_RATELIMIT'].fields_by_name['enable_x_ratelimit_headers']._options = None
  _globals['_RATELIMIT'].fields_by_name['enable_x_ratelimit_headers']._serialized_options = b'\372B\005\202\001\002\020\001'
  _globals['_RATELIMIT'].fields_by_name['response_headers_to_add']._options = None
  _globals['_RATELIMIT'].fields_by_name['response_headers_to_add']._serialized_options = b'\372B\005\222\001\002\020\n'
  _globals['_RATELIMIT']._options = None
  _globals['_RATELIMIT']._serialized_options = b'\232\305\210\0362\n0envoy.config.filter.http.rate_limit.v2.RateLimit'
  _globals['_RATELIMITCONFIG_ACTION_REQUESTHEADERS'].fields_by_name['header_name']._options = None
  _globals['_RATELIMITCONFIG_ACTION_REQUESTHEADERS'].fields_by_name['header_name']._serialized_options = b'\372B\nr\010\020\001\300\001\001\310\001\000'
  _globals['_RATELIMITCONFIG_ACTION_REQUESTHEADERS'].fields_by_name['descriptor_key']._options = None
  _globals['_RATELIMITCONFIG_ACTION_REQUESTHEADERS'].fields_by_name['descriptor_key']._serialized_options = b'\372B\004r\002\020\001'
  _globals['_RATELIMITCONFIG_ACTION_GENERICKEY'].fields_by_name['descriptor_value']._options = None
  _globals['_RATELIMITCONFIG_ACTION_GENERICKEY'].fields_by_name['descriptor_value']._serialized_options = b'\372B\004r\002\020\001'
  _globals['_RATELIMITCONFIG_ACTION_HEADERVALUEMATCH'].fields_by_name['descriptor_value']._options = None
  _globals['_RATELIMITCONFIG_ACTION_HEADERVALUEMATCH'].fields_by_name['descriptor_value']._serialized_options = b'\372B\004r\002\020\001'
  _globals['_RATELIMITCONFIG_ACTION_HEADERVALUEMATCH'].fields_by_name['headers']._options = None
  _globals['_RATELIMITCONFIG_ACTION_HEADERVALUEMATCH'].fields_by_name['headers']._serialized_options = b'\372B\005\222\001\002\010\001'
  _globals['_RATELIMITCONFIG_ACTION_METADATA'].fields_by_name['descriptor_key']._options = None
  _globals['_RATELIMITCONFIG_ACTION_METADATA'].fields_by_name['descriptor_key']._serialized_options = b'\372B\004r\002\020\001'
  _globals['_RATELIMITCONFIG_ACTION_METADATA'].fields_by_name['metadata_key']._options = None
  _globals['_RATELIMITCONFIG_ACTION_METADATA'].fields_by_name['metadata_key']._serialized_options = b'\372B\005\212\001\002\020\001'
  _globals['_RATELIMITCONFIG_ACTION_METADATA'].fields_by_name['source']._options = None
  _globals['_RATELIMITCONFIG_ACTION_METADATA'].fields_by_name['source']._serialized_options = b'\372B\005\202\001\002\020\001'
  _globals['_RATELIMITCONFIG_ACTION'].oneofs_by_name['action_specifier']._options = None
  _globals['_RATELIMITCONFIG_ACTION'].oneofs_by_name['action_specifier']._serialized_options = b'\370B\001'
  _globals['_RATELIMITCONFIG_OVERRIDE_DYNAMICMETADATA'].fields_by_name['metadata_key']._options = None
  _globals['_RATELIMITCONFIG_OVERRIDE_DYNAMICMETADATA'].fields_by_name['metadata_key']._serialized_options = b'\372B\005\212\001\002\020\001'
  _globals['_RATELIMITCONFIG_OVERRIDE'].oneofs_by_name['override_specifier']._options = None
  _globals['_RATELIMITCONFIG_OVERRIDE'].oneofs_by_name['override_specifier']._serialized_options = b'\370B\001'
  _globals['_RATELIMITCONFIG'].fields_by_name['stage']._options = None
  _globals['_RATELIMITCONFIG'].fields_by_name['stage']._serialized_options = b'\372B\004*\002\030\n'
  _globals['_RATELIMITCONFIG'].fields_by_name['actions']._options = None
  _globals['_RATELIMITCONFIG'].fields_by_name['actions']._serialized_options = b'\372B\005\222\001\002\010\001'
  _globals['_RATELIMITPERROUTE'].fields_by_name['vh_rate_limits']._options = None
  _globals['_RATELIMITPERROUTE'].fields_by_name['vh_rate_limits']._serialized_options = b'\372B\005\202\001\002\020\001'
  _globals['_RATELIMITPERROUTE'].fields_by_name['override_option']._options = None
  _globals['_RATELIMITPERROUTE'].fields_by_name['override_option']._serialized_options = b'\372B\005\202\001\002\020\001'
  _globals['_RATELIMIT']._serialized_start=457
  _globals['_RATELIMIT']._serialized_end=1210
  _globals['_RATELIMIT_XRATELIMITHEADERSRFCVERSION']._serialized_start=1093
  _globals['_RATELIMIT_XRATELIMITHEADERSRFCVERSION']._serialized_end=1153
  _globals['_RATELIMITCONFIG']._serialized_start=1213
  _globals['_RATELIMITCONFIG']._serialized_end=3251
  _globals['_RATELIMITCONFIG_ACTION']._serialized_start=1458
  _globals['_RATELIMITCONFIG_ACTION']._serialized_end=3009
  _globals['_RATELIMITCONFIG_ACTION_SOURCECLUSTER']._serialized_start=2291
  _globals['_RATELIMITCONFIG_ACTION_SOURCECLUSTER']._serialized_end=2306
  _globals['_RATELIMITCONFIG_ACTION_DESTINATIONCLUSTER']._serialized_start=2308
  _globals['_RATELIMITCONFIG_ACTION_DESTINATIONCLUSTER']._serialized_end=2328
  _globals['_RATELIMITCONFIG_ACTION_REQUESTHEADERS']._serialized_start=2330
  _globals['_RATELIMITCONFIG_ACTION_REQUESTHEADERS']._serialized_end=2439
  _globals['_RATELIMITCONFIG_ACTION_REMOTEADDRESS']._serialized_start=2441
  _globals['_RATELIMITCONFIG_ACTION_REMOTEADDRESS']._serialized_end=2456
  _globals['_RATELIMITCONFIG_ACTION_GENERICKEY']._serialized_start=2458
  _globals['_RATELIMITCONFIG_ACTION_GENERICKEY']._serialized_end=2529
  _globals['_RATELIMITCONFIG_ACTION_HEADERVALUEMATCH']._serialized_start=2532
  _globals['_RATELIMITCONFIG_ACTION_HEADERVALUEMATCH']._serialized_end=2672
  _globals['_RATELIMITCONFIG_ACTION_METADATA']._serialized_start=2675
  _globals['_RATELIMITCONFIG_ACTION_METADATA']._serialized_end=2984
  _globals['_RATELIMITCONFIG_ACTION_METADATA_SOURCE']._serialized_start=2946
  _globals['_RATELIMITCONFIG_ACTION_METADATA_SOURCE']._serialized_end=2984
  _globals['_RATELIMITCONFIG_OVERRIDE']._serialized_start=3012
  _globals['_RATELIMITCONFIG_OVERRIDE']._serialized_end=3251
  _globals['_RATELIMITCONFIG_OVERRIDE_DYNAMICMETADATA']._serialized_start=3138
  _globals['_RATELIMITCONFIG_OVERRIDE_DYNAMICMETADATA']._serialized_end=3224
  _globals['_RATELIMITPERROUTE']._serialized_start=3254
  _globals['_RATELIMITPERROUTE']._serialized_end=3756
  _globals['_RATELIMITPERROUTE_VHRATELIMITSOPTIONS']._serialized_start=3604
  _globals['_RATELIMITPERROUTE_VHRATELIMITSOPTIONS']._serialized_end=3664
  _globals['_RATELIMITPERROUTE_OVERRIDEOPTIONS']._serialized_start=3666
  _globals['_RATELIMITPERROUTE_OVERRIDEOPTIONS']._serialized_end=3756
# @@protoc_insertion_point(module_scope)
