// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.2
// source: envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto

package http_connection_managerv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v32 "github.com/cncf/xds/go/xds/type/matcher/v3"
	_ "github.com/envoyproxy/go-control-plane/envoy/annotations"
	v31 "github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	v33 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
	v36 "github.com/envoyproxy/go-control-plane/envoy/config/trace/v3"
	v37 "github.com/envoyproxy/go-control-plane/envoy/type/http/v3"
	v35 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3"
	v34 "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"
	anypb "google.golang.org/protobuf/types/known/anypb"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	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)
)

type HttpConnectionManager_CodecType int32

const (
	// For every new connection, the connection manager will determine which
	// codec to use. This mode supports both ALPN for TLS listeners as well as
	// protocol inference for plaintext listeners. If ALPN data is available, it
	// is preferred, otherwise protocol inference is used. In almost all cases,
	// this is the right option to choose for this setting.
	HttpConnectionManager_AUTO HttpConnectionManager_CodecType = 0
	// The connection manager will assume that the client is speaking HTTP/1.1.
	HttpConnectionManager_HTTP1 HttpConnectionManager_CodecType = 1
	// The connection manager will assume that the client is speaking HTTP/2
	// (Envoy does not require HTTP/2 to take place over TLS or to use ALPN.
	// Prior knowledge is allowed).
	HttpConnectionManager_HTTP2 HttpConnectionManager_CodecType = 2
	// The connection manager will assume that the client is speaking HTTP/3.
	// This needs to be consistent with listener and transport socket config.
	HttpConnectionManager_HTTP3 HttpConnectionManager_CodecType = 3
)

// Enum value maps for HttpConnectionManager_CodecType.
var (
	HttpConnectionManager_CodecType_name = map[int32]string{
		0: "AUTO",
		1: "HTTP1",
		2: "HTTP2",
		3: "HTTP3",
	}
	HttpConnectionManager_CodecType_value = map[string]int32{
		"AUTO":  0,
		"HTTP1": 1,
		"HTTP2": 2,
		"HTTP3": 3,
	}
)

func (x HttpConnectionManager_CodecType) Enum() *HttpConnectionManager_CodecType {
	p := new(HttpConnectionManager_CodecType)
	*p = x
	return p
}

func (x HttpConnectionManager_CodecType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HttpConnectionManager_CodecType) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[0].Descriptor()
}

func (HttpConnectionManager_CodecType) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[0]
}

func (x HttpConnectionManager_CodecType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HttpConnectionManager_CodecType.Descriptor instead.
func (HttpConnectionManager_CodecType) EnumDescriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 0}
}

type HttpConnectionManager_ServerHeaderTransformation int32

const (
	// Overwrite any Server header with the contents of server_name.
	HttpConnectionManager_OVERWRITE HttpConnectionManager_ServerHeaderTransformation = 0
	// If no Server header is present, append Server server_name
	// If a Server header is present, pass it through.
	HttpConnectionManager_APPEND_IF_ABSENT HttpConnectionManager_ServerHeaderTransformation = 1
	// Pass through the value of the server header, and do not append a header
	// if none is present.
	HttpConnectionManager_PASS_THROUGH HttpConnectionManager_ServerHeaderTransformation = 2
)

// Enum value maps for HttpConnectionManager_ServerHeaderTransformation.
var (
	HttpConnectionManager_ServerHeaderTransformation_name = map[int32]string{
		0: "OVERWRITE",
		1: "APPEND_IF_ABSENT",
		2: "PASS_THROUGH",
	}
	HttpConnectionManager_ServerHeaderTransformation_value = map[string]int32{
		"OVERWRITE":        0,
		"APPEND_IF_ABSENT": 1,
		"PASS_THROUGH":     2,
	}
)

func (x HttpConnectionManager_ServerHeaderTransformation) Enum() *HttpConnectionManager_ServerHeaderTransformation {
	p := new(HttpConnectionManager_ServerHeaderTransformation)
	*p = x
	return p
}

func (x HttpConnectionManager_ServerHeaderTransformation) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HttpConnectionManager_ServerHeaderTransformation) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[1].Descriptor()
}

func (HttpConnectionManager_ServerHeaderTransformation) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[1]
}

func (x HttpConnectionManager_ServerHeaderTransformation) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HttpConnectionManager_ServerHeaderTransformation.Descriptor instead.
func (HttpConnectionManager_ServerHeaderTransformation) EnumDescriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 1}
}

// How to handle the :ref:`config_http_conn_man_headers_x-forwarded-client-cert` (XFCC) HTTP
// header.
type HttpConnectionManager_ForwardClientCertDetails int32

const (
	// Do not send the XFCC header to the next hop. This is the default value.
	HttpConnectionManager_SANITIZE HttpConnectionManager_ForwardClientCertDetails = 0
	// When the client connection is mTLS (Mutual TLS), forward the XFCC header
	// in the request.
	HttpConnectionManager_FORWARD_ONLY HttpConnectionManager_ForwardClientCertDetails = 1
	// When the client connection is mTLS, append the client certificate
	// information to the request’s XFCC header and forward it.
	HttpConnectionManager_APPEND_FORWARD HttpConnectionManager_ForwardClientCertDetails = 2
	// When the client connection is mTLS, reset the XFCC header with the client
	// certificate information and send it to the next hop.
	HttpConnectionManager_SANITIZE_SET HttpConnectionManager_ForwardClientCertDetails = 3
	// Always forward the XFCC header in the request, regardless of whether the
	// client connection is mTLS.
	HttpConnectionManager_ALWAYS_FORWARD_ONLY HttpConnectionManager_ForwardClientCertDetails = 4
)

// Enum value maps for HttpConnectionManager_ForwardClientCertDetails.
var (
	HttpConnectionManager_ForwardClientCertDetails_name = map[int32]string{
		0: "SANITIZE",
		1: "FORWARD_ONLY",
		2: "APPEND_FORWARD",
		3: "SANITIZE_SET",
		4: "ALWAYS_FORWARD_ONLY",
	}
	HttpConnectionManager_ForwardClientCertDetails_value = map[string]int32{
		"SANITIZE":            0,
		"FORWARD_ONLY":        1,
		"APPEND_FORWARD":      2,
		"SANITIZE_SET":        3,
		"ALWAYS_FORWARD_ONLY": 4,
	}
)

func (x HttpConnectionManager_ForwardClientCertDetails) Enum() *HttpConnectionManager_ForwardClientCertDetails {
	p := new(HttpConnectionManager_ForwardClientCertDetails)
	*p = x
	return p
}

func (x HttpConnectionManager_ForwardClientCertDetails) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HttpConnectionManager_ForwardClientCertDetails) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[2].Descriptor()
}

func (HttpConnectionManager_ForwardClientCertDetails) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[2]
}

func (x HttpConnectionManager_ForwardClientCertDetails) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HttpConnectionManager_ForwardClientCertDetails.Descriptor instead.
func (HttpConnectionManager_ForwardClientCertDetails) EnumDescriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 2}
}

// Determines the action for request that contain “%2F“, “%2f“, “%5C“ or “%5c“ sequences in the URI path.
// This operation occurs before URL normalization and the merge slashes transformations if they were enabled.
type HttpConnectionManager_PathWithEscapedSlashesAction int32

const (
	// Default behavior specific to implementation (i.e. Envoy) of this configuration option.
	// Envoy, by default, takes the KEEP_UNCHANGED action.
	//
	// .. note::
	//
	//	The implementation may change the default behavior at-will.
	HttpConnectionManager_IMPLEMENTATION_SPECIFIC_DEFAULT HttpConnectionManager_PathWithEscapedSlashesAction = 0
	// Keep escaped slashes.
	HttpConnectionManager_KEEP_UNCHANGED HttpConnectionManager_PathWithEscapedSlashesAction = 1
	// Reject client request with the 400 status. gRPC requests will be rejected with the INTERNAL (13) error code.
	// The “httpN.downstream_rq_failed_path_normalization“ counter is incremented for each rejected request.
	HttpConnectionManager_REJECT_REQUEST HttpConnectionManager_PathWithEscapedSlashesAction = 2
	// Unescape “%2F“ and “%5C“ sequences and redirect request to the new path if these sequences were present.
	// Redirect occurs after path normalization and merge slashes transformations if they were configured.
	//
	// .. note::
	//
	//	gRPC requests will be rejected with the INTERNAL (13) error code. This option minimizes possibility of path
	//	confusion exploits by forcing request with unescaped slashes to traverse all parties: downstream client,
	//	intermediate proxies, Envoy and upstream server. The ``httpN.downstream_rq_redirected_with_normalized_path``
	//	counter is incremented for each redirected request.
	HttpConnectionManager_UNESCAPE_AND_REDIRECT HttpConnectionManager_PathWithEscapedSlashesAction = 3
	// Unescape “%2F“ and “%5C“ sequences.
	//
	// .. note::
	//
	//	This option should not be enabled if intermediaries perform path based access control as it may lead to path
	//	confusion vulnerabilities.
	HttpConnectionManager_UNESCAPE_AND_FORWARD HttpConnectionManager_PathWithEscapedSlashesAction = 4
)

// Enum value maps for HttpConnectionManager_PathWithEscapedSlashesAction.
var (
	HttpConnectionManager_PathWithEscapedSlashesAction_name = map[int32]string{
		0: "IMPLEMENTATION_SPECIFIC_DEFAULT",
		1: "KEEP_UNCHANGED",
		2: "REJECT_REQUEST",
		3: "UNESCAPE_AND_REDIRECT",
		4: "UNESCAPE_AND_FORWARD",
	}
	HttpConnectionManager_PathWithEscapedSlashesAction_value = map[string]int32{
		"IMPLEMENTATION_SPECIFIC_DEFAULT": 0,
		"KEEP_UNCHANGED":                  1,
		"REJECT_REQUEST":                  2,
		"UNESCAPE_AND_REDIRECT":           3,
		"UNESCAPE_AND_FORWARD":            4,
	}
)

func (x HttpConnectionManager_PathWithEscapedSlashesAction) Enum() *HttpConnectionManager_PathWithEscapedSlashesAction {
	p := new(HttpConnectionManager_PathWithEscapedSlashesAction)
	*p = x
	return p
}

func (x HttpConnectionManager_PathWithEscapedSlashesAction) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HttpConnectionManager_PathWithEscapedSlashesAction) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[3].Descriptor()
}

func (HttpConnectionManager_PathWithEscapedSlashesAction) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[3]
}

func (x HttpConnectionManager_PathWithEscapedSlashesAction) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HttpConnectionManager_PathWithEscapedSlashesAction.Descriptor instead.
func (HttpConnectionManager_PathWithEscapedSlashesAction) EnumDescriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 3}
}

// This OperationName makes no sense and is unnecessary in the current tracing API.
// [#not-implemented-hide:]
type HttpConnectionManager_Tracing_OperationName int32

const (
	// The HTTP listener is used for ingress/incoming requests.
	HttpConnectionManager_Tracing_INGRESS HttpConnectionManager_Tracing_OperationName = 0
	// The HTTP listener is used for egress/outgoing requests.
	HttpConnectionManager_Tracing_EGRESS HttpConnectionManager_Tracing_OperationName = 1
)

// Enum value maps for HttpConnectionManager_Tracing_OperationName.
var (
	HttpConnectionManager_Tracing_OperationName_name = map[int32]string{
		0: "INGRESS",
		1: "EGRESS",
	}
	HttpConnectionManager_Tracing_OperationName_value = map[string]int32{
		"INGRESS": 0,
		"EGRESS":  1,
	}
)

func (x HttpConnectionManager_Tracing_OperationName) Enum() *HttpConnectionManager_Tracing_OperationName {
	p := new(HttpConnectionManager_Tracing_OperationName)
	*p = x
	return p
}

func (x HttpConnectionManager_Tracing_OperationName) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HttpConnectionManager_Tracing_OperationName) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[4].Descriptor()
}

func (HttpConnectionManager_Tracing_OperationName) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes[4]
}

func (x HttpConnectionManager_Tracing_OperationName) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HttpConnectionManager_Tracing_OperationName.Descriptor instead.
func (HttpConnectionManager_Tracing_OperationName) EnumDescriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 0, 0}
}

// [#next-free-field: 61]
type HttpConnectionManager struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Supplies the type of codec that the connection manager should use.
	CodecType HttpConnectionManager_CodecType `protobuf:"varint,1,opt,name=codec_type,json=codecType,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_CodecType" json:"codec_type,omitempty"`
	// The human readable prefix to use when emitting statistics for the
	// connection manager. See the :ref:`statistics documentation <config_http_conn_man_stats>` for
	// more information.
	StatPrefix string `protobuf:"bytes,2,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
	// Types that are valid to be assigned to RouteSpecifier:
	//
	//	*HttpConnectionManager_Rds
	//	*HttpConnectionManager_RouteConfig
	//	*HttpConnectionManager_ScopedRoutes
	RouteSpecifier isHttpConnectionManager_RouteSpecifier `protobuf_oneof:"route_specifier"`
	// A list of individual HTTP filters that make up the filter chain for
	// requests made to the connection manager. :ref:`Order matters <arch_overview_http_filters_ordering>`
	// as the filters are processed sequentially as request events happen.
	HttpFilters []*HttpFilter `protobuf:"bytes,5,rep,name=http_filters,json=httpFilters,proto3" json:"http_filters,omitempty"`
	// Whether the connection manager manipulates the :ref:`config_http_conn_man_headers_user-agent`
	// and :ref:`config_http_conn_man_headers_downstream-service-cluster` headers. See the linked
	// documentation for more information. Defaults to false.
	AddUserAgent *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=add_user_agent,json=addUserAgent,proto3" json:"add_user_agent,omitempty"`
	// Presence of the object defines whether the connection manager
	// emits :ref:`tracing <arch_overview_tracing>` data to the :ref:`configured tracing provider
	// <envoy_v3_api_msg_config.trace.v3.Tracing>`.
	Tracing *HttpConnectionManager_Tracing `protobuf:"bytes,7,opt,name=tracing,proto3" json:"tracing,omitempty"`
	// Additional settings for HTTP requests handled by the connection manager. These will be
	// applicable to both HTTP/1.1 and HTTP/2 requests.
	CommonHttpProtocolOptions *v3.HttpProtocolOptions `protobuf:"bytes,35,opt,name=common_http_protocol_options,json=commonHttpProtocolOptions,proto3" json:"common_http_protocol_options,omitempty"`
	// If set to “true“, Envoy will not initiate an immediate drain timer for downstream HTTP/1 connections
	// once :ref:`common_http_protocol_options.max_connection_duration
	// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_connection_duration>` is exceeded.
	// Instead, Envoy will wait until the next downstream request arrives, add a “connection: close“ header
	// to the response, and then gracefully close the connection once the stream has completed.
	//
	// This behavior adheres to `RFC 9112, Section 9.6 <https://www.rfc-editor.org/rfc/rfc9112#name-tear-down>`_.
	//
	// If set to “false“, exceeding “max_connection_duration“ triggers Envoy's default drain behavior for HTTP/1,
	// where the connection is eventually closed after all active streams finish.
	//
	// This option has no effect if “max_connection_duration“ is not configured.
	// Defaults to “false“.
	Http1SafeMaxConnectionDuration bool `protobuf:"varint,58,opt,name=http1_safe_max_connection_duration,json=http1SafeMaxConnectionDuration,proto3" json:"http1_safe_max_connection_duration,omitempty"`
	// Additional HTTP/1 settings that are passed to the HTTP/1 codec.
	// [#comment:TODO: The following fields are ignored when the
	// :ref:`header validation configuration <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.typed_header_validation_config>`
	// is present:
	// 1. :ref:`allow_chunked_length <envoy_v3_api_field_config.core.v3.Http1ProtocolOptions.allow_chunked_length>`]
	HttpProtocolOptions *v3.Http1ProtocolOptions `protobuf:"bytes,8,opt,name=http_protocol_options,json=httpProtocolOptions,proto3" json:"http_protocol_options,omitempty"`
	// Additional HTTP/2 settings that are passed directly to the HTTP/2 codec.
	Http2ProtocolOptions *v3.Http2ProtocolOptions `protobuf:"bytes,9,opt,name=http2_protocol_options,json=http2ProtocolOptions,proto3" json:"http2_protocol_options,omitempty"`
	// Additional HTTP/3 settings that are passed directly to the HTTP/3 codec.
	Http3ProtocolOptions *v3.Http3ProtocolOptions `protobuf:"bytes,44,opt,name=http3_protocol_options,json=http3ProtocolOptions,proto3" json:"http3_protocol_options,omitempty"`
	// An optional override that the connection manager will write to the server
	// header in responses. If not set, the default is “envoy“.
	ServerName string `protobuf:"bytes,10,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
	// Defines the action to be applied to the Server header on the response path.
	// By default, Envoy will overwrite the header with the value specified in
	// server_name.
	ServerHeaderTransformation HttpConnectionManager_ServerHeaderTransformation `protobuf:"varint,34,opt,name=server_header_transformation,json=serverHeaderTransformation,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_ServerHeaderTransformation" json:"server_header_transformation,omitempty"`
	// Allows for explicit transformation of the :scheme header on the request path.
	// If not set, Envoy's default :ref:`scheme  <config_http_conn_man_headers_scheme>`
	// handling applies.
	SchemeHeaderTransformation *v3.SchemeHeaderTransformation `protobuf:"bytes,48,opt,name=scheme_header_transformation,json=schemeHeaderTransformation,proto3" json:"scheme_header_transformation,omitempty"`
	// The maximum request headers size for incoming connections.
	// If unconfigured, the default max request headers allowed is 60 KiB.
	// The default value can be overridden by setting runtime key “envoy.reloadable_features.max_request_headers_size_kb“.
	// Requests that exceed this limit will receive a 431 response.
	//
	// .. note::
	//
	//	Currently some protocol codecs impose limits on the maximum size of a single header.
	//
	//	* HTTP/2 (when using nghttp2) limits a single header to around 100kb.
	//	* HTTP/3 limits a single header to around 1024kb.
	MaxRequestHeadersKb *wrapperspb.UInt32Value `protobuf:"bytes,29,opt,name=max_request_headers_kb,json=maxRequestHeadersKb,proto3" json:"max_request_headers_kb,omitempty"`
	// The stream idle timeout for connections managed by the connection manager.
	// If not specified, this defaults to 5 minutes. The default value was selected
	// so as not to interfere with any smaller configured timeouts that may have
	// existed in configurations prior to the introduction of this feature, while
	// introducing robustness to TCP connections that terminate without a FIN.
	//
	// This idle timeout applies to new streams and is overridable by the
	// :ref:`route-level idle_timeout
	// <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>`. Even on a stream in
	// which the override applies, prior to receipt of the initial request
	// headers, the :ref:`stream_idle_timeout
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
	// applies. Each time an encode/decode event for headers or data is processed
	// for the stream, the timer will be reset. If the timeout fires, the stream
	// is terminated with a 408 Request Timeout error code if no upstream response
	// header has been received, otherwise a stream reset occurs.
	//
	// If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
	// is configured, this timeout is scaled according to the value for
	// :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
	//
	// Note that it is possible to idle timeout even if the wire traffic for a stream is non-idle, due
	// to the granularity of events presented to the connection manager. For example, while receiving
	// very large request headers, it may be the case that there is traffic regularly arriving on the
	// wire while the connection manage is only able to observe the end-of-headers event, hence the
	// stream may still idle timeout.
	//
	// A value of 0 will completely disable the connection manager stream idle
	// timeout, although per-route idle timeout overrides will continue to apply.
	//
	// This timeout is also used as the default value for :ref:`stream_flush_timeout
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_flush_timeout>`.
	StreamIdleTimeout *durationpb.Duration `protobuf:"bytes,24,opt,name=stream_idle_timeout,json=streamIdleTimeout,proto3" json:"stream_idle_timeout,omitempty"`
	// The stream flush timeout for connections managed by the connection manager.
	//
	// If not specified, the value of stream_idle_timeout is used. This is for backwards compatibility
	// since this was the original behavior. In essence this timeout is an override for the
	// stream_idle_timeout that applies specifically to the end of stream flush case.
	//
	// This timeout specifies the amount of time that Envoy will wait for the peer to open enough
	// window to write any remaining stream data once the entirety of stream data (local end stream is
	// true) has been buffered pending available window. In other words, this timeout defends against
	// a peer that does not release enough window to completely write the stream, even though all
	// data has been proxied within available flow control windows. If the timeout is hit in this
	// case, the :ref:`tx_flush_timeout <config_http_conn_man_stats_per_codec>` counter will be
	// incremented. Note that :ref:`max_stream_duration
	// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` does not apply to
	// this corner case.
	StreamFlushTimeout *durationpb.Duration `protobuf:"bytes,59,opt,name=stream_flush_timeout,json=streamFlushTimeout,proto3" json:"stream_flush_timeout,omitempty"`
	// The amount of time that Envoy will wait for the entire request to be received.
	// The timer is activated when the request is initiated, and is disarmed when the last byte of the
	// request is sent upstream (i.e. all decoding filters have processed the request), OR when the
	// response is initiated. If not specified or set to 0, this timeout is disabled.
	RequestTimeout *durationpb.Duration `protobuf:"bytes,28,opt,name=request_timeout,json=requestTimeout,proto3" json:"request_timeout,omitempty"`
	// The amount of time that Envoy will wait for the request headers to be received. The timer is
	// activated when the first byte of the headers is received, and is disarmed when the last byte of
	// the headers has been received. If not specified or set to 0, this timeout is disabled.
	RequestHeadersTimeout *durationpb.Duration `protobuf:"bytes,41,opt,name=request_headers_timeout,json=requestHeadersTimeout,proto3" json:"request_headers_timeout,omitempty"`
	// The time that Envoy will wait between sending an HTTP/2 “shutdown
	// notification” (GOAWAY frame with max stream ID) and a final GOAWAY frame.
	// This is used so that Envoy provides a grace period for new streams that
	// race with the final GOAWAY frame. During this grace period, Envoy will
	// continue to accept new streams. After the grace period, a final GOAWAY
	// frame is sent and Envoy will start refusing new streams. Draining occurs
	// either when a connection hits the idle timeout, when :ref:`max_connection_duration
	// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_connection_duration>`
	// is reached, or during general server draining. The default grace period is
	// 5000 milliseconds (5 seconds) if this option is not specified.
	DrainTimeout *durationpb.Duration `protobuf:"bytes,12,opt,name=drain_timeout,json=drainTimeout,proto3" json:"drain_timeout,omitempty"`
	// The delayed close timeout is for downstream connections managed by the HTTP connection manager.
	// It is defined as a grace period after connection close processing has been locally initiated
	// during which Envoy will wait for the peer to close (i.e., a TCP FIN/RST is received by Envoy
	// from the downstream connection) prior to Envoy closing the socket associated with that
	// connection.
	//
	// .. note::
	//
	//	This timeout is enforced even when the socket associated with the downstream connection is pending a flush of
	//	the write buffer. However, any progress made writing data to the socket will restart the timer associated with
	//	this timeout. This means that the total grace period for a socket in this state will be
	//	<total_time_waiting_for_write_buffer_flushes>+<delayed_close_timeout>.
	//
	// Delaying Envoy's connection close and giving the peer the opportunity to initiate the close
	// sequence mitigates a race condition that exists when downstream clients do not drain/process
	// data in a connection's receive buffer after a remote close has been detected via a socket
	// “write()“. This race leads to such clients failing to process the response code sent by Envoy,
	// which could result in erroneous downstream processing.
	//
	// If the timeout triggers, Envoy will close the connection's socket.
	//
	// The default timeout is 1000 ms if this option is not specified.
	//
	// .. note::
	//
	//	To be useful in avoiding the race condition described above, this timeout must be set
	//	to *at least* <max round trip time expected between clients and Envoy>+<100ms to account for
	//	a reasonable "worst" case processing time for a full iteration of Envoy's event loop>.
	//
	// .. warning::
	//
	//	A value of ``0`` will completely disable delayed close processing. When disabled, the downstream
	//	connection's socket will be closed immediately after the write flush is completed or will
	//	never close if the write flush does not complete.
	DelayedCloseTimeout *durationpb.Duration `protobuf:"bytes,26,opt,name=delayed_close_timeout,json=delayedCloseTimeout,proto3" json:"delayed_close_timeout,omitempty"`
	// Configuration for :ref:`HTTP access logs <arch_overview_access_logs>`
	// emitted by the connection manager.
	AccessLog []*v31.AccessLog `protobuf:"bytes,13,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"`
	// The interval to flush the above access logs.
	//
	// .. attention::
	//
	//	This field is deprecated in favor of
	//	:ref:`access_log_flush_interval
	//	<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions.access_log_flush_interval>`.
	//	Note that if both this field and :ref:`access_log_flush_interval
	//	<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions.access_log_flush_interval>`
	//	are specified, the former (deprecated field) is ignored.
	//
	// Deprecated: Marked as deprecated in envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto.
	AccessLogFlushInterval *durationpb.Duration `protobuf:"bytes,54,opt,name=access_log_flush_interval,json=accessLogFlushInterval,proto3" json:"access_log_flush_interval,omitempty"`
	// If set to true, HCM will flush an access log once when a new HTTP request is received, after the request
	// headers have been evaluated, and before iterating through the HTTP filter chain.
	//
	// .. attention::
	//
	//	This field is deprecated in favor of
	//	:ref:`flush_access_log_on_new_request
	//	<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions.flush_access_log_on_new_request>`.
	//	Note that if both this field and :ref:`flush_access_log_on_new_request
	//	<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions.flush_access_log_on_new_request>`
	//	are specified, the former (deprecated field) is ignored.
	//
	// Deprecated: Marked as deprecated in envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto.
	FlushAccessLogOnNewRequest bool `protobuf:"varint,55,opt,name=flush_access_log_on_new_request,json=flushAccessLogOnNewRequest,proto3" json:"flush_access_log_on_new_request,omitempty"`
	// Additional access log options for HTTP connection manager.
	AccessLogOptions *HttpConnectionManager_HcmAccessLogOptions `protobuf:"bytes,56,opt,name=access_log_options,json=accessLogOptions,proto3" json:"access_log_options,omitempty"`
	// If set to true, the connection manager will use the real remote address
	// of the client connection when determining internal versus external origin and manipulating
	// various headers. If set to false or absent, the connection manager will use the
	// :ref:`config_http_conn_man_headers_x-forwarded-for` HTTP header. See the documentation for
	// :ref:`config_http_conn_man_headers_x-forwarded-for`,
	// :ref:`config_http_conn_man_headers_x-envoy-internal`, and
	// :ref:`config_http_conn_man_headers_x-envoy-external-address` for more information.
	UseRemoteAddress *wrapperspb.BoolValue `protobuf:"bytes,14,opt,name=use_remote_address,json=useRemoteAddress,proto3" json:"use_remote_address,omitempty"`
	// The number of additional ingress proxy hops from the right side of the
	// :ref:`config_http_conn_man_headers_x-forwarded-for` HTTP header to trust when
	// determining the origin client's IP address. The default is zero if this option
	// is not specified. See the documentation for
	// :ref:`config_http_conn_man_headers_x-forwarded-for` for more information.
	XffNumTrustedHops uint32 `protobuf:"varint,19,opt,name=xff_num_trusted_hops,json=xffNumTrustedHops,proto3" json:"xff_num_trusted_hops,omitempty"`
	// Configuration for original IP detection extensions.
	//
	// When these extensions are configured, Envoy will invoke them with the incoming request headers and
	// details about the downstream connection, including the directly connected address. Each extension uses
	// this information to determine the effective remote IP address for the request. If an extension cannot
	// identify the original IP address and isn't set to reject the request, Envoy will sequentially attempt
	// the remaining extensions until one successfully determines the IP or explicitly rejects the request.
	// If all extensions fail without rejection, Envoy defaults to using the directly connected remote address.
	//
	// .. warning::
	//
	//	These extensions cannot be configured simultaneously with :ref:`use_remote_address
	//	<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
	//	or :ref:`xff_num_trusted_hops
	//	<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.xff_num_trusted_hops>`.
	//
	// [#extension-category: envoy.http.original_ip_detection]
	OriginalIpDetectionExtensions []*v3.TypedExtensionConfig `protobuf:"bytes,46,rep,name=original_ip_detection_extensions,json=originalIpDetectionExtensions,proto3" json:"original_ip_detection_extensions,omitempty"`
	// The configuration for the early header mutation extensions.
	//
	// When configured the extensions will be called before any routing, tracing, or any filter processing.
	// Each extension will be applied in the order they are configured.
	// If the same header is mutated by multiple extensions, then the last extension will win.
	//
	// [#extension-category: envoy.http.early_header_mutation]
	EarlyHeaderMutationExtensions []*v3.TypedExtensionConfig `protobuf:"bytes,52,rep,name=early_header_mutation_extensions,json=earlyHeaderMutationExtensions,proto3" json:"early_header_mutation_extensions,omitempty"`
	// Configures what network addresses are considered internal for stats and header sanitation
	// purposes. If unspecified, only RFC1918 IP addresses will be considered internal.
	// See the documentation for :ref:`config_http_conn_man_headers_x-envoy-internal` for more
	// information about internal/external addresses.
	//
	// .. warning::
	//
	//	As of Envoy 1.33.0 no IP addresses will be considered trusted. If you have tooling such as probes
	//	on your private network which need to be treated as trusted (e.g. changing arbitrary x-envoy headers)
	//	you will have to manually include those addresses or CIDR ranges like:
	//
	// .. validated-code-block:: yaml
	//
	//	:type-name: envoy.extensions.filters.network.http_connection_manager.v3.InternalAddressConfig
	//
	//	cidr_ranges:
	//	    address_prefix: 10.0.0.0
	//	    prefix_len: 8
	//	cidr_ranges:
	//	    address_prefix: 192.168.0.0
	//	    prefix_len: 16
	//	cidr_ranges:
	//	    address_prefix: 172.16.0.0
	//	    prefix_len: 12
	//	cidr_ranges:
	//	    address_prefix: 127.0.0.1
	//	    prefix_len: 32
	//	cidr_ranges:
	//	    address_prefix: fd00::
	//	    prefix_len: 8
	//	cidr_ranges:
	//	    address_prefix: ::1
	//	    prefix_len: 128
	InternalAddressConfig *HttpConnectionManager_InternalAddressConfig `protobuf:"bytes,25,opt,name=internal_address_config,json=internalAddressConfig,proto3" json:"internal_address_config,omitempty"`
	// If set, Envoy will not append the remote address to the
	// :ref:`config_http_conn_man_headers_x-forwarded-for` HTTP header. This may be used in
	// conjunction with HTTP filters that explicitly manipulate XFF after the HTTP connection manager
	// has mutated the request headers. While :ref:`use_remote_address
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
	// will also suppress XFF addition, it has consequences for logging and other
	// Envoy uses of the remote address, so “skip_xff_append“ should be used
	// when only an elision of XFF addition is intended.
	SkipXffAppend bool `protobuf:"varint,21,opt,name=skip_xff_append,json=skipXffAppend,proto3" json:"skip_xff_append,omitempty"`
	// Via header value to append to request and response headers. If this is
	// empty, no via header will be appended.
	Via string `protobuf:"bytes,22,opt,name=via,proto3" json:"via,omitempty"`
	// Whether the connection manager will generate the :ref:`x-request-id
	// <config_http_conn_man_headers_x-request-id>` header if it does not exist. This defaults to
	// true. Generating a random UUID4 is expensive so in high throughput scenarios where this feature
	// is not desired it can be disabled.
	GenerateRequestId *wrapperspb.BoolValue `protobuf:"bytes,15,opt,name=generate_request_id,json=generateRequestId,proto3" json:"generate_request_id,omitempty"`
	// Whether the connection manager will keep the :ref:`x-request-id
	// <config_http_conn_man_headers_x-request-id>` header if passed for a request that is edge
	// (Edge request is the request from external clients to front Envoy) and not reset it, which
	// is the current Envoy behaviour. This defaults to false.
	PreserveExternalRequestId bool `protobuf:"varint,32,opt,name=preserve_external_request_id,json=preserveExternalRequestId,proto3" json:"preserve_external_request_id,omitempty"`
	// If set, Envoy will always set :ref:`x-request-id <config_http_conn_man_headers_x-request-id>` header in response.
	// If this is false or not set, the request ID is returned in responses only if tracing is forced using
	// :ref:`x-envoy-force-trace <config_http_conn_man_headers_x-envoy-force-trace>` header.
	AlwaysSetRequestIdInResponse bool `protobuf:"varint,37,opt,name=always_set_request_id_in_response,json=alwaysSetRequestIdInResponse,proto3" json:"always_set_request_id_in_response,omitempty"`
	// How to handle the :ref:`config_http_conn_man_headers_x-forwarded-client-cert` (XFCC) HTTP
	// header.
	ForwardClientCertDetails HttpConnectionManager_ForwardClientCertDetails `protobuf:"varint,16,opt,name=forward_client_cert_details,json=forwardClientCertDetails,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_ForwardClientCertDetails" json:"forward_client_cert_details,omitempty"`
	// This field is valid only when :ref:`forward_client_cert_details
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.forward_client_cert_details>`
	// is APPEND_FORWARD or SANITIZE_SET and the client connection is mTLS. It specifies the fields in
	// the client certificate to be forwarded. Note that in the
	// :ref:`config_http_conn_man_headers_x-forwarded-client-cert` header, “Hash“ is always set, and
	// “By“ is always set when the client certificate presents the URI type Subject Alternative Name
	// value.
	SetCurrentClientCertDetails *HttpConnectionManager_SetCurrentClientCertDetails `protobuf:"bytes,17,opt,name=set_current_client_cert_details,json=setCurrentClientCertDetails,proto3" json:"set_current_client_cert_details,omitempty"`
	// The matcher for forwarding client cert details. This allows per-request configuration
	// of forward client cert behavior based on request properties. If a matcher is configured
	// and matches a request, the matched action's forward client cert config will be used.
	// If the matcher is not configured or doesn't match, the static
	// :ref:`forward_client_cert_details
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.forward_client_cert_details>`
	// and
	// :ref:`set_current_client_cert_details
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.set_current_client_cert_details>`
	// config will be used as fallback.
	//
	// Example: If the x-forwarded-client-cert header contains "trusted-client", use APPEND_FORWARD,
	// otherwise use SANITIZE_SET:
	//
	// .. code-block:: yaml
	//
	//	forward_client_cert_matcher:
	//	  matcher_list:
	//	    matchers:
	//	    - predicate:
	//	        single_predicate:
	//	          input:
	//	            name: envoy.matching.inputs.request_headers
	//	            typed_config:
	//	              "@type": type.googleapis.com/envoy.type.matcher.v3.HttpRequestHeaderMatchInput
	//	              header_name: "x-forwarded-client-cert"
	//	          value_match:
	//	            string_match:
	//	              contains: "trusted-client"
	//	      on_match:
	//	        action:
	//	          name: forward_client_cert
	//	          typed_config:
	//	            "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertConfig
	//	            forward_client_cert_details: APPEND_FORWARD
	//	            set_current_client_cert_details:
	//	              uri: true
	//	  on_no_match:
	//	    action:
	//	      name: forward_client_cert
	//	      typed_config:
	//	        "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertConfig
	//	        forward_client_cert_details: SANITIZE_SET
	//	        set_current_client_cert_details:
	//	          uri: true
	ForwardClientCertMatcher *v32.Matcher `protobuf:"bytes,60,opt,name=forward_client_cert_matcher,json=forwardClientCertMatcher,proto3" json:"forward_client_cert_matcher,omitempty"`
	// If proxy_100_continue is true, Envoy will proxy incoming "Expect:
	// 100-continue" headers upstream, and forward "100 Continue" responses
	// downstream. If this is false or not set, Envoy will instead strip the
	// "Expect: 100-continue" header, and send a "100 Continue" response itself.
	Proxy_100Continue bool `protobuf:"varint,18,opt,name=proxy_100_continue,json=proxy100Continue,proto3" json:"proxy_100_continue,omitempty"`
	// If
	// :ref:`use_remote_address
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
	// is true and represent_ipv4_remote_address_as_ipv4_mapped_ipv6 is true and the remote address is
	// an IPv4 address, the address will be mapped to IPv6 before it is appended to “x-forwarded-for“.
	// This is useful for testing compatibility of upstream services that parse the header value. For
	// example, 50.0.0.1 is represented as ::FFFF:50.0.0.1. See `IPv4-Mapped IPv6 Addresses
	// <https://tools.ietf.org/html/rfc4291#section-2.5.5.2>`_ for details. This will also affect the
	// :ref:`config_http_conn_man_headers_x-envoy-external-address` header. See
	// :ref:`http_connection_manager.represent_ipv4_remote_address_as_ipv4_mapped_ipv6
	// <config_http_conn_man_runtime_represent_ipv4_remote_address_as_ipv4_mapped_ipv6>` for runtime
	// control.
	// [#not-implemented-hide:]
	RepresentIpv4RemoteAddressAsIpv4MappedIpv6 bool                                   `protobuf:"varint,20,opt,name=represent_ipv4_remote_address_as_ipv4_mapped_ipv6,json=representIpv4RemoteAddressAsIpv4MappedIpv6,proto3" json:"represent_ipv4_remote_address_as_ipv4_mapped_ipv6,omitempty"`
	UpgradeConfigs                             []*HttpConnectionManager_UpgradeConfig `protobuf:"bytes,23,rep,name=upgrade_configs,json=upgradeConfigs,proto3" json:"upgrade_configs,omitempty"`
	// Should paths be normalized according to RFC 3986 before any processing of
	// requests by HTTP filters or routing? This affects the upstream “:path“ header
	// as well. For paths that fail this check, Envoy will respond with 400 to
	// paths that are malformed. This defaults to false currently but will default
	// true in the future. When not specified, this value may be overridden by the
	// runtime variable
	// :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`.
	// See `Normalization and Comparison <https://tools.ietf.org/html/rfc3986#section-6>`_
	// for details of normalization.
	// Note that Envoy does not perform
	// `case normalization <https://tools.ietf.org/html/rfc3986#section-6.2.2.1>`_
	// [#comment:TODO: This field is ignored when the
	// :ref:`header validation configuration <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.typed_header_validation_config>`
	// is present.]
	NormalizePath *wrapperspb.BoolValue `protobuf:"bytes,30,opt,name=normalize_path,json=normalizePath,proto3" json:"normalize_path,omitempty"`
	// Determines if adjacent slashes in the path are merged into one before any processing of
	// requests by HTTP filters or routing. This affects the upstream “:path“ header as well. Without
	// setting this option, incoming requests with path “//dir///file“ will not match against route
	// with “prefix“ match set to “/dir“. Defaults to “false“. Note that slash merging is not part of
	// `HTTP spec <https://tools.ietf.org/html/rfc3986>`_ and is provided for convenience.
	// [#comment:TODO: This field is ignored when the
	// :ref:`header validation configuration <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.typed_header_validation_config>`
	// is present.]
	MergeSlashes bool `protobuf:"varint,33,opt,name=merge_slashes,json=mergeSlashes,proto3" json:"merge_slashes,omitempty"`
	// Action to take when request URL path contains escaped slash sequences (%2F, %2f, %5C and %5c).
	// The default value can be overridden by the :ref:`http_connection_manager.path_with_escaped_slashes_action<config_http_conn_man_runtime_path_with_escaped_slashes_action>`
	// runtime variable.
	// The :ref:`http_connection_manager.path_with_escaped_slashes_action_sampling<config_http_conn_man_runtime_path_with_escaped_slashes_action_enabled>` runtime
	// variable can be used to apply the action to a portion of all requests.
	// [#comment:TODO: This field is ignored when the
	// :ref:`header validation configuration <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.typed_header_validation_config>`
	// is present.]
	PathWithEscapedSlashesAction HttpConnectionManager_PathWithEscapedSlashesAction `protobuf:"varint,45,opt,name=path_with_escaped_slashes_action,json=pathWithEscapedSlashesAction,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_PathWithEscapedSlashesAction" json:"path_with_escaped_slashes_action,omitempty"`
	// The configuration of the request ID extension. This includes operations such as
	// generation, validation, and associated tracing operations. If empty, the
	// :ref:`UuidRequestIdConfig <envoy_v3_api_msg_extensions.request_id.uuid.v3.UuidRequestIdConfig>`
	// default extension is used with default parameters. See the documentation for that extension
	// for details on what it does. Customizing the configuration for the default extension can be
	// achieved by configuring it explicitly here. For example, to disable trace reason packing,
	// the following configuration can be used:
	//
	// .. validated-code-block:: yaml
	//
	//	:type-name: envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension
	//
	//	typed_config:
	//	  "@type": type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig
	//	  pack_trace_reason: false
	//
	// [#extension-category: envoy.request_id]
	RequestIdExtension *RequestIDExtension `protobuf:"bytes,36,opt,name=request_id_extension,json=requestIdExtension,proto3" json:"request_id_extension,omitempty"`
	// The configuration to customize local reply returned by Envoy. It can customize status code,
	// body text and response content type. If not specified, status code and text body are hard
	// coded in Envoy, the response content type is plain text.
	LocalReplyConfig *LocalReplyConfig `protobuf:"bytes,38,opt,name=local_reply_config,json=localReplyConfig,proto3" json:"local_reply_config,omitempty"`
	// Determines if the port part should be removed from host/authority header before any processing
	// of request by HTTP filters or routing. The port would be removed only if it is equal to the :ref:`listener's<envoy_v3_api_field_config.listener.v3.Listener.address>`
	// local port. This affects the upstream host header unless the method is
	// CONNECT in which case if no filter adds a port the original port will be restored before headers are
	// sent upstream.
	// Without setting this option, incoming requests with host “example:443“ will not match against
	// route with :ref:`domains<envoy_v3_api_field_config.route.v3.VirtualHost.domains>` match set to “example“. Defaults to “false“. Note that port removal is not part
	// of `HTTP spec <https://tools.ietf.org/html/rfc3986>`_ and is provided for convenience.
	// Only one of “strip_matching_host_port“ or “strip_any_host_port“ can be set.
	StripMatchingHostPort bool `protobuf:"varint,39,opt,name=strip_matching_host_port,json=stripMatchingHostPort,proto3" json:"strip_matching_host_port,omitempty"`
	// Types that are valid to be assigned to StripPortMode:
	//
	//	*HttpConnectionManager_StripAnyHostPort
	StripPortMode isHttpConnectionManager_StripPortMode `protobuf_oneof:"strip_port_mode"`
	// Governs Envoy's behavior when receiving invalid HTTP from downstream.
	// If this option is false (default), Envoy will err on the conservative side handling HTTP
	// errors, terminating both HTTP/1.1 and HTTP/2 connections when receiving an invalid request.
	// If this option is set to true, Envoy will be more permissive, only resetting the invalid
	// stream in the case of HTTP/2 and leaving the connection open where possible (if the entire
	// request is read for HTTP/1.1)
	// In general this should be true for deployments receiving trusted traffic (L2 Envoys,
	// company-internal mesh) and false when receiving untrusted traffic (edge deployments).
	//
	// If different behaviors for invalid_http_message for HTTP/1 and HTTP/2 are
	// desired, one should use the new HTTP/1 option :ref:`override_stream_error_on_invalid_http_message
	// <envoy_v3_api_field_config.core.v3.Http1ProtocolOptions.override_stream_error_on_invalid_http_message>` or the new HTTP/2 option
	// :ref:`override_stream_error_on_invalid_http_message
	// <envoy_v3_api_field_config.core.v3.Http2ProtocolOptions.override_stream_error_on_invalid_http_message>`
	// “not“ the deprecated but similarly named :ref:`stream_error_on_invalid_http_messaging
	// <envoy_v3_api_field_config.core.v3.Http2ProtocolOptions.stream_error_on_invalid_http_messaging>`
	StreamErrorOnInvalidHttpMessage *wrapperspb.BoolValue `protobuf:"bytes,40,opt,name=stream_error_on_invalid_http_message,json=streamErrorOnInvalidHttpMessage,proto3" json:"stream_error_on_invalid_http_message,omitempty"`
	// [#not-implemented-hide:] Path normalization configuration. This includes
	// configurations for transformations (e.g. RFC 3986 normalization or merge
	// adjacent slashes) and the policy to apply them. The policy determines
	// whether transformations affect the forwarded “:path“ header. RFC 3986 path
	// normalization is enabled by default and the default policy is that the
	// normalized header will be forwarded. See :ref:`PathNormalizationOptions
	// <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.PathNormalizationOptions>`
	// for details.
	PathNormalizationOptions *HttpConnectionManager_PathNormalizationOptions `protobuf:"bytes,43,opt,name=path_normalization_options,json=pathNormalizationOptions,proto3" json:"path_normalization_options,omitempty"`
	// Determines if trailing dot of the host should be removed from host/authority header before any
	// processing of request by HTTP filters or routing.
	// This affects the upstream host header.
	// Without setting this option, incoming requests with host “example.com.“ will not match against
	// route with :ref:`domains<envoy_v3_api_field_config.route.v3.VirtualHost.domains>` match set to “example.com“. Defaults to “false“.
	// When the incoming request contains a host/authority header that includes a port number,
	// setting this option will strip a trailing dot, if present, from the host section,
	// leaving the port as is (e.g. host value “example.com.:443“ will be updated to “example.com:443“).
	StripTrailingHostDot bool `protobuf:"varint,47,opt,name=strip_trailing_host_dot,json=stripTrailingHostDot,proto3" json:"strip_trailing_host_dot,omitempty"`
	// Proxy-Status HTTP response header configuration.
	// If this config is set, the Proxy-Status HTTP response header field is
	// populated. By default, it is not.
	ProxyStatusConfig *HttpConnectionManager_ProxyStatusConfig `protobuf:"bytes,49,opt,name=proxy_status_config,json=proxyStatusConfig,proto3" json:"proxy_status_config,omitempty"`
	// Configuration options for Header Validation (UHV).
	// UHV is an extensible mechanism for checking validity of HTTP requests as well as providing
	// normalization for request attributes, such as URI path.
	// If the typed_header_validation_config is present it overrides the following options:
	// “normalize_path“, “merge_slashes“, “path_with_escaped_slashes_action“
	// “http_protocol_options.allow_chunked_length“, “common_http_protocol_options.headers_with_underscores_action“.
	//
	// The default UHV checks the following:
	//
	// #. HTTP/1 header map validity according to `RFC 7230 section 3.2<https://datatracker.ietf.org/doc/html/rfc7230#section-3.2>`_
	// #. Syntax of HTTP/1 request target URI and response status
	// #. HTTP/2 header map validity according to `RFC 7540 section 8.1.2<https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2`_
	// #. Syntax of HTTP/2 pseudo headers
	// #. HTTP/3 header map validity according to `RFC 9114 section 4.3 <https://www.rfc-editor.org/rfc/rfc9114.html>`_
	// #. Syntax of HTTP/3 pseudo headers
	// #. Syntax of “Content-Length“ and “Transfer-Encoding“
	// #. Validation of HTTP/1 requests with both “Content-Length“ and “Transfer-Encoding“ headers
	// #. Normalization of the URI path according to `Normalization and Comparison <https://datatracker.ietf.org/doc/html/rfc3986#section-6>`_
	//
	//	without `case normalization <https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2.1>`_
	//
	// [#not-implemented-hide:]
	// [#extension-category: envoy.http.header_validators]
	TypedHeaderValidationConfig *v3.TypedExtensionConfig `protobuf:"bytes,50,opt,name=typed_header_validation_config,json=typedHeaderValidationConfig,proto3" json:"typed_header_validation_config,omitempty"`
	// Append the “x-forwarded-port“ header with the port value client used to connect to Envoy. It
	// will be ignored if the “x-forwarded-port“ header has been set by any trusted proxy in front of Envoy.
	AppendXForwardedPort bool `protobuf:"varint,51,opt,name=append_x_forwarded_port,json=appendXForwardedPort,proto3" json:"append_x_forwarded_port,omitempty"`
	// Append the :ref:`config_http_conn_man_headers_x-envoy-local-overloaded` HTTP header in the scenario where
	// the Overload Manager has been triggered.
	AppendLocalOverload bool `protobuf:"varint,57,opt,name=append_local_overload,json=appendLocalOverload,proto3" json:"append_local_overload,omitempty"`
	// Whether the HCM will add ProxyProtocolFilterState to the Connection lifetime filter state. Defaults to “true“.
	// This should be set to “false“ in cases where Envoy's view of the downstream address may not correspond to the
	// actual client address, for example, if there's another proxy in front of the Envoy.
	AddProxyProtocolConnectionState *wrapperspb.BoolValue `protobuf:"bytes,53,opt,name=add_proxy_protocol_connection_state,json=addProxyProtocolConnectionState,proto3" json:"add_proxy_protocol_connection_state,omitempty"`
	unknownFields                   protoimpl.UnknownFields
	sizeCache                       protoimpl.SizeCache
}

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

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

func (*HttpConnectionManager) ProtoMessage() {}

func (x *HttpConnectionManager) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_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 HttpConnectionManager.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0}
}

func (x *HttpConnectionManager) GetCodecType() HttpConnectionManager_CodecType {
	if x != nil {
		return x.CodecType
	}
	return HttpConnectionManager_AUTO
}

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

func (x *HttpConnectionManager) GetRouteSpecifier() isHttpConnectionManager_RouteSpecifier {
	if x != nil {
		return x.RouteSpecifier
	}
	return nil
}

func (x *HttpConnectionManager) GetRds() *Rds {
	if x != nil {
		if x, ok := x.RouteSpecifier.(*HttpConnectionManager_Rds); ok {
			return x.Rds
		}
	}
	return nil
}

func (x *HttpConnectionManager) GetRouteConfig() *v33.RouteConfiguration {
	if x != nil {
		if x, ok := x.RouteSpecifier.(*HttpConnectionManager_RouteConfig); ok {
			return x.RouteConfig
		}
	}
	return nil
}

func (x *HttpConnectionManager) GetScopedRoutes() *ScopedRoutes {
	if x != nil {
		if x, ok := x.RouteSpecifier.(*HttpConnectionManager_ScopedRoutes); ok {
			return x.ScopedRoutes
		}
	}
	return nil
}

func (x *HttpConnectionManager) GetHttpFilters() []*HttpFilter {
	if x != nil {
		return x.HttpFilters
	}
	return nil
}

func (x *HttpConnectionManager) GetAddUserAgent() *wrapperspb.BoolValue {
	if x != nil {
		return x.AddUserAgent
	}
	return nil
}

func (x *HttpConnectionManager) GetTracing() *HttpConnectionManager_Tracing {
	if x != nil {
		return x.Tracing
	}
	return nil
}

func (x *HttpConnectionManager) GetCommonHttpProtocolOptions() *v3.HttpProtocolOptions {
	if x != nil {
		return x.CommonHttpProtocolOptions
	}
	return nil
}

func (x *HttpConnectionManager) GetHttp1SafeMaxConnectionDuration() bool {
	if x != nil {
		return x.Http1SafeMaxConnectionDuration
	}
	return false
}

func (x *HttpConnectionManager) GetHttpProtocolOptions() *v3.Http1ProtocolOptions {
	if x != nil {
		return x.HttpProtocolOptions
	}
	return nil
}

func (x *HttpConnectionManager) GetHttp2ProtocolOptions() *v3.Http2ProtocolOptions {
	if x != nil {
		return x.Http2ProtocolOptions
	}
	return nil
}

func (x *HttpConnectionManager) GetHttp3ProtocolOptions() *v3.Http3ProtocolOptions {
	if x != nil {
		return x.Http3ProtocolOptions
	}
	return nil
}

func (x *HttpConnectionManager) GetServerName() string {
	if x != nil {
		return x.ServerName
	}
	return ""
}

func (x *HttpConnectionManager) GetServerHeaderTransformation() HttpConnectionManager_ServerHeaderTransformation {
	if x != nil {
		return x.ServerHeaderTransformation
	}
	return HttpConnectionManager_OVERWRITE
}

func (x *HttpConnectionManager) GetSchemeHeaderTransformation() *v3.SchemeHeaderTransformation {
	if x != nil {
		return x.SchemeHeaderTransformation
	}
	return nil
}

func (x *HttpConnectionManager) GetMaxRequestHeadersKb() *wrapperspb.UInt32Value {
	if x != nil {
		return x.MaxRequestHeadersKb
	}
	return nil
}

func (x *HttpConnectionManager) GetStreamIdleTimeout() *durationpb.Duration {
	if x != nil {
		return x.StreamIdleTimeout
	}
	return nil
}

func (x *HttpConnectionManager) GetStreamFlushTimeout() *durationpb.Duration {
	if x != nil {
		return x.StreamFlushTimeout
	}
	return nil
}

func (x *HttpConnectionManager) GetRequestTimeout() *durationpb.Duration {
	if x != nil {
		return x.RequestTimeout
	}
	return nil
}

func (x *HttpConnectionManager) GetRequestHeadersTimeout() *durationpb.Duration {
	if x != nil {
		return x.RequestHeadersTimeout
	}
	return nil
}

func (x *HttpConnectionManager) GetDrainTimeout() *durationpb.Duration {
	if x != nil {
		return x.DrainTimeout
	}
	return nil
}

func (x *HttpConnectionManager) GetDelayedCloseTimeout() *durationpb.Duration {
	if x != nil {
		return x.DelayedCloseTimeout
	}
	return nil
}

func (x *HttpConnectionManager) GetAccessLog() []*v31.AccessLog {
	if x != nil {
		return x.AccessLog
	}
	return nil
}

// Deprecated: Marked as deprecated in envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto.
func (x *HttpConnectionManager) GetAccessLogFlushInterval() *durationpb.Duration {
	if x != nil {
		return x.AccessLogFlushInterval
	}
	return nil
}

// Deprecated: Marked as deprecated in envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto.
func (x *HttpConnectionManager) GetFlushAccessLogOnNewRequest() bool {
	if x != nil {
		return x.FlushAccessLogOnNewRequest
	}
	return false
}

func (x *HttpConnectionManager) GetAccessLogOptions() *HttpConnectionManager_HcmAccessLogOptions {
	if x != nil {
		return x.AccessLogOptions
	}
	return nil
}

func (x *HttpConnectionManager) GetUseRemoteAddress() *wrapperspb.BoolValue {
	if x != nil {
		return x.UseRemoteAddress
	}
	return nil
}

func (x *HttpConnectionManager) GetXffNumTrustedHops() uint32 {
	if x != nil {
		return x.XffNumTrustedHops
	}
	return 0
}

func (x *HttpConnectionManager) GetOriginalIpDetectionExtensions() []*v3.TypedExtensionConfig {
	if x != nil {
		return x.OriginalIpDetectionExtensions
	}
	return nil
}

func (x *HttpConnectionManager) GetEarlyHeaderMutationExtensions() []*v3.TypedExtensionConfig {
	if x != nil {
		return x.EarlyHeaderMutationExtensions
	}
	return nil
}

func (x *HttpConnectionManager) GetInternalAddressConfig() *HttpConnectionManager_InternalAddressConfig {
	if x != nil {
		return x.InternalAddressConfig
	}
	return nil
}

func (x *HttpConnectionManager) GetSkipXffAppend() bool {
	if x != nil {
		return x.SkipXffAppend
	}
	return false
}

func (x *HttpConnectionManager) GetVia() string {
	if x != nil {
		return x.Via
	}
	return ""
}

func (x *HttpConnectionManager) GetGenerateRequestId() *wrapperspb.BoolValue {
	if x != nil {
		return x.GenerateRequestId
	}
	return nil
}

func (x *HttpConnectionManager) GetPreserveExternalRequestId() bool {
	if x != nil {
		return x.PreserveExternalRequestId
	}
	return false
}

func (x *HttpConnectionManager) GetAlwaysSetRequestIdInResponse() bool {
	if x != nil {
		return x.AlwaysSetRequestIdInResponse
	}
	return false
}

func (x *HttpConnectionManager) GetForwardClientCertDetails() HttpConnectionManager_ForwardClientCertDetails {
	if x != nil {
		return x.ForwardClientCertDetails
	}
	return HttpConnectionManager_SANITIZE
}

func (x *HttpConnectionManager) GetSetCurrentClientCertDetails() *HttpConnectionManager_SetCurrentClientCertDetails {
	if x != nil {
		return x.SetCurrentClientCertDetails
	}
	return nil
}

func (x *HttpConnectionManager) GetForwardClientCertMatcher() *v32.Matcher {
	if x != nil {
		return x.ForwardClientCertMatcher
	}
	return nil
}

func (x *HttpConnectionManager) GetProxy_100Continue() bool {
	if x != nil {
		return x.Proxy_100Continue
	}
	return false
}

func (x *HttpConnectionManager) GetRepresentIpv4RemoteAddressAsIpv4MappedIpv6() bool {
	if x != nil {
		return x.RepresentIpv4RemoteAddressAsIpv4MappedIpv6
	}
	return false
}

func (x *HttpConnectionManager) GetUpgradeConfigs() []*HttpConnectionManager_UpgradeConfig {
	if x != nil {
		return x.UpgradeConfigs
	}
	return nil
}

func (x *HttpConnectionManager) GetNormalizePath() *wrapperspb.BoolValue {
	if x != nil {
		return x.NormalizePath
	}
	return nil
}

func (x *HttpConnectionManager) GetMergeSlashes() bool {
	if x != nil {
		return x.MergeSlashes
	}
	return false
}

func (x *HttpConnectionManager) GetPathWithEscapedSlashesAction() HttpConnectionManager_PathWithEscapedSlashesAction {
	if x != nil {
		return x.PathWithEscapedSlashesAction
	}
	return HttpConnectionManager_IMPLEMENTATION_SPECIFIC_DEFAULT
}

func (x *HttpConnectionManager) GetRequestIdExtension() *RequestIDExtension {
	if x != nil {
		return x.RequestIdExtension
	}
	return nil
}

func (x *HttpConnectionManager) GetLocalReplyConfig() *LocalReplyConfig {
	if x != nil {
		return x.LocalReplyConfig
	}
	return nil
}

func (x *HttpConnectionManager) GetStripMatchingHostPort() bool {
	if x != nil {
		return x.StripMatchingHostPort
	}
	return false
}

func (x *HttpConnectionManager) GetStripPortMode() isHttpConnectionManager_StripPortMode {
	if x != nil {
		return x.StripPortMode
	}
	return nil
}

func (x *HttpConnectionManager) GetStripAnyHostPort() bool {
	if x != nil {
		if x, ok := x.StripPortMode.(*HttpConnectionManager_StripAnyHostPort); ok {
			return x.StripAnyHostPort
		}
	}
	return false
}

func (x *HttpConnectionManager) GetStreamErrorOnInvalidHttpMessage() *wrapperspb.BoolValue {
	if x != nil {
		return x.StreamErrorOnInvalidHttpMessage
	}
	return nil
}

func (x *HttpConnectionManager) GetPathNormalizationOptions() *HttpConnectionManager_PathNormalizationOptions {
	if x != nil {
		return x.PathNormalizationOptions
	}
	return nil
}

func (x *HttpConnectionManager) GetStripTrailingHostDot() bool {
	if x != nil {
		return x.StripTrailingHostDot
	}
	return false
}

func (x *HttpConnectionManager) GetProxyStatusConfig() *HttpConnectionManager_ProxyStatusConfig {
	if x != nil {
		return x.ProxyStatusConfig
	}
	return nil
}

func (x *HttpConnectionManager) GetTypedHeaderValidationConfig() *v3.TypedExtensionConfig {
	if x != nil {
		return x.TypedHeaderValidationConfig
	}
	return nil
}

func (x *HttpConnectionManager) GetAppendXForwardedPort() bool {
	if x != nil {
		return x.AppendXForwardedPort
	}
	return false
}

func (x *HttpConnectionManager) GetAppendLocalOverload() bool {
	if x != nil {
		return x.AppendLocalOverload
	}
	return false
}

func (x *HttpConnectionManager) GetAddProxyProtocolConnectionState() *wrapperspb.BoolValue {
	if x != nil {
		return x.AddProxyProtocolConnectionState
	}
	return nil
}

type isHttpConnectionManager_RouteSpecifier interface {
	isHttpConnectionManager_RouteSpecifier()
}

type HttpConnectionManager_Rds struct {
	// The connection manager’s route table will be dynamically loaded via the RDS API.
	Rds *Rds `protobuf:"bytes,3,opt,name=rds,proto3,oneof"`
}

type HttpConnectionManager_RouteConfig struct {
	// The route table for the connection manager is static and is specified in this property.
	RouteConfig *v33.RouteConfiguration `protobuf:"bytes,4,opt,name=route_config,json=routeConfig,proto3,oneof"`
}

type HttpConnectionManager_ScopedRoutes struct {
	// A route table will be dynamically assigned to each request based on request attributes
	// (e.g., the value of a header). The "routing scopes" (i.e., route tables) and "scope keys" are
	// specified in this message.
	ScopedRoutes *ScopedRoutes `protobuf:"bytes,31,opt,name=scoped_routes,json=scopedRoutes,proto3,oneof"`
}

func (*HttpConnectionManager_Rds) isHttpConnectionManager_RouteSpecifier() {}

func (*HttpConnectionManager_RouteConfig) isHttpConnectionManager_RouteSpecifier() {}

func (*HttpConnectionManager_ScopedRoutes) isHttpConnectionManager_RouteSpecifier() {}

type isHttpConnectionManager_StripPortMode interface {
	isHttpConnectionManager_StripPortMode()
}

type HttpConnectionManager_StripAnyHostPort struct {
	// Determines if the port part should be removed from host/authority header before any processing
	// of request by HTTP filters or routing.
	// This affects the upstream host header unless the method is CONNECT in
	// which case if no filter adds a port the original port will be restored before headers are sent upstream.
	// Without setting this option, incoming requests with host “example:443“ will not match against
	// route with :ref:`domains<envoy_v3_api_field_config.route.v3.VirtualHost.domains>` match set to “example“. Defaults to “false“. Note that port removal is not part
	// of `HTTP spec <https://tools.ietf.org/html/rfc3986>`_ and is provided for convenience.
	// Only one of “strip_matching_host_port“ or “strip_any_host_port“ can be set.
	StripAnyHostPort bool `protobuf:"varint,42,opt,name=strip_any_host_port,json=stripAnyHostPort,proto3,oneof"`
}

func (*HttpConnectionManager_StripAnyHostPort) isHttpConnectionManager_StripPortMode() {}

// The configuration to customize local reply returned by Envoy.
type LocalReplyConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Configuration of list of mappers which allows to filter and change local response.
	// The mappers will be checked by the specified order until one is matched.
	Mappers []*ResponseMapper `protobuf:"bytes,1,rep,name=mappers,proto3" json:"mappers,omitempty"`
	// The configuration to form response body from the :ref:`command operators <config_access_log_command_operators>`
	// and to specify response content type as one of: plain/text or application/json.
	//
	// Example one: "plain/text" “body_format“.
	//
	// .. validated-code-block:: yaml
	//
	//	:type-name: envoy.config.core.v3.SubstitutionFormatString
	//
	//	text_format: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%\n"
	//
	// The following response body in "plain/text" format will be generated for a request with
	// local reply body of "upstream connection error", response_code=503 and path=/foo.
	//
	// .. code-block:: text
	//
	//	upstream connect error:503:path=/foo
	//
	// Example two: "application/json" “body_format“.
	//
	// .. validated-code-block:: yaml
	//
	//	:type-name: envoy.config.core.v3.SubstitutionFormatString
	//
	//	json_format:
	//	  status: "%RESPONSE_CODE%"
	//	  message: "%LOCAL_REPLY_BODY%"
	//	  path: "%REQ(:path)%"
	//
	// The following response body in "application/json" format would be generated for a request with
	// local reply body of "upstream connection error", response_code=503 and path=/foo.
	//
	// .. code-block:: json
	//
	//	{
	//	  "status": 503,
	//	  "message": "upstream connection error",
	//	  "path": "/foo"
	//	}
	BodyFormat    *v3.SubstitutionFormatString `protobuf:"bytes,2,opt,name=body_format,json=bodyFormat,proto3" json:"body_format,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LocalReplyConfig) Reset() {
	*x = LocalReplyConfig{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*LocalReplyConfig) ProtoMessage() {}

func (x *LocalReplyConfig) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[1]
	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 LocalReplyConfig.ProtoReflect.Descriptor instead.
func (*LocalReplyConfig) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{1}
}

func (x *LocalReplyConfig) GetMappers() []*ResponseMapper {
	if x != nil {
		return x.Mappers
	}
	return nil
}

func (x *LocalReplyConfig) GetBodyFormat() *v3.SubstitutionFormatString {
	if x != nil {
		return x.BodyFormat
	}
	return nil
}

// The configuration to filter and change local response.
// [#next-free-field: 6]
type ResponseMapper struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Filter to determine if this mapper should apply.
	Filter *v31.AccessLogFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// The new response status code if specified.
	StatusCode *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
	// The new local reply body text if specified. It will be used in the “%LOCAL_REPLY_BODY%“
	// command operator in the “body_format“.
	Body *v3.DataSource `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
	// A per mapper “body_format“ to override the :ref:`body_format <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.LocalReplyConfig.body_format>`.
	// It will be used when this mapper is matched.
	BodyFormatOverride *v3.SubstitutionFormatString `protobuf:"bytes,4,opt,name=body_format_override,json=bodyFormatOverride,proto3" json:"body_format_override,omitempty"`
	// HTTP headers to add to a local reply. This allows the response mapper to append, to add
	// or to override headers of any local reply before it is sent to a downstream client.
	HeadersToAdd  []*v3.HeaderValueOption `protobuf:"bytes,5,rep,name=headers_to_add,json=headersToAdd,proto3" json:"headers_to_add,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResponseMapper) Reset() {
	*x = ResponseMapper{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ResponseMapper) ProtoMessage() {}

func (x *ResponseMapper) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[2]
	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 ResponseMapper.ProtoReflect.Descriptor instead.
func (*ResponseMapper) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{2}
}

func (x *ResponseMapper) GetFilter() *v31.AccessLogFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *ResponseMapper) GetStatusCode() *wrapperspb.UInt32Value {
	if x != nil {
		return x.StatusCode
	}
	return nil
}

func (x *ResponseMapper) GetBody() *v3.DataSource {
	if x != nil {
		return x.Body
	}
	return nil
}

func (x *ResponseMapper) GetBodyFormatOverride() *v3.SubstitutionFormatString {
	if x != nil {
		return x.BodyFormatOverride
	}
	return nil
}

func (x *ResponseMapper) GetHeadersToAdd() []*v3.HeaderValueOption {
	if x != nil {
		return x.HeadersToAdd
	}
	return nil
}

type Rds struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Configuration source specifier for RDS.
	ConfigSource *v3.ConfigSource `protobuf:"bytes,1,opt,name=config_source,json=configSource,proto3" json:"config_source,omitempty"`
	// The name of the route configuration. This name will be passed to the RDS
	// API. This allows an Envoy configuration with multiple HTTP listeners (and
	// associated HTTP connection manager filters) to use different route
	// configurations.
	RouteConfigName string `protobuf:"bytes,2,opt,name=route_config_name,json=routeConfigName,proto3" json:"route_config_name,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Rds) Reset() {
	*x = Rds{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Rds) ProtoMessage() {}

func (x *Rds) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[3]
	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 Rds.ProtoReflect.Descriptor instead.
func (*Rds) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{3}
}

func (x *Rds) GetConfigSource() *v3.ConfigSource {
	if x != nil {
		return x.ConfigSource
	}
	return nil
}

func (x *Rds) GetRouteConfigName() string {
	if x != nil {
		return x.RouteConfigName
	}
	return ""
}

// This message is used to work around the limitations with 'oneof' and repeated fields.
type ScopedRouteConfigurationsList struct {
	state                     protoimpl.MessageState          `protogen:"open.v1"`
	ScopedRouteConfigurations []*v33.ScopedRouteConfiguration `protobuf:"bytes,1,rep,name=scoped_route_configurations,json=scopedRouteConfigurations,proto3" json:"scoped_route_configurations,omitempty"`
	unknownFields             protoimpl.UnknownFields
	sizeCache                 protoimpl.SizeCache
}

func (x *ScopedRouteConfigurationsList) Reset() {
	*x = ScopedRouteConfigurationsList{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScopedRouteConfigurationsList) ProtoMessage() {}

func (x *ScopedRouteConfigurationsList) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[4]
	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 ScopedRouteConfigurationsList.ProtoReflect.Descriptor instead.
func (*ScopedRouteConfigurationsList) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{4}
}

func (x *ScopedRouteConfigurationsList) GetScopedRouteConfigurations() []*v33.ScopedRouteConfiguration {
	if x != nil {
		return x.ScopedRouteConfigurations
	}
	return nil
}

// [#next-free-field: 6]
type ScopedRoutes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name assigned to the scoped routing configuration.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The algorithm to use for constructing a scope key for each request.
	ScopeKeyBuilder *ScopedRoutes_ScopeKeyBuilder `protobuf:"bytes,2,opt,name=scope_key_builder,json=scopeKeyBuilder,proto3" json:"scope_key_builder,omitempty"`
	// Configuration source specifier for RDS.
	// This config source is used to subscribe to RouteConfiguration resources specified in
	// ScopedRouteConfiguration messages.
	RdsConfigSource *v3.ConfigSource `protobuf:"bytes,3,opt,name=rds_config_source,json=rdsConfigSource,proto3" json:"rds_config_source,omitempty"`
	// Types that are valid to be assigned to ConfigSpecifier:
	//
	//	*ScopedRoutes_ScopedRouteConfigurationsList
	//	*ScopedRoutes_ScopedRds
	ConfigSpecifier isScopedRoutes_ConfigSpecifier `protobuf_oneof:"config_specifier"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *ScopedRoutes) Reset() {
	*x = ScopedRoutes{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScopedRoutes) ProtoMessage() {}

func (x *ScopedRoutes) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[5]
	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 ScopedRoutes.ProtoReflect.Descriptor instead.
func (*ScopedRoutes) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{5}
}

func (x *ScopedRoutes) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ScopedRoutes) GetScopeKeyBuilder() *ScopedRoutes_ScopeKeyBuilder {
	if x != nil {
		return x.ScopeKeyBuilder
	}
	return nil
}

func (x *ScopedRoutes) GetRdsConfigSource() *v3.ConfigSource {
	if x != nil {
		return x.RdsConfigSource
	}
	return nil
}

func (x *ScopedRoutes) GetConfigSpecifier() isScopedRoutes_ConfigSpecifier {
	if x != nil {
		return x.ConfigSpecifier
	}
	return nil
}

func (x *ScopedRoutes) GetScopedRouteConfigurationsList() *ScopedRouteConfigurationsList {
	if x != nil {
		if x, ok := x.ConfigSpecifier.(*ScopedRoutes_ScopedRouteConfigurationsList); ok {
			return x.ScopedRouteConfigurationsList
		}
	}
	return nil
}

func (x *ScopedRoutes) GetScopedRds() *ScopedRds {
	if x != nil {
		if x, ok := x.ConfigSpecifier.(*ScopedRoutes_ScopedRds); ok {
			return x.ScopedRds
		}
	}
	return nil
}

type isScopedRoutes_ConfigSpecifier interface {
	isScopedRoutes_ConfigSpecifier()
}

type ScopedRoutes_ScopedRouteConfigurationsList struct {
	// The set of routing scopes corresponding to the HCM. A scope is assigned to a request by
	// matching a key constructed from the request's attributes according to the algorithm specified
	// by the
	// :ref:`ScopeKeyBuilder<envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
	// in this message.
	ScopedRouteConfigurationsList *ScopedRouteConfigurationsList `protobuf:"bytes,4,opt,name=scoped_route_configurations_list,json=scopedRouteConfigurationsList,proto3,oneof"`
}

type ScopedRoutes_ScopedRds struct {
	// The set of routing scopes associated with the HCM will be dynamically loaded via the SRDS
	// API. A scope is assigned to a request by matching a key constructed from the request's
	// attributes according to the algorithm specified by the
	// :ref:`ScopeKeyBuilder<envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
	// in this message.
	ScopedRds *ScopedRds `protobuf:"bytes,5,opt,name=scoped_rds,json=scopedRds,proto3,oneof"`
}

func (*ScopedRoutes_ScopedRouteConfigurationsList) isScopedRoutes_ConfigSpecifier() {}

func (*ScopedRoutes_ScopedRds) isScopedRoutes_ConfigSpecifier() {}

type ScopedRds struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Configuration source specifier for scoped RDS.
	ScopedRdsConfigSource *v3.ConfigSource `protobuf:"bytes,1,opt,name=scoped_rds_config_source,json=scopedRdsConfigSource,proto3" json:"scoped_rds_config_source,omitempty"`
	// xdstp:// resource locator for scoped RDS collection.
	// [#not-implemented-hide:]
	SrdsResourcesLocator string `protobuf:"bytes,2,opt,name=srds_resources_locator,json=srdsResourcesLocator,proto3" json:"srds_resources_locator,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *ScopedRds) Reset() {
	*x = ScopedRds{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScopedRds) ProtoMessage() {}

func (x *ScopedRds) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[6]
	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 ScopedRds.ProtoReflect.Descriptor instead.
func (*ScopedRds) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{6}
}

func (x *ScopedRds) GetScopedRdsConfigSource() *v3.ConfigSource {
	if x != nil {
		return x.ScopedRdsConfigSource
	}
	return nil
}

func (x *ScopedRds) GetSrdsResourcesLocator() string {
	if x != nil {
		return x.SrdsResourcesLocator
	}
	return ""
}

// [#next-free-field: 8]
type HttpFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the filter configuration. It also serves as a resource name in ExtensionConfigDS.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to ConfigType:
	//
	//	*HttpFilter_TypedConfig
	//	*HttpFilter_ConfigDiscovery
	ConfigType isHttpFilter_ConfigType `protobuf_oneof:"config_type"`
	// If true, clients that do not support this filter may ignore the
	// filter but otherwise accept the config.
	// Otherwise, clients that do not support this filter must reject the config.
	IsOptional bool `protobuf:"varint,6,opt,name=is_optional,json=isOptional,proto3" json:"is_optional,omitempty"`
	// If true, the filter is disabled by default and must be explicitly enabled by setting
	// per filter configuration in the route configuration.
	// See :ref:`route based filter chain <arch_overview_http_filters_route_based_filter_chain>`
	// for more details.
	//
	// Terminal filters (e.g. “envoy.filters.http.router“) cannot be marked as disabled.
	Disabled      bool `protobuf:"varint,7,opt,name=disabled,proto3" json:"disabled,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HttpFilter) Reset() {
	*x = HttpFilter{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpFilter) ProtoMessage() {}

func (x *HttpFilter) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[7]
	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 HttpFilter.ProtoReflect.Descriptor instead.
func (*HttpFilter) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{7}
}

func (x *HttpFilter) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *HttpFilter) GetConfigType() isHttpFilter_ConfigType {
	if x != nil {
		return x.ConfigType
	}
	return nil
}

func (x *HttpFilter) GetTypedConfig() *anypb.Any {
	if x != nil {
		if x, ok := x.ConfigType.(*HttpFilter_TypedConfig); ok {
			return x.TypedConfig
		}
	}
	return nil
}

func (x *HttpFilter) GetConfigDiscovery() *v3.ExtensionConfigSource {
	if x != nil {
		if x, ok := x.ConfigType.(*HttpFilter_ConfigDiscovery); ok {
			return x.ConfigDiscovery
		}
	}
	return nil
}

func (x *HttpFilter) GetIsOptional() bool {
	if x != nil {
		return x.IsOptional
	}
	return false
}

func (x *HttpFilter) GetDisabled() bool {
	if x != nil {
		return x.Disabled
	}
	return false
}

type isHttpFilter_ConfigType interface {
	isHttpFilter_ConfigType()
}

type HttpFilter_TypedConfig struct {
	// Filter specific configuration which depends on the filter being instantiated. See the supported
	// filters for further documentation.
	//
	// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an
	// :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
	// with the desired HTTP filter.
	// [#extension-category: envoy.filters.http]
	TypedConfig *anypb.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

type HttpFilter_ConfigDiscovery struct {
	// Configuration source specifier for an extension configuration discovery service.
	// In case of a failure and without the default configuration, the HTTP listener responds with code 500.
	// Extension configs delivered through this mechanism are not expected to require warming (see https://github.com/envoyproxy/envoy/issues/12061).
	//
	// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an
	// :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
	// with the desired HTTP filter. This works for both the default filter configuration as well
	// as for filters provided via the API.
	ConfigDiscovery *v3.ExtensionConfigSource `protobuf:"bytes,5,opt,name=config_discovery,json=configDiscovery,proto3,oneof"`
}

func (*HttpFilter_TypedConfig) isHttpFilter_ConfigType() {}

func (*HttpFilter_ConfigDiscovery) isHttpFilter_ConfigType() {}

type RequestIDExtension struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Request ID extension specific configuration.
	TypedConfig   *anypb.Any `protobuf:"bytes,1,opt,name=typed_config,json=typedConfig,proto3" json:"typed_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RequestIDExtension) Reset() {
	*x = RequestIDExtension{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RequestIDExtension) ProtoMessage() {}

func (x *RequestIDExtension) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[8]
	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 RequestIDExtension.ProtoReflect.Descriptor instead.
func (*RequestIDExtension) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{8}
}

func (x *RequestIDExtension) GetTypedConfig() *anypb.Any {
	if x != nil {
		return x.TypedConfig
	}
	return nil
}

// [#protodoc-title: Envoy Mobile HTTP connection manager]
// HTTP connection manager for use in Envoy mobile.
// [#extension: envoy.filters.network.envoy_mobile_http_connection_manager]
type EnvoyMobileHttpConnectionManager struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The configuration for the underlying HttpConnectionManager which will be
	// instantiated for Envoy mobile.
	Config        *HttpConnectionManager `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EnvoyMobileHttpConnectionManager) Reset() {
	*x = EnvoyMobileHttpConnectionManager{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*EnvoyMobileHttpConnectionManager) ProtoMessage() {}

func (x *EnvoyMobileHttpConnectionManager) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[9]
	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 EnvoyMobileHttpConnectionManager.ProtoReflect.Descriptor instead.
func (*EnvoyMobileHttpConnectionManager) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{9}
}

func (x *EnvoyMobileHttpConnectionManager) GetConfig() *HttpConnectionManager {
	if x != nil {
		return x.Config
	}
	return nil
}

// [#next-free-field: 13]
type HttpConnectionManager_Tracing struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Target percentage of requests managed by this HTTP connection manager that will be force
	// traced if the :ref:`x-client-trace-id <config_http_conn_man_headers_x-client-trace-id>`
	// header is set. This field is a direct analog for the runtime variable
	// 'tracing.client_enabled' in the :ref:`HTTP Connection Manager
	// <config_http_conn_man_runtime>`.
	// Default: 100%
	ClientSampling *v34.Percent `protobuf:"bytes,3,opt,name=client_sampling,json=clientSampling,proto3" json:"client_sampling,omitempty"`
	// Target percentage of requests managed by this HTTP connection manager that will be randomly
	// selected for trace generation, if not requested by the client or not forced. This field is
	// a direct analog for the runtime variable 'tracing.random_sampling' in the
	// :ref:`HTTP Connection Manager <config_http_conn_man_runtime>`.
	// Default: 100%
	RandomSampling *v34.Percent `protobuf:"bytes,4,opt,name=random_sampling,json=randomSampling,proto3" json:"random_sampling,omitempty"`
	// Target percentage of requests managed by this HTTP connection manager that will be traced
	// after all other sampling checks have been applied (client-directed, force tracing, random
	// sampling). This field functions as an upper limit on the total configured sampling rate. For
	// instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1%
	// of client requests with the appropriate headers to be force traced. This field is a direct
	// analog for the runtime variable 'tracing.global_enabled' in the
	// :ref:`HTTP Connection Manager <config_http_conn_man_runtime>`.
	// Default: 100%
	OverallSampling *v34.Percent `protobuf:"bytes,5,opt,name=overall_sampling,json=overallSampling,proto3" json:"overall_sampling,omitempty"`
	// Whether to annotate spans with additional data. If true, spans will include logs for stream
	// events.
	Verbose bool `protobuf:"varint,6,opt,name=verbose,proto3" json:"verbose,omitempty"`
	// Maximum length of the request path to extract and include in the HttpUrl tag. Used to
	// truncate lengthy request paths to meet the needs of a tracing backend.
	// Default: 256
	MaxPathTagLength *wrapperspb.UInt32Value `protobuf:"bytes,7,opt,name=max_path_tag_length,json=maxPathTagLength,proto3" json:"max_path_tag_length,omitempty"`
	// A list of custom tags with unique tag name to create tags for the active span.
	CustomTags []*v35.CustomTag `protobuf:"bytes,8,rep,name=custom_tags,json=customTags,proto3" json:"custom_tags,omitempty"`
	// Configuration for an external tracing provider.
	// If not specified, no tracing will be performed.
	Provider *v36.Tracing_Http `protobuf:"bytes,9,opt,name=provider,proto3" json:"provider,omitempty"`
	// Create separate tracing span for each upstream request if true. And if this flag is set to true,
	// the tracing provider will assume that Envoy will be independent hop in the trace chain and may
	// set span type to client or server based on this flag.
	// This will deprecate the
	// :ref:`start_child_span <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>`
	// in the router.
	//
	// Users should set appropriate value based on their tracing provider and actual scenario:
	//
	//   - If Envoy is used as sidecar and users want to make the sidecar and its application as only one
	//     hop in the trace chain, this flag should be set to false. And please also make sure the
	//     :ref:`start_child_span <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>`
	//     in the router is not set to true.
	//   - If Envoy is used as gateway or independent proxy, or users want to make the sidecar and its
	//     application as different hops in the trace chain, this flag should be set to true.
	//   - If tracing provider that has explicit requirements on span creation (like SkyWalking),
	//     this flag should be set to true.
	//
	// The default value is false for now for backward compatibility.
	SpawnUpstreamSpan *wrapperspb.BoolValue `protobuf:"bytes,10,opt,name=spawn_upstream_span,json=spawnUpstreamSpan,proto3" json:"spawn_upstream_span,omitempty"`
	// The operation name of the span which will be used for tracing.
	//
	// The same :ref:`format specifier <config_access_log_format>` as used for
	// :ref:`HTTP access logging <config_access_log>` applies here, however
	// unknown specifier values are replaced with the empty string instead of “-“.
	//
	// This field will take precedence over and make following settings ineffective:
	//
	//   - :ref:`route decorator <envoy_v3_api_field_config.route.v3.Route.decorator>` and
	//   - :ref:`x-envoy-decorator-operation <config_http_filters_router_x-envoy-decorator-operation>`
	//     header will be ignored.
	Operation string `protobuf:"bytes,11,opt,name=operation,proto3" json:"operation,omitempty"`
	// The operation name of the upstream span which will be used for tracing.
	// This only takes effect when “spawn_upstream_span“ is set to true and the upstream
	// span is created.
	//
	// The same :ref:`format specifier <config_access_log_format>` as used for
	// :ref:`HTTP access logging <config_access_log>` applies here, however
	// unknown specifier values are replaced with the empty string instead of “-“.
	UpstreamOperation string `protobuf:"bytes,12,opt,name=upstream_operation,json=upstreamOperation,proto3" json:"upstream_operation,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *HttpConnectionManager_Tracing) Reset() {
	*x = HttpConnectionManager_Tracing{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_Tracing) ProtoMessage() {}

func (x *HttpConnectionManager_Tracing) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[10]
	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 HttpConnectionManager_Tracing.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_Tracing) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 0}
}

func (x *HttpConnectionManager_Tracing) GetClientSampling() *v34.Percent {
	if x != nil {
		return x.ClientSampling
	}
	return nil
}

func (x *HttpConnectionManager_Tracing) GetRandomSampling() *v34.Percent {
	if x != nil {
		return x.RandomSampling
	}
	return nil
}

func (x *HttpConnectionManager_Tracing) GetOverallSampling() *v34.Percent {
	if x != nil {
		return x.OverallSampling
	}
	return nil
}

func (x *HttpConnectionManager_Tracing) GetVerbose() bool {
	if x != nil {
		return x.Verbose
	}
	return false
}

func (x *HttpConnectionManager_Tracing) GetMaxPathTagLength() *wrapperspb.UInt32Value {
	if x != nil {
		return x.MaxPathTagLength
	}
	return nil
}

func (x *HttpConnectionManager_Tracing) GetCustomTags() []*v35.CustomTag {
	if x != nil {
		return x.CustomTags
	}
	return nil
}

func (x *HttpConnectionManager_Tracing) GetProvider() *v36.Tracing_Http {
	if x != nil {
		return x.Provider
	}
	return nil
}

func (x *HttpConnectionManager_Tracing) GetSpawnUpstreamSpan() *wrapperspb.BoolValue {
	if x != nil {
		return x.SpawnUpstreamSpan
	}
	return nil
}

func (x *HttpConnectionManager_Tracing) GetOperation() string {
	if x != nil {
		return x.Operation
	}
	return ""
}

func (x *HttpConnectionManager_Tracing) GetUpstreamOperation() string {
	if x != nil {
		return x.UpstreamOperation
	}
	return ""
}

type HttpConnectionManager_InternalAddressConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether unix socket addresses should be considered internal.
	UnixSockets bool `protobuf:"varint,1,opt,name=unix_sockets,json=unixSockets,proto3" json:"unix_sockets,omitempty"`
	// List of CIDR ranges that are treated as internal. If unset, then RFC1918 / RFC4193
	// IP addresses will be considered internal.
	CidrRanges    []*v3.CidrRange `protobuf:"bytes,2,rep,name=cidr_ranges,json=cidrRanges,proto3" json:"cidr_ranges,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HttpConnectionManager_InternalAddressConfig) Reset() {
	*x = HttpConnectionManager_InternalAddressConfig{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_InternalAddressConfig) ProtoMessage() {}

func (x *HttpConnectionManager_InternalAddressConfig) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[11]
	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 HttpConnectionManager_InternalAddressConfig.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_InternalAddressConfig) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 1}
}

func (x *HttpConnectionManager_InternalAddressConfig) GetUnixSockets() bool {
	if x != nil {
		return x.UnixSockets
	}
	return false
}

func (x *HttpConnectionManager_InternalAddressConfig) GetCidrRanges() []*v3.CidrRange {
	if x != nil {
		return x.CidrRanges
	}
	return nil
}

// [#next-free-field: 7]
type HttpConnectionManager_SetCurrentClientCertDetails struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether to forward the subject of the client cert. Defaults to false.
	Subject *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"`
	// Whether to forward the entire client cert in URL encoded PEM format. This will appear in the
	// XFCC header comma separated from other values with the value Cert="PEM".
	// Defaults to false.
	Cert bool `protobuf:"varint,3,opt,name=cert,proto3" json:"cert,omitempty"`
	// Whether to forward the entire client cert chain (including the leaf cert) in URL encoded PEM
	// format. This will appear in the XFCC header comma separated from other values with the value
	// Chain="PEM".
	// Defaults to false.
	Chain bool `protobuf:"varint,6,opt,name=chain,proto3" json:"chain,omitempty"`
	// Whether to forward the DNS type Subject Alternative Names of the client cert.
	// Defaults to false.
	Dns bool `protobuf:"varint,4,opt,name=dns,proto3" json:"dns,omitempty"`
	// Whether to forward the URI type Subject Alternative Name of the client cert. Defaults to
	// false.
	Uri           bool `protobuf:"varint,5,opt,name=uri,proto3" json:"uri,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HttpConnectionManager_SetCurrentClientCertDetails) Reset() {
	*x = HttpConnectionManager_SetCurrentClientCertDetails{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_SetCurrentClientCertDetails) ProtoMessage() {}

func (x *HttpConnectionManager_SetCurrentClientCertDetails) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[12]
	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 HttpConnectionManager_SetCurrentClientCertDetails.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_SetCurrentClientCertDetails) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 2}
}

func (x *HttpConnectionManager_SetCurrentClientCertDetails) GetSubject() *wrapperspb.BoolValue {
	if x != nil {
		return x.Subject
	}
	return nil
}

func (x *HttpConnectionManager_SetCurrentClientCertDetails) GetCert() bool {
	if x != nil {
		return x.Cert
	}
	return false
}

func (x *HttpConnectionManager_SetCurrentClientCertDetails) GetChain() bool {
	if x != nil {
		return x.Chain
	}
	return false
}

func (x *HttpConnectionManager_SetCurrentClientCertDetails) GetDns() bool {
	if x != nil {
		return x.Dns
	}
	return false
}

func (x *HttpConnectionManager_SetCurrentClientCertDetails) GetUri() bool {
	if x != nil {
		return x.Uri
	}
	return false
}

// The configuration for forwarding client cert details.
type HttpConnectionManager_ForwardClientCertConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// How to handle the XFCC header.
	ForwardClientCertDetails HttpConnectionManager_ForwardClientCertDetails `protobuf:"varint,1,opt,name=forward_client_cert_details,json=forwardClientCertDetails,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_ForwardClientCertDetails" json:"forward_client_cert_details,omitempty"`
	// How to set the current client cert details.
	SetCurrentClientCertDetails *HttpConnectionManager_SetCurrentClientCertDetails `protobuf:"bytes,2,opt,name=set_current_client_cert_details,json=setCurrentClientCertDetails,proto3" json:"set_current_client_cert_details,omitempty"`
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

func (x *HttpConnectionManager_ForwardClientCertConfig) Reset() {
	*x = HttpConnectionManager_ForwardClientCertConfig{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_ForwardClientCertConfig) ProtoMessage() {}

func (x *HttpConnectionManager_ForwardClientCertConfig) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[13]
	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 HttpConnectionManager_ForwardClientCertConfig.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_ForwardClientCertConfig) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 3}
}

func (x *HttpConnectionManager_ForwardClientCertConfig) GetForwardClientCertDetails() HttpConnectionManager_ForwardClientCertDetails {
	if x != nil {
		return x.ForwardClientCertDetails
	}
	return HttpConnectionManager_SANITIZE
}

func (x *HttpConnectionManager_ForwardClientCertConfig) GetSetCurrentClientCertDetails() *HttpConnectionManager_SetCurrentClientCertDetails {
	if x != nil {
		return x.SetCurrentClientCertDetails
	}
	return nil
}

// The configuration for HTTP upgrades.
// For each upgrade type desired, an UpgradeConfig must be added.
//
// .. warning::
//
//	The current implementation of upgrade headers does not handle multi-valued upgrade headers. Support for
//	multi-valued headers may be added in the future if needed.
//
// .. warning::
//
//	The current implementation of upgrade headers does not work with HTTP/2 upstreams.
type HttpConnectionManager_UpgradeConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The case-insensitive name of this upgrade, e.g. "websocket".
	// For each upgrade type present in upgrade_configs, requests with
	// Upgrade: [upgrade_type]
	// will be proxied upstream.
	UpgradeType string `protobuf:"bytes,1,opt,name=upgrade_type,json=upgradeType,proto3" json:"upgrade_type,omitempty"`
	// If present, this represents the filter chain which will be created for
	// this type of upgrade. If no filters are present, the filter chain for
	// HTTP connections will be used for this upgrade type.
	Filters []*HttpFilter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
	// Determines if upgrades are enabled or disabled by default. Defaults to true.
	// This can be overridden on a per-route basis with :ref:`cluster
	// <envoy_v3_api_field_config.route.v3.RouteAction.upgrade_configs>` as documented in the
	// :ref:`upgrade documentation <arch_overview_upgrades>`.
	Enabled       *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HttpConnectionManager_UpgradeConfig) Reset() {
	*x = HttpConnectionManager_UpgradeConfig{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_UpgradeConfig) ProtoMessage() {}

func (x *HttpConnectionManager_UpgradeConfig) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[14]
	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 HttpConnectionManager_UpgradeConfig.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_UpgradeConfig) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 4}
}

func (x *HttpConnectionManager_UpgradeConfig) GetUpgradeType() string {
	if x != nil {
		return x.UpgradeType
	}
	return ""
}

func (x *HttpConnectionManager_UpgradeConfig) GetFilters() []*HttpFilter {
	if x != nil {
		return x.Filters
	}
	return nil
}

func (x *HttpConnectionManager_UpgradeConfig) GetEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

// [#not-implemented-hide:] Transformations that apply to path headers. Transformations are applied
// before any processing of requests by HTTP filters, routing, and matching. Only the normalized
// path will be visible internally if a transformation is enabled. Any path rewrites that the
// router performs (e.g. :ref:`regex_rewrite
// <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>` or :ref:`prefix_rewrite
// <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`) will apply to the “:path“ header
// destined for the upstream.
//
// .. note::
//
//	Access logging and tracing will show the original ``:path`` header.
type HttpConnectionManager_PathNormalizationOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [#not-implemented-hide:] Normalization applies internally before any processing of requests by
	// HTTP filters, routing, and matching *and* will affect the forwarded “:path“ header. Defaults
	// to :ref:`NormalizePathRFC3986
	// <envoy_v3_api_msg_type.http.v3.PathTransformation.Operation.NormalizePathRFC3986>`. When not
	// specified, this value may be overridden by the runtime variable
	// :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`.
	// Envoy will respond with 400 to paths that are malformed (e.g. for paths that fail RFC 3986
	// normalization due to disallowed characters.)
	ForwardingTransformation *v37.PathTransformation `protobuf:"bytes,1,opt,name=forwarding_transformation,json=forwardingTransformation,proto3" json:"forwarding_transformation,omitempty"`
	// [#not-implemented-hide:] Normalization only applies internally before any processing of
	// requests by HTTP filters, routing, and matching. These will be applied after full
	// transformation is applied. The “:path“ header before this transformation will be restored in
	// the router filter and sent upstream unless it was mutated by a filter. Defaults to no
	// transformations.
	// Multiple actions can be applied in the same Transformation, forming a sequential
	// pipeline. The transformations will be performed in the order that they appear. Envoy will
	// respond with 400 to paths that are malformed (e.g. for paths that fail RFC 3986
	// normalization due to disallowed characters.)
	HttpFilterTransformation *v37.PathTransformation `protobuf:"bytes,2,opt,name=http_filter_transformation,json=httpFilterTransformation,proto3" json:"http_filter_transformation,omitempty"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

func (x *HttpConnectionManager_PathNormalizationOptions) Reset() {
	*x = HttpConnectionManager_PathNormalizationOptions{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_PathNormalizationOptions) ProtoMessage() {}

func (x *HttpConnectionManager_PathNormalizationOptions) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[15]
	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 HttpConnectionManager_PathNormalizationOptions.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_PathNormalizationOptions) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 5}
}

func (x *HttpConnectionManager_PathNormalizationOptions) GetForwardingTransformation() *v37.PathTransformation {
	if x != nil {
		return x.ForwardingTransformation
	}
	return nil
}

func (x *HttpConnectionManager_PathNormalizationOptions) GetHttpFilterTransformation() *v37.PathTransformation {
	if x != nil {
		return x.HttpFilterTransformation
	}
	return nil
}

// Configures the manner in which the Proxy-Status HTTP response header is
// populated.
//
// See the [Proxy-Status
// RFC](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-proxy-status-08).
// [#comment:TODO: Update this with the non-draft URL when finalized.]
//
// The Proxy-Status header is a string of the form:
//
//	"<server_name>; error=<error_type>; details=<details>"
//
// [#next-free-field: 7]
type HttpConnectionManager_ProxyStatusConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// If true, the details field of the Proxy-Status header is not populated with stream_info.response_code_details.
	// This value defaults to “false“, i.e. the “details“ field is populated by default.
	RemoveDetails bool `protobuf:"varint,1,opt,name=remove_details,json=removeDetails,proto3" json:"remove_details,omitempty"`
	// If true, the details field of the Proxy-Status header will not contain
	// connection termination details. This value defaults to “false“, i.e. the
	// “details“ field will contain connection termination details by default.
	RemoveConnectionTerminationDetails bool `protobuf:"varint,2,opt,name=remove_connection_termination_details,json=removeConnectionTerminationDetails,proto3" json:"remove_connection_termination_details,omitempty"`
	// If true, the details field of the Proxy-Status header will not contain an
	// enumeration of the Envoy ResponseFlags. This value defaults to “false“,
	// i.e. the “details“ field will contain a list of ResponseFlags by default.
	RemoveResponseFlags bool `protobuf:"varint,3,opt,name=remove_response_flags,json=removeResponseFlags,proto3" json:"remove_response_flags,omitempty"`
	// If true, overwrites the existing Status header with the response code
	// recommended by the Proxy-Status spec.
	// This value defaults to “false“, i.e. the HTTP response code is not
	// overwritten.
	SetRecommendedResponseCode bool `protobuf:"varint,4,opt,name=set_recommended_response_code,json=setRecommendedResponseCode,proto3" json:"set_recommended_response_code,omitempty"`
	// The name of the proxy as it appears at the start of the Proxy-Status
	// header.
	//
	// If neither of these values are set, this value defaults to “server_name“,
	// which itself defaults to "envoy".
	//
	// Types that are valid to be assigned to ProxyName:
	//
	//	*HttpConnectionManager_ProxyStatusConfig_UseNodeId
	//	*HttpConnectionManager_ProxyStatusConfig_LiteralProxyName
	ProxyName     isHttpConnectionManager_ProxyStatusConfig_ProxyName `protobuf_oneof:"proxy_name"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HttpConnectionManager_ProxyStatusConfig) Reset() {
	*x = HttpConnectionManager_ProxyStatusConfig{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_ProxyStatusConfig) ProtoMessage() {}

func (x *HttpConnectionManager_ProxyStatusConfig) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[16]
	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 HttpConnectionManager_ProxyStatusConfig.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_ProxyStatusConfig) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 6}
}

func (x *HttpConnectionManager_ProxyStatusConfig) GetRemoveDetails() bool {
	if x != nil {
		return x.RemoveDetails
	}
	return false
}

func (x *HttpConnectionManager_ProxyStatusConfig) GetRemoveConnectionTerminationDetails() bool {
	if x != nil {
		return x.RemoveConnectionTerminationDetails
	}
	return false
}

func (x *HttpConnectionManager_ProxyStatusConfig) GetRemoveResponseFlags() bool {
	if x != nil {
		return x.RemoveResponseFlags
	}
	return false
}

func (x *HttpConnectionManager_ProxyStatusConfig) GetSetRecommendedResponseCode() bool {
	if x != nil {
		return x.SetRecommendedResponseCode
	}
	return false
}

func (x *HttpConnectionManager_ProxyStatusConfig) GetProxyName() isHttpConnectionManager_ProxyStatusConfig_ProxyName {
	if x != nil {
		return x.ProxyName
	}
	return nil
}

func (x *HttpConnectionManager_ProxyStatusConfig) GetUseNodeId() bool {
	if x != nil {
		if x, ok := x.ProxyName.(*HttpConnectionManager_ProxyStatusConfig_UseNodeId); ok {
			return x.UseNodeId
		}
	}
	return false
}

func (x *HttpConnectionManager_ProxyStatusConfig) GetLiteralProxyName() string {
	if x != nil {
		if x, ok := x.ProxyName.(*HttpConnectionManager_ProxyStatusConfig_LiteralProxyName); ok {
			return x.LiteralProxyName
		}
	}
	return ""
}

type isHttpConnectionManager_ProxyStatusConfig_ProxyName interface {
	isHttpConnectionManager_ProxyStatusConfig_ProxyName()
}

type HttpConnectionManager_ProxyStatusConfig_UseNodeId struct {
	// If “use_node_id“ is set, Proxy-Status headers will use the Envoy's node
	// ID as the name of the proxy.
	UseNodeId bool `protobuf:"varint,5,opt,name=use_node_id,json=useNodeId,proto3,oneof"`
}

type HttpConnectionManager_ProxyStatusConfig_LiteralProxyName struct {
	// If “literal_proxy_name“ is set, Proxy-Status headers will use this
	// value as the name of the proxy.
	LiteralProxyName string `protobuf:"bytes,6,opt,name=literal_proxy_name,json=literalProxyName,proto3,oneof"`
}

func (*HttpConnectionManager_ProxyStatusConfig_UseNodeId) isHttpConnectionManager_ProxyStatusConfig_ProxyName() {
}

func (*HttpConnectionManager_ProxyStatusConfig_LiteralProxyName) isHttpConnectionManager_ProxyStatusConfig_ProxyName() {
}

type HttpConnectionManager_HcmAccessLogOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The interval to flush the above access logs. By default, the HCM will flush exactly one access log
	// on stream close, when the HTTP request is complete. If this field is set, the HCM will flush access
	// logs periodically at the specified interval. This is especially useful in the case of long-lived
	// requests, such as CONNECT and Websockets. Final access logs can be detected via the
	// “requestComplete()“ method of “StreamInfo“ in access log filters, or through the “%DURATION%“ substitution
	// string.
	// The interval must be at least 1 millisecond.
	AccessLogFlushInterval *durationpb.Duration `protobuf:"bytes,1,opt,name=access_log_flush_interval,json=accessLogFlushInterval,proto3" json:"access_log_flush_interval,omitempty"`
	// If set to true, HCM will flush an access log when a new HTTP request is received, after request
	// headers have been evaluated, before iterating through the HTTP filter chain.
	// This log record, if enabled, does not depend on periodic log records or request completion log.
	// Details related to upstream cluster, such as upstream host, will not be available for this log.
	FlushAccessLogOnNewRequest bool `protobuf:"varint,2,opt,name=flush_access_log_on_new_request,json=flushAccessLogOnNewRequest,proto3" json:"flush_access_log_on_new_request,omitempty"`
	// If true, the HCM will flush an access log when a tunnel is successfully established. For example,
	// this could be when an upstream has successfully returned 101 Switching Protocols, or when the proxy
	// has returned 200 to a CONNECT request.
	FlushLogOnTunnelSuccessfullyEstablished bool `protobuf:"varint,3,opt,name=flush_log_on_tunnel_successfully_established,json=flushLogOnTunnelSuccessfullyEstablished,proto3" json:"flush_log_on_tunnel_successfully_established,omitempty"`
	unknownFields                           protoimpl.UnknownFields
	sizeCache                               protoimpl.SizeCache
}

func (x *HttpConnectionManager_HcmAccessLogOptions) Reset() {
	*x = HttpConnectionManager_HcmAccessLogOptions{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HttpConnectionManager_HcmAccessLogOptions) ProtoMessage() {}

func (x *HttpConnectionManager_HcmAccessLogOptions) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[17]
	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 HttpConnectionManager_HcmAccessLogOptions.ProtoReflect.Descriptor instead.
func (*HttpConnectionManager_HcmAccessLogOptions) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{0, 7}
}

func (x *HttpConnectionManager_HcmAccessLogOptions) GetAccessLogFlushInterval() *durationpb.Duration {
	if x != nil {
		return x.AccessLogFlushInterval
	}
	return nil
}

func (x *HttpConnectionManager_HcmAccessLogOptions) GetFlushAccessLogOnNewRequest() bool {
	if x != nil {
		return x.FlushAccessLogOnNewRequest
	}
	return false
}

func (x *HttpConnectionManager_HcmAccessLogOptions) GetFlushLogOnTunnelSuccessfullyEstablished() bool {
	if x != nil {
		return x.FlushLogOnTunnelSuccessfullyEstablished
	}
	return false
}

// Specifies the mechanism for constructing "scope keys" based on HTTP request attributes. These
// keys are matched against a set of :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>`
// objects assembled from :ref:`ScopedRouteConfiguration<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration>`
// messages distributed via SRDS (the Scoped Route Discovery Service) or assigned statically via
// :ref:`scoped_route_configurations_list<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`.
//
// Upon receiving a request's headers, the Router will build a key using the algorithm specified
// by this message. This key will be used to look up the routing table (i.e., the
// :ref:`RouteConfiguration<envoy_v3_api_msg_config.route.v3.RouteConfiguration>`) to use for the request.
type ScopedRoutes_ScopeKeyBuilder struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The final(built) scope key consists of the ordered union of these fragments, which are compared in order with the
	// fragments of a :ref:`ScopedRouteConfiguration<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration>`.
	// A missing fragment during comparison will make the key invalid, i.e., the computed key doesn't match any key.
	Fragments     []*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder `protobuf:"bytes,1,rep,name=fragments,proto3" json:"fragments,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ScopedRoutes_ScopeKeyBuilder) Reset() {
	*x = ScopedRoutes_ScopeKeyBuilder{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScopedRoutes_ScopeKeyBuilder) ProtoMessage() {}

func (x *ScopedRoutes_ScopeKeyBuilder) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[18]
	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 ScopedRoutes_ScopeKeyBuilder.ProtoReflect.Descriptor instead.
func (*ScopedRoutes_ScopeKeyBuilder) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{5, 0}
}

func (x *ScopedRoutes_ScopeKeyBuilder) GetFragments() []*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder {
	if x != nil {
		return x.Fragments
	}
	return nil
}

// Specifies the mechanism for constructing key fragments which are composed into scope keys.
type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Type:
	//
	//	*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_
	Type          isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type `protobuf_oneof:"type"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) Reset() {
	*x = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) ProtoMessage() {}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[19]
	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 ScopedRoutes_ScopeKeyBuilder_FragmentBuilder.ProtoReflect.Descriptor instead.
func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{5, 0, 0}
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) GetType() isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) GetHeaderValueExtractor() *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor {
	if x != nil {
		if x, ok := x.Type.(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_); ok {
			return x.HeaderValueExtractor
		}
	}
	return nil
}

type isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type interface {
	isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type()
}

type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ struct {
	// Specifies how a header field's value should be extracted.
	HeaderValueExtractor *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor `protobuf:"bytes,1,opt,name=header_value_extractor,json=headerValueExtractor,proto3,oneof"`
}

func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_) isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type() {
}

// Specifies how the value of a header should be extracted.
// The following example maps the structure of a header to the fields in this message.
//
// .. code::
//
//	          <0> <1>   <-- index
//	X-Header: a=b;c=d
//	|         || |
//	|         || \----> <element_separator>
//	|         ||
//	|         |\----> <element.separator>
//	|         |
//	|         \----> <element.key>
//	|
//	\----> <name>
//
//	Each 'a=b' key-value pair constitutes an 'element' of the header field.
type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the header field to extract the value from.
	//
	// .. note::
	//
	//	If the header appears multiple times only the first value is used.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The element separator (e.g., ';' separates 'a;b;c;d').
	// Default: empty string. This causes the entirety of the header field to be extracted.
	// If this field is set to an empty string and 'index' is used in the oneof below, 'index'
	// must be set to 0.
	ElementSeparator string `protobuf:"bytes,2,opt,name=element_separator,json=elementSeparator,proto3" json:"element_separator,omitempty"`
	// Types that are valid to be assigned to ExtractType:
	//
	//	*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index
	//	*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element
	ExtractType   isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType `protobuf_oneof:"extract_type"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) Reset() {
	*x = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) ProtoMessage() {}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[20]
	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 ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.ProtoReflect.Descriptor instead.
func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{5, 0, 0, 0}
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetElementSeparator() string {
	if x != nil {
		return x.ElementSeparator
	}
	return ""
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetExtractType() isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType {
	if x != nil {
		return x.ExtractType
	}
	return nil
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetIndex() uint32 {
	if x != nil {
		if x, ok := x.ExtractType.(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index); ok {
			return x.Index
		}
	}
	return 0
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetElement() *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement {
	if x != nil {
		if x, ok := x.ExtractType.(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element); ok {
			return x.Element
		}
	}
	return nil
}

type isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType interface {
	isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType()
}

type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index struct {
	// Specifies the zero based index of the element to extract.
	// Note Envoy concatenates multiple values of the same header key into a comma separated
	// string, the splitting always happens after the concatenation.
	Index uint32 `protobuf:"varint,3,opt,name=index,proto3,oneof"`
}

type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element struct {
	// Specifies the key value pair to extract the value from.
	Element *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement `protobuf:"bytes,4,opt,name=element,proto3,oneof"`
}

func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index) isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType() {
}

func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element) isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType() {
}

// Specifies a header field's key value pair to match on.
type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The separator between key and value (e.g., '=' separates 'k=v;...').
	// If an element is an empty string, the element is ignored.
	// If an element contains no separator, the whole element is parsed as key and the
	// fragment value is an empty string.
	// If there are multiple values for a matched key, the first value is returned.
	Separator string `protobuf:"bytes,1,opt,name=separator,proto3" json:"separator,omitempty"`
	// The key to match on.
	Key           string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) Reset() {
	*x = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement{}
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) ProtoMessage() {}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) ProtoReflect() protoreflect.Message {
	mi := &file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[21]
	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 ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.ProtoReflect.Descriptor instead.
func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP(), []int{5, 0, 0, 0, 0}
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) GetSeparator() string {
	if x != nil {
		return x.Separator
	}
	return ""
}

func (x *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

var File_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto protoreflect.FileDescriptor

const file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDesc = "" +
	"\n" +
	"Yenvoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto\x12;envoy.extensions.filters.network.http_connection_manager.v3\x1a)envoy/config/accesslog/v3/accesslog.proto\x1a\"envoy/config/core/v3/address.proto\x1a\x1fenvoy/config/core/v3/base.proto\x1a(envoy/config/core/v3/config_source.proto\x1a$envoy/config/core/v3/extension.proto\x1a#envoy/config/core/v3/protocol.proto\x1a5envoy/config/core/v3/substitution_format_string.proto\x1a!envoy/config/route/v3/route.proto\x1a(envoy/config/route/v3/scoped_route.proto\x1a'envoy/config/trace/v3/http_tracer.proto\x1a,envoy/type/http/v3/path_transformation.proto\x1a&envoy/type/tracing/v3/custom_tag.proto\x1a\x1benvoy/type/v3/percent.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a!xds/type/matcher/v3/matcher.proto\x1a#envoy/annotations/deprecation.proto\x1a\x1eudpa/annotations/migrate.proto\x1a\x1fudpa/annotations/security.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\x95G\n" +
	"\x15HttpConnectionManager\x12\x85\x01\n" +
	"\n" +
	"codec_type\x18\x01 \x01(\x0e2\\.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.CodecTypeB\b\xfaB\x05\x82\x01\x02\x10\x01R\tcodecType\x12(\n" +
	"\vstat_prefix\x18\x02 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" +
	"statPrefix\x12T\n" +
	"\x03rds\x18\x03 \x01(\v2@.envoy.extensions.filters.network.http_connection_manager.v3.RdsH\x00R\x03rds\x12N\n" +
	"\froute_config\x18\x04 \x01(\v2).envoy.config.route.v3.RouteConfigurationH\x00R\vrouteConfig\x12p\n" +
	"\rscoped_routes\x18\x1f \x01(\v2I.envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutesH\x00R\fscopedRoutes\x12j\n" +
	"\fhttp_filters\x18\x05 \x03(\v2G.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilterR\vhttpFilters\x12@\n" +
	"\x0eadd_user_agent\x18\x06 \x01(\v2\x1a.google.protobuf.BoolValueR\faddUserAgent\x12t\n" +
	"\atracing\x18\a \x01(\v2Z.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.TracingR\atracing\x12s\n" +
	"\x1ccommon_http_protocol_options\x18# \x01(\v2).envoy.config.core.v3.HttpProtocolOptionsB\a\x8a\x93\xb7*\x02\b\x01R\x19commonHttpProtocolOptions\x12J\n" +
	"\"http1_safe_max_connection_duration\x18: \x01(\bR\x1ehttp1SafeMaxConnectionDuration\x12^\n" +
	"\x15http_protocol_options\x18\b \x01(\v2*.envoy.config.core.v3.Http1ProtocolOptionsR\x13httpProtocolOptions\x12i\n" +
	"\x16http2_protocol_options\x18\t \x01(\v2*.envoy.config.core.v3.Http2ProtocolOptionsB\a\x8a\x93\xb7*\x02\b\x01R\x14http2ProtocolOptions\x12`\n" +
	"\x16http3_protocol_options\x18, \x01(\v2*.envoy.config.core.v3.Http3ProtocolOptionsR\x14http3ProtocolOptions\x12,\n" +
	"\vserver_name\x18\n" +
	" \x01(\tB\v\xfaB\br\x06\xc8\x01\x00\xc0\x01\x02R\n" +
	"serverName\x12\xb9\x01\n" +
	"\x1cserver_header_transformation\x18\" \x01(\x0e2m.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ServerHeaderTransformationB\b\xfaB\x05\x82\x01\x02\x10\x01R\x1aserverHeaderTransformation\x12r\n" +
	"\x1cscheme_header_transformation\x180 \x01(\v20.envoy.config.core.v3.SchemeHeaderTransformationR\x1aschemeHeaderTransformation\x12]\n" +
	"\x16max_request_headers_kb\x18\x1d \x01(\v2\x1c.google.protobuf.UInt32ValueB\n" +
	"\xfaB\a*\x05\x18\x80@ \x00R\x13maxRequestHeadersKb\x12R\n" +
	"\x13stream_idle_timeout\x18\x18 \x01(\v2\x19.google.protobuf.DurationB\a\x8a\x93\xb7*\x02\b\x01R\x11streamIdleTimeout\x12K\n" +
	"\x14stream_flush_timeout\x18; \x01(\v2\x19.google.protobuf.DurationR\x12streamFlushTimeout\x12K\n" +
	"\x0frequest_timeout\x18\x1c \x01(\v2\x19.google.protobuf.DurationB\a\x8a\x93\xb7*\x02\b\x01R\x0erequestTimeout\x12b\n" +
	"\x17request_headers_timeout\x18) \x01(\v2\x19.google.protobuf.DurationB\x0f\xfaB\x05\xaa\x01\x022\x00\x8a\x93\xb7*\x02\b\x01R\x15requestHeadersTimeout\x12>\n" +
	"\rdrain_timeout\x18\f \x01(\v2\x19.google.protobuf.DurationR\fdrainTimeout\x12M\n" +
	"\x15delayed_close_timeout\x18\x1a \x01(\v2\x19.google.protobuf.DurationR\x13delayedCloseTimeout\x12C\n" +
	"\n" +
	"access_log\x18\r \x03(\v2$.envoy.config.accesslog.v3.AccessLogR\taccessLog\x12m\n" +
	"\x19access_log_flush_interval\x186 \x01(\v2\x19.google.protobuf.DurationB\x17\xfaB\t\xaa\x01\x062\x04\x10\xc0\x84=\x92ǆ\xd8\x04\x033.0\x18\x01R\x16accessLogFlushInterval\x12P\n" +
	"\x1fflush_access_log_on_new_request\x187 \x01(\bB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\x1aflushAccessLogOnNewRequest\x12\x94\x01\n" +
	"\x12access_log_options\x188 \x01(\v2f.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptionsR\x10accessLogOptions\x12Q\n" +
	"\x12use_remote_address\x18\x0e \x01(\v2\x1a.google.protobuf.BoolValueB\a\x8a\x93\xb7*\x02\b\x01R\x10useRemoteAddress\x12/\n" +
	"\x14xff_num_trusted_hops\x18\x13 \x01(\rR\x11xffNumTrustedHops\x12s\n" +
	" original_ip_detection_extensions\x18. \x03(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x1doriginalIpDetectionExtensions\x12s\n" +
	" early_header_mutation_extensions\x184 \x03(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x1dearlyHeaderMutationExtensions\x12\xa0\x01\n" +
	"\x17internal_address_config\x18\x19 \x01(\v2h.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.InternalAddressConfigR\x15internalAddressConfig\x12&\n" +
	"\x0fskip_xff_append\x18\x15 \x01(\bR\rskipXffAppend\x12\x1d\n" +
	"\x03via\x18\x16 \x01(\tB\v\xfaB\br\x06\xc8\x01\x00\xc0\x01\x02R\x03via\x12J\n" +
	"\x13generate_request_id\x18\x0f \x01(\v2\x1a.google.protobuf.BoolValueR\x11generateRequestId\x12?\n" +
	"\x1cpreserve_external_request_id\x18  \x01(\bR\x19preserveExternalRequestId\x12G\n" +
	"!always_set_request_id_in_response\x18% \x01(\bR\x1calwaysSetRequestIdInResponse\x12\xb4\x01\n" +
	"\x1bforward_client_cert_details\x18\x10 \x01(\x0e2k.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertDetailsB\b\xfaB\x05\x82\x01\x02\x10\x01R\x18forwardClientCertDetails\x12\xb4\x01\n" +
	"\x1fset_current_client_cert_details\x18\x11 \x01(\v2n.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.SetCurrentClientCertDetailsR\x1bsetCurrentClientCertDetails\x12[\n" +
	"\x1bforward_client_cert_matcher\x18< \x01(\v2\x1c.xds.type.matcher.v3.MatcherR\x18forwardClientCertMatcher\x12,\n" +
	"\x12proxy_100_continue\x18\x12 \x01(\bR\x10proxy100Continue\x12e\n" +
	"1represent_ipv4_remote_address_as_ipv4_mapped_ipv6\x18\x14 \x01(\bR*representIpv4RemoteAddressAsIpv4MappedIpv6\x12\x89\x01\n" +
	"\x0fupgrade_configs\x18\x17 \x03(\v2`.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.UpgradeConfigR\x0eupgradeConfigs\x12A\n" +
	"\x0enormalize_path\x18\x1e \x01(\v2\x1a.google.protobuf.BoolValueR\rnormalizePath\x12#\n" +
	"\rmerge_slashes\x18! \x01(\bR\fmergeSlashes\x12\xb7\x01\n" +
	" path_with_escaped_slashes_action\x18- \x01(\x0e2o.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathWithEscapedSlashesActionR\x1cpathWithEscapedSlashesAction\x12\x81\x01\n" +
	"\x14request_id_extension\x18$ \x01(\v2O.envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtensionR\x12requestIdExtension\x12{\n" +
	"\x12local_reply_config\x18& \x01(\v2M.envoy.extensions.filters.network.http_connection_manager.v3.LocalReplyConfigR\x10localReplyConfig\x12P\n" +
	"\x18strip_matching_host_port\x18' \x01(\bB\x17\xf2\x98\xfe\x8f\x05\x11\x12\x0fstrip_port_modeR\x15stripMatchingHostPort\x12/\n" +
	"\x13strip_any_host_port\x18* \x01(\bH\x01R\x10stripAnyHostPort\x12i\n" +
	"$stream_error_on_invalid_http_message\x18( \x01(\v2\x1a.google.protobuf.BoolValueR\x1fstreamErrorOnInvalidHttpMessage\x12\xa9\x01\n" +
	"\x1apath_normalization_options\x18+ \x01(\v2k.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathNormalizationOptionsR\x18pathNormalizationOptions\x125\n" +
	"\x17strip_trailing_host_dot\x18/ \x01(\bR\x14stripTrailingHostDot\x12\x94\x01\n" +
	"\x13proxy_status_config\x181 \x01(\v2d.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ProxyStatusConfigR\x11proxyStatusConfig\x12o\n" +
	"\x1etyped_header_validation_config\x182 \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x1btypedHeaderValidationConfig\x125\n" +
	"\x17append_x_forwarded_port\x183 \x01(\bR\x14appendXForwardedPort\x122\n" +
	"\x15append_local_overload\x189 \x01(\bR\x13appendLocalOverload\x12h\n" +
	"#add_proxy_protocol_connection_state\x185 \x01(\v2\x1a.google.protobuf.BoolValueR\x1faddProxyProtocolConnectionState\x1a\x8f\x06\n" +
	"\aTracing\x12?\n" +
	"\x0fclient_sampling\x18\x03 \x01(\v2\x16.envoy.type.v3.PercentR\x0eclientSampling\x12?\n" +
	"\x0frandom_sampling\x18\x04 \x01(\v2\x16.envoy.type.v3.PercentR\x0erandomSampling\x12A\n" +
	"\x10overall_sampling\x18\x05 \x01(\v2\x16.envoy.type.v3.PercentR\x0foverallSampling\x12\x18\n" +
	"\averbose\x18\x06 \x01(\bR\averbose\x12K\n" +
	"\x13max_path_tag_length\x18\a \x01(\v2\x1c.google.protobuf.UInt32ValueR\x10maxPathTagLength\x12A\n" +
	"\vcustom_tags\x18\b \x03(\v2 .envoy.type.tracing.v3.CustomTagR\n" +
	"customTags\x12?\n" +
	"\bprovider\x18\t \x01(\v2#.envoy.config.trace.v3.Tracing.HttpR\bprovider\x12J\n" +
	"\x13spawn_upstream_span\x18\n" +
	" \x01(\v2\x1a.google.protobuf.BoolValueR\x11spawnUpstreamSpan\x12\x1c\n" +
	"\toperation\x18\v \x01(\tR\toperation\x12-\n" +
	"\x12upstream_operation\x18\f \x01(\tR\x11upstreamOperation\"(\n" +
	"\rOperationName\x12\v\n" +
	"\aINGRESS\x10\x00\x12\n" +
	"\n" +
	"\x06EGRESS\x10\x01:[\x9aň\x1eV\n" +
	"Tenvoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.TracingJ\x04\b\x01\x10\x02J\x04\b\x02\x10\x03R\x0eoperation_nameR\x18request_headers_for_tags\x1a\xe7\x01\n" +
	"\x15InternalAddressConfig\x12!\n" +
	"\funix_sockets\x18\x01 \x01(\bR\vunixSockets\x12@\n" +
	"\vcidr_ranges\x18\x02 \x03(\v2\x1f.envoy.config.core.v3.CidrRangeR\n" +
	"cidrRanges:i\x9aň\x1ed\n" +
	"benvoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.InternalAddressConfig\x1a\x98\x02\n" +
	"\x1bSetCurrentClientCertDetails\x124\n" +
	"\asubject\x18\x01 \x01(\v2\x1a.google.protobuf.BoolValueR\asubject\x12\x12\n" +
	"\x04cert\x18\x03 \x01(\bR\x04cert\x12\x14\n" +
	"\x05chain\x18\x06 \x01(\bR\x05chain\x12\x10\n" +
	"\x03dns\x18\x04 \x01(\bR\x03dns\x12\x10\n" +
	"\x03uri\x18\x05 \x01(\bR\x03uri:o\x9aň\x1ej\n" +
	"henvoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.SetCurrentClientCertDetailsJ\x04\b\x02\x10\x03\x1a\xfd\x02\n" +
	"\x17ForwardClientCertConfig\x12\xaa\x01\n" +
	"\x1bforward_client_cert_details\x18\x01 \x01(\x0e2k.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertDetailsR\x18forwardClientCertDetails\x12\xb4\x01\n" +
	"\x1fset_current_client_cert_details\x18\x02 \x01(\v2n.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.SetCurrentClientCertDetailsR\x1bsetCurrentClientCertDetails\x1a\xae\x02\n" +
	"\rUpgradeConfig\x12!\n" +
	"\fupgrade_type\x18\x01 \x01(\tR\vupgradeType\x12a\n" +
	"\afilters\x18\x02 \x03(\v2G.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilterR\afilters\x124\n" +
	"\aenabled\x18\x03 \x01(\v2\x1a.google.protobuf.BoolValueR\aenabled:a\x9aň\x1e\\\n" +
	"Zenvoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.UpgradeConfig\x1a\xe5\x01\n" +
	"\x18PathNormalizationOptions\x12c\n" +
	"\x19forwarding_transformation\x18\x01 \x01(\v2&.envoy.type.http.v3.PathTransformationR\x18forwardingTransformation\x12d\n" +
	"\x1ahttp_filter_transformation\x18\x02 \x01(\v2&.envoy.type.http.v3.PathTransformationR\x18httpFilterTransformation\x1a\xe4\x02\n" +
	"\x11ProxyStatusConfig\x12%\n" +
	"\x0eremove_details\x18\x01 \x01(\bR\rremoveDetails\x12Q\n" +
	"%remove_connection_termination_details\x18\x02 \x01(\bR\"removeConnectionTerminationDetails\x122\n" +
	"\x15remove_response_flags\x18\x03 \x01(\bR\x13removeResponseFlags\x12A\n" +
	"\x1dset_recommended_response_code\x18\x04 \x01(\bR\x1asetRecommendedResponseCode\x12 \n" +
	"\vuse_node_id\x18\x05 \x01(\bH\x00R\tuseNodeId\x12.\n" +
	"\x12literal_proxy_name\x18\x06 \x01(\tH\x00R\x10literalProxyNameB\f\n" +
	"\n" +
	"proxy_name\x1a\x9d\x02\n" +
	"\x13HcmAccessLogOptions\x12b\n" +
	"\x19access_log_flush_interval\x18\x01 \x01(\v2\x19.google.protobuf.DurationB\f\xfaB\t\xaa\x01\x062\x04\x10\xc0\x84=R\x16accessLogFlushInterval\x12C\n" +
	"\x1fflush_access_log_on_new_request\x18\x02 \x01(\bR\x1aflushAccessLogOnNewRequest\x12]\n" +
	",flush_log_on_tunnel_successfully_established\x18\x03 \x01(\bR'flushLogOnTunnelSuccessfullyEstablished\"6\n" +
	"\tCodecType\x12\b\n" +
	"\x04AUTO\x10\x00\x12\t\n" +
	"\x05HTTP1\x10\x01\x12\t\n" +
	"\x05HTTP2\x10\x02\x12\t\n" +
	"\x05HTTP3\x10\x03\"S\n" +
	"\x1aServerHeaderTransformation\x12\r\n" +
	"\tOVERWRITE\x10\x00\x12\x14\n" +
	"\x10APPEND_IF_ABSENT\x10\x01\x12\x10\n" +
	"\fPASS_THROUGH\x10\x02\"y\n" +
	"\x18ForwardClientCertDetails\x12\f\n" +
	"\bSANITIZE\x10\x00\x12\x10\n" +
	"\fFORWARD_ONLY\x10\x01\x12\x12\n" +
	"\x0eAPPEND_FORWARD\x10\x02\x12\x10\n" +
	"\fSANITIZE_SET\x10\x03\x12\x17\n" +
	"\x13ALWAYS_FORWARD_ONLY\x10\x04\"\xa0\x01\n" +
	"\x1cPathWithEscapedSlashesAction\x12#\n" +
	"\x1fIMPLEMENTATION_SPECIFIC_DEFAULT\x10\x00\x12\x12\n" +
	"\x0eKEEP_UNCHANGED\x10\x01\x12\x12\n" +
	"\x0eREJECT_REQUEST\x10\x02\x12\x19\n" +
	"\x15UNESCAPE_AND_REDIRECT\x10\x03\x12\x18\n" +
	"\x14UNESCAPE_AND_FORWARD\x10\x04:S\x9aň\x1eN\n" +
	"Lenvoy.config.filter.network.http_connection_manager.v2.HttpConnectionManagerB\x16\n" +
	"\x0froute_specifier\x12\x03\xf8B\x01B\x11\n" +
	"\x0fstrip_port_modeJ\x04\b\x1b\x10\x1cJ\x04\b\v\x10\fR\fidle_timeout\"\xca\x01\n" +
	"\x10LocalReplyConfig\x12e\n" +
	"\amappers\x18\x01 \x03(\v2K.envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapperR\amappers\x12O\n" +
	"\vbody_format\x18\x02 \x01(\v2..envoy.config.core.v3.SubstitutionFormatStringR\n" +
	"bodyFormat\"\x9c\x03\n" +
	"\x0eResponseMapper\x12L\n" +
	"\x06filter\x18\x01 \x01(\v2*.envoy.config.accesslog.v3.AccessLogFilterB\b\xfaB\x05\x8a\x01\x02\x10\x01R\x06filter\x12J\n" +
	"\vstatus_code\x18\x02 \x01(\v2\x1c.google.protobuf.UInt32ValueB\v\xfaB\b*\x06\x10\xd8\x04(\xc8\x01R\n" +
	"statusCode\x124\n" +
	"\x04body\x18\x03 \x01(\v2 .envoy.config.core.v3.DataSourceR\x04body\x12`\n" +
	"\x14body_format_override\x18\x04 \x01(\v2..envoy.config.core.v3.SubstitutionFormatStringR\x12bodyFormatOverride\x12X\n" +
	"\x0eheaders_to_add\x18\x05 \x03(\v2'.envoy.config.core.v3.HeaderValueOptionB\t\xfaB\x06\x92\x01\x03\x10\xe8\aR\fheadersToAdd\"\xbd\x01\n" +
	"\x03Rds\x12G\n" +
	"\rconfig_source\x18\x01 \x01(\v2\".envoy.config.core.v3.ConfigSourceR\fconfigSource\x12*\n" +
	"\x11route_config_name\x18\x02 \x01(\tR\x0frouteConfigName:A\x9aň\x1e<\n" +
	":envoy.config.filter.network.http_connection_manager.v2.Rds\"\xf7\x01\n" +
	"\x1dScopedRouteConfigurationsList\x12y\n" +
	"\x1bscoped_route_configurations\x18\x01 \x03(\v2/.envoy.config.route.v3.ScopedRouteConfigurationB\b\xfaB\x05\x92\x01\x02\b\x01R\x19scopedRouteConfigurations:[\x9aň\x1eV\n" +
	"Tenvoy.config.filter.network.http_connection_manager.v2.ScopedRouteConfigurationsList\"\xe5\x0e\n" +
	"\fScopedRoutes\x12\x1b\n" +
	"\x04name\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x04name\x12\x8f\x01\n" +
	"\x11scope_key_builder\x18\x02 \x01(\v2Y.envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilderB\b\xfaB\x05\x8a\x01\x02\x10\x01R\x0fscopeKeyBuilder\x12N\n" +
	"\x11rds_config_source\x18\x03 \x01(\v2\".envoy.config.core.v3.ConfigSourceR\x0frdsConfigSource\x12\xa5\x01\n" +
	" scoped_route_configurations_list\x18\x04 \x01(\v2Z.envoy.extensions.filters.network.http_connection_manager.v3.ScopedRouteConfigurationsListH\x00R\x1dscopedRouteConfigurationsList\x12g\n" +
	"\n" +
	"scoped_rds\x18\x05 \x01(\v2F.envoy.extensions.filters.network.http_connection_manager.v3.ScopedRdsH\x00R\tscopedRds\x1a\xdf\t\n" +
	"\x0fScopeKeyBuilder\x12\x91\x01\n" +
	"\tfragments\x18\x01 \x03(\v2i.envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilderB\b\xfaB\x05\x92\x01\x02\b\x01R\tfragments\x1a\xdb\a\n" +
	"\x0fFragmentBuilder\x12\xb6\x01\n" +
	"\x16header_value_extractor\x18\x01 \x01(\v2~.envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractorH\x00R\x14headerValueExtractor\x1a\x95\x05\n" +
	"\x14HeaderValueExtractor\x12!\n" +
	"\x04name\x18\x01 \x01(\tB\r\xfaB\n" +
	"r\b\x10\x01\xc8\x01\x00\xc0\x01\x01R\x04name\x12+\n" +
	"\x11element_separator\x18\x02 \x01(\tR\x10elementSeparator\x12\x16\n" +
	"\x05index\x18\x03 \x01(\rH\x00R\x05index\x12\xa5\x01\n" +
	"\aelement\x18\x04 \x01(\v2\x88\x01.envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor.KvElementH\x00R\aelement\x1a\xdb\x01\n" +
	"\tKvElement\x12%\n" +
	"\tseparator\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\tseparator\x12\x19\n" +
	"\x03key\x18\x02 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x03key:\x8b\x01\x9aň\x1e\x85\x01\n" +
	"\x82\x01envoy.config.filter.network.http_connection_manager.v2.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor.KvElement:\x7f\x9aň\x1ez\n" +
	"xenvoy.config.filter.network.http_connection_manager.v2.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractorB\x0e\n" +
	"\fextract_type:j\x9aň\x1ee\n" +
	"cenvoy.config.filter.network.http_connection_manager.v2.ScopedRoutes.ScopeKeyBuilder.FragmentBuilderB\v\n" +
	"\x04type\x12\x03\xf8B\x01:Z\x9aň\x1eU\n" +
	"Senvoy.config.filter.network.http_connection_manager.v2.ScopedRoutes.ScopeKeyBuilder:J\x9aň\x1eE\n" +
	"Cenvoy.config.filter.network.http_connection_manager.v2.ScopedRoutesB\x17\n" +
	"\x10config_specifier\x12\x03\xf8B\x01\"\xf1\x01\n" +
	"\tScopedRds\x12e\n" +
	"\x18scoped_rds_config_source\x18\x01 \x01(\v2\".envoy.config.core.v3.ConfigSourceB\b\xfaB\x05\x8a\x01\x02\x10\x01R\x15scopedRdsConfigSource\x124\n" +
	"\x16srds_resources_locator\x18\x02 \x01(\tR\x14srdsResourcesLocator:G\x9aň\x1eB\n" +
	"@envoy.config.filter.network.http_connection_manager.v2.ScopedRds\"\xe8\x02\n" +
	"\n" +
	"HttpFilter\x12\x1b\n" +
	"\x04name\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x04name\x129\n" +
	"\ftyped_config\x18\x04 \x01(\v2\x14.google.protobuf.AnyH\x00R\vtypedConfig\x12X\n" +
	"\x10config_discovery\x18\x05 \x01(\v2+.envoy.config.core.v3.ExtensionConfigSourceH\x00R\x0fconfigDiscovery\x12\x1f\n" +
	"\vis_optional\x18\x06 \x01(\bR\n" +
	"isOptional\x12\x1a\n" +
	"\bdisabled\x18\a \x01(\bR\bdisabled:H\x9aň\x1eC\n" +
	"Aenvoy.config.filter.network.http_connection_manager.v2.HttpFilterB\r\n" +
	"\vconfig_typeJ\x04\b\x03\x10\x04J\x04\b\x02\x10\x03R\x06config\"\x9f\x01\n" +
	"\x12RequestIDExtension\x127\n" +
	"\ftyped_config\x18\x01 \x01(\v2\x14.google.protobuf.AnyR\vtypedConfig:P\x9aň\x1eK\n" +
	"Ienvoy.config.filter.network.http_connection_manager.v2.RequestIDExtension\"\x8e\x01\n" +
	" EnvoyMobileHttpConnectionManager\x12j\n" +
	"\x06config\x18\x01 \x01(\v2R.envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManagerR\x06configB\xef\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"Iio.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3B\x1aHttpConnectionManagerProtoP\x01Z|github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3;http_connection_managerv3b\x06proto3"

var (
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescOnce sync.Once
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescData []byte
)

func file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescGZIP() []byte {
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDesc), len(file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDesc)))
	})
	return file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDescData
}

var file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_goTypes = []any{
	(HttpConnectionManager_CodecType)(0),                                                // 0: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.CodecType
	(HttpConnectionManager_ServerHeaderTransformation)(0),                               // 1: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ServerHeaderTransformation
	(HttpConnectionManager_ForwardClientCertDetails)(0),                                 // 2: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertDetails
	(HttpConnectionManager_PathWithEscapedSlashesAction)(0),                             // 3: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathWithEscapedSlashesAction
	(HttpConnectionManager_Tracing_OperationName)(0),                                    // 4: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.OperationName
	(*HttpConnectionManager)(nil),                                                       // 5: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
	(*LocalReplyConfig)(nil),                                                            // 6: envoy.extensions.filters.network.http_connection_manager.v3.LocalReplyConfig
	(*ResponseMapper)(nil),                                                              // 7: envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapper
	(*Rds)(nil),                                                                         // 8: envoy.extensions.filters.network.http_connection_manager.v3.Rds
	(*ScopedRouteConfigurationsList)(nil),                                               // 9: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRouteConfigurationsList
	(*ScopedRoutes)(nil),                                                                // 10: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes
	(*ScopedRds)(nil),                                                                   // 11: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRds
	(*HttpFilter)(nil),                                                                  // 12: envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter
	(*RequestIDExtension)(nil),                                                          // 13: envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension
	(*EnvoyMobileHttpConnectionManager)(nil),                                            // 14: envoy.extensions.filters.network.http_connection_manager.v3.EnvoyMobileHttpConnectionManager
	(*HttpConnectionManager_Tracing)(nil),                                               // 15: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing
	(*HttpConnectionManager_InternalAddressConfig)(nil),                                 // 16: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.InternalAddressConfig
	(*HttpConnectionManager_SetCurrentClientCertDetails)(nil),                           // 17: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.SetCurrentClientCertDetails
	(*HttpConnectionManager_ForwardClientCertConfig)(nil),                               // 18: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertConfig
	(*HttpConnectionManager_UpgradeConfig)(nil),                                         // 19: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.UpgradeConfig
	(*HttpConnectionManager_PathNormalizationOptions)(nil),                              // 20: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathNormalizationOptions
	(*HttpConnectionManager_ProxyStatusConfig)(nil),                                     // 21: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ProxyStatusConfig
	(*HttpConnectionManager_HcmAccessLogOptions)(nil),                                   // 22: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions
	(*ScopedRoutes_ScopeKeyBuilder)(nil),                                                // 23: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder
	(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder)(nil),                                // 24: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder
	(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor)(nil),           // 25: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor
	(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement)(nil), // 26: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor.KvElement
	(*v33.RouteConfiguration)(nil),                                                      // 27: envoy.config.route.v3.RouteConfiguration
	(*wrapperspb.BoolValue)(nil),                                                        // 28: google.protobuf.BoolValue
	(*v3.HttpProtocolOptions)(nil),                                                      // 29: envoy.config.core.v3.HttpProtocolOptions
	(*v3.Http1ProtocolOptions)(nil),                                                     // 30: envoy.config.core.v3.Http1ProtocolOptions
	(*v3.Http2ProtocolOptions)(nil),                                                     // 31: envoy.config.core.v3.Http2ProtocolOptions
	(*v3.Http3ProtocolOptions)(nil),                                                     // 32: envoy.config.core.v3.Http3ProtocolOptions
	(*v3.SchemeHeaderTransformation)(nil),                                               // 33: envoy.config.core.v3.SchemeHeaderTransformation
	(*wrapperspb.UInt32Value)(nil),                                                      // 34: google.protobuf.UInt32Value
	(*durationpb.Duration)(nil),                                                         // 35: google.protobuf.Duration
	(*v31.AccessLog)(nil),                                                               // 36: envoy.config.accesslog.v3.AccessLog
	(*v3.TypedExtensionConfig)(nil),                                                     // 37: envoy.config.core.v3.TypedExtensionConfig
	(*v32.Matcher)(nil),                                                                 // 38: xds.type.matcher.v3.Matcher
	(*v3.SubstitutionFormatString)(nil),                                                 // 39: envoy.config.core.v3.SubstitutionFormatString
	(*v31.AccessLogFilter)(nil),                                                         // 40: envoy.config.accesslog.v3.AccessLogFilter
	(*v3.DataSource)(nil),                                                               // 41: envoy.config.core.v3.DataSource
	(*v3.HeaderValueOption)(nil),                                                        // 42: envoy.config.core.v3.HeaderValueOption
	(*v3.ConfigSource)(nil),                                                             // 43: envoy.config.core.v3.ConfigSource
	(*v33.ScopedRouteConfiguration)(nil),                                                // 44: envoy.config.route.v3.ScopedRouteConfiguration
	(*anypb.Any)(nil),                                                                   // 45: google.protobuf.Any
	(*v3.ExtensionConfigSource)(nil),                                                    // 46: envoy.config.core.v3.ExtensionConfigSource
	(*v34.Percent)(nil),                                                                 // 47: envoy.type.v3.Percent
	(*v35.CustomTag)(nil),                                                               // 48: envoy.type.tracing.v3.CustomTag
	(*v36.Tracing_Http)(nil),                                                            // 49: envoy.config.trace.v3.Tracing.Http
	(*v3.CidrRange)(nil),                                                                // 50: envoy.config.core.v3.CidrRange
	(*v37.PathTransformation)(nil),                                                      // 51: envoy.type.http.v3.PathTransformation
}
var file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_depIdxs = []int32{
	0,  // 0: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.codec_type:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.CodecType
	8,  // 1: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.rds:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.Rds
	27, // 2: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.route_config:type_name -> envoy.config.route.v3.RouteConfiguration
	10, // 3: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.scoped_routes:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes
	12, // 4: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.http_filters:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter
	28, // 5: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent:type_name -> google.protobuf.BoolValue
	15, // 6: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.tracing:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing
	29, // 7: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options:type_name -> envoy.config.core.v3.HttpProtocolOptions
	30, // 8: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.http_protocol_options:type_name -> envoy.config.core.v3.Http1ProtocolOptions
	31, // 9: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.http2_protocol_options:type_name -> envoy.config.core.v3.Http2ProtocolOptions
	32, // 10: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.http3_protocol_options:type_name -> envoy.config.core.v3.Http3ProtocolOptions
	1,  // 11: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.server_header_transformation:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ServerHeaderTransformation
	33, // 12: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.scheme_header_transformation:type_name -> envoy.config.core.v3.SchemeHeaderTransformation
	34, // 13: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.max_request_headers_kb:type_name -> google.protobuf.UInt32Value
	35, // 14: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout:type_name -> google.protobuf.Duration
	35, // 15: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_flush_timeout:type_name -> google.protobuf.Duration
	35, // 16: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.request_timeout:type_name -> google.protobuf.Duration
	35, // 17: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.request_headers_timeout:type_name -> google.protobuf.Duration
	35, // 18: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout:type_name -> google.protobuf.Duration
	35, // 19: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.delayed_close_timeout:type_name -> google.protobuf.Duration
	36, // 20: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.access_log:type_name -> envoy.config.accesslog.v3.AccessLog
	35, // 21: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.access_log_flush_interval:type_name -> google.protobuf.Duration
	22, // 22: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.access_log_options:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions
	28, // 23: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address:type_name -> google.protobuf.BoolValue
	37, // 24: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.original_ip_detection_extensions:type_name -> envoy.config.core.v3.TypedExtensionConfig
	37, // 25: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.early_header_mutation_extensions:type_name -> envoy.config.core.v3.TypedExtensionConfig
	16, // 26: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.internal_address_config:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.InternalAddressConfig
	28, // 27: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.generate_request_id:type_name -> google.protobuf.BoolValue
	2,  // 28: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.forward_client_cert_details:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertDetails
	17, // 29: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.set_current_client_cert_details:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.SetCurrentClientCertDetails
	38, // 30: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.forward_client_cert_matcher:type_name -> xds.type.matcher.v3.Matcher
	19, // 31: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.upgrade_configs:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.UpgradeConfig
	28, // 32: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.normalize_path:type_name -> google.protobuf.BoolValue
	3,  // 33: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.path_with_escaped_slashes_action:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathWithEscapedSlashesAction
	13, // 34: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.request_id_extension:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension
	6,  // 35: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.local_reply_config:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.LocalReplyConfig
	28, // 36: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message:type_name -> google.protobuf.BoolValue
	20, // 37: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.path_normalization_options:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathNormalizationOptions
	21, // 38: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.proxy_status_config:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ProxyStatusConfig
	37, // 39: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.typed_header_validation_config:type_name -> envoy.config.core.v3.TypedExtensionConfig
	28, // 40: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_proxy_protocol_connection_state:type_name -> google.protobuf.BoolValue
	7,  // 41: envoy.extensions.filters.network.http_connection_manager.v3.LocalReplyConfig.mappers:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapper
	39, // 42: envoy.extensions.filters.network.http_connection_manager.v3.LocalReplyConfig.body_format:type_name -> envoy.config.core.v3.SubstitutionFormatString
	40, // 43: envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapper.filter:type_name -> envoy.config.accesslog.v3.AccessLogFilter
	34, // 44: envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapper.status_code:type_name -> google.protobuf.UInt32Value
	41, // 45: envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapper.body:type_name -> envoy.config.core.v3.DataSource
	39, // 46: envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapper.body_format_override:type_name -> envoy.config.core.v3.SubstitutionFormatString
	42, // 47: envoy.extensions.filters.network.http_connection_manager.v3.ResponseMapper.headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
	43, // 48: envoy.extensions.filters.network.http_connection_manager.v3.Rds.config_source:type_name -> envoy.config.core.v3.ConfigSource
	44, // 49: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRouteConfigurationsList.scoped_route_configurations:type_name -> envoy.config.route.v3.ScopedRouteConfiguration
	23, // 50: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder
	43, // 51: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.rds_config_source:type_name -> envoy.config.core.v3.ConfigSource
	9,  // 52: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ScopedRouteConfigurationsList
	11, // 53: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_rds:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ScopedRds
	43, // 54: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRds.scoped_rds_config_source:type_name -> envoy.config.core.v3.ConfigSource
	45, // 55: envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter.typed_config:type_name -> google.protobuf.Any
	46, // 56: envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter.config_discovery:type_name -> envoy.config.core.v3.ExtensionConfigSource
	45, // 57: envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension.typed_config:type_name -> google.protobuf.Any
	5,  // 58: envoy.extensions.filters.network.http_connection_manager.v3.EnvoyMobileHttpConnectionManager.config:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
	47, // 59: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.client_sampling:type_name -> envoy.type.v3.Percent
	47, // 60: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.random_sampling:type_name -> envoy.type.v3.Percent
	47, // 61: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.overall_sampling:type_name -> envoy.type.v3.Percent
	34, // 62: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.max_path_tag_length:type_name -> google.protobuf.UInt32Value
	48, // 63: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.custom_tags:type_name -> envoy.type.tracing.v3.CustomTag
	49, // 64: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider:type_name -> envoy.config.trace.v3.Tracing.Http
	28, // 65: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.spawn_upstream_span:type_name -> google.protobuf.BoolValue
	50, // 66: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.InternalAddressConfig.cidr_ranges:type_name -> envoy.config.core.v3.CidrRange
	28, // 67: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.SetCurrentClientCertDetails.subject:type_name -> google.protobuf.BoolValue
	2,  // 68: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertConfig.forward_client_cert_details:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertDetails
	17, // 69: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertConfig.set_current_client_cert_details:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.SetCurrentClientCertDetails
	12, // 70: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.UpgradeConfig.filters:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter
	28, // 71: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.UpgradeConfig.enabled:type_name -> google.protobuf.BoolValue
	51, // 72: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathNormalizationOptions.forwarding_transformation:type_name -> envoy.type.http.v3.PathTransformation
	51, // 73: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.PathNormalizationOptions.http_filter_transformation:type_name -> envoy.type.http.v3.PathTransformation
	35, // 74: envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.HcmAccessLogOptions.access_log_flush_interval:type_name -> google.protobuf.Duration
	24, // 75: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.fragments:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder
	25, // 76: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.header_value_extractor:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor
	26, // 77: envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor.element:type_name -> envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor.KvElement
	78, // [78:78] is the sub-list for method output_type
	78, // [78:78] is the sub-list for method input_type
	78, // [78:78] is the sub-list for extension type_name
	78, // [78:78] is the sub-list for extension extendee
	0,  // [0:78] is the sub-list for field type_name
}

func init() {
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_init()
}
func file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_init() {
	if File_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto != nil {
		return
	}
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[0].OneofWrappers = []any{
		(*HttpConnectionManager_Rds)(nil),
		(*HttpConnectionManager_RouteConfig)(nil),
		(*HttpConnectionManager_ScopedRoutes)(nil),
		(*HttpConnectionManager_StripAnyHostPort)(nil),
	}
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[5].OneofWrappers = []any{
		(*ScopedRoutes_ScopedRouteConfigurationsList)(nil),
		(*ScopedRoutes_ScopedRds)(nil),
	}
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[7].OneofWrappers = []any{
		(*HttpFilter_TypedConfig)(nil),
		(*HttpFilter_ConfigDiscovery)(nil),
	}
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[16].OneofWrappers = []any{
		(*HttpConnectionManager_ProxyStatusConfig_UseNodeId)(nil),
		(*HttpConnectionManager_ProxyStatusConfig_LiteralProxyName)(nil),
	}
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[19].OneofWrappers = []any{
		(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_)(nil),
	}
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes[20].OneofWrappers = []any{
		(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index)(nil),
		(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDesc), len(file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_rawDesc)),
			NumEnums:      5,
			NumMessages:   22,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_depIdxs,
		EnumInfos:         file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_enumTypes,
		MessageInfos:      file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_msgTypes,
	}.Build()
	File_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto = out.File
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_goTypes = nil
	file_envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_depIdxs = nil
}
