// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v7.35.1
// source: envoy/config/bootstrap/v3/bootstrap.proto

package bootstrapv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	_ "github.com/envoyproxy/go-control-plane/envoy/annotations"
	v34 "github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3"
	v38 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	v37 "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3"
	v31 "github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3"
	v33 "github.com/envoyproxy/go-control-plane/envoy/config/overload/v3"
	v32 "github.com/envoyproxy/go-control-plane/envoy/config/trace/v3"
	v39 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3"
	v35 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3"
	v36 "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"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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)
)

// The events are fired in this order: “KILL“, “MULTIKILL“, “MEGAMISS“, “MISS“.
// Within an event type, actions execute in the order they are configured.
// For “KILL“/“MULTIKILL“ there is a default “PANIC“ that will run after the
// registered actions and kills the process if it wasn't already killed.
// It might be useful to specify several debug actions, and possibly an
// alternate “FATAL“ action.
type Watchdog_WatchdogAction_WatchdogEvent int32

const (
	Watchdog_WatchdogAction_UNKNOWN   Watchdog_WatchdogAction_WatchdogEvent = 0
	Watchdog_WatchdogAction_KILL      Watchdog_WatchdogAction_WatchdogEvent = 1
	Watchdog_WatchdogAction_MULTIKILL Watchdog_WatchdogAction_WatchdogEvent = 2
	Watchdog_WatchdogAction_MEGAMISS  Watchdog_WatchdogAction_WatchdogEvent = 3
	Watchdog_WatchdogAction_MISS      Watchdog_WatchdogAction_WatchdogEvent = 4
)

// Enum value maps for Watchdog_WatchdogAction_WatchdogEvent.
var (
	Watchdog_WatchdogAction_WatchdogEvent_name = map[int32]string{
		0: "UNKNOWN",
		1: "KILL",
		2: "MULTIKILL",
		3: "MEGAMISS",
		4: "MISS",
	}
	Watchdog_WatchdogAction_WatchdogEvent_value = map[string]int32{
		"UNKNOWN":   0,
		"KILL":      1,
		"MULTIKILL": 2,
		"MEGAMISS":  3,
		"MISS":      4,
	}
)

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

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

func (Watchdog_WatchdogAction_WatchdogEvent) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes[0].Descriptor()
}

func (Watchdog_WatchdogAction_WatchdogEvent) Type() protoreflect.EnumType {
	return &file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes[0]
}

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

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

type CustomInlineHeader_InlineHeaderType int32

const (
	CustomInlineHeader_REQUEST_HEADER   CustomInlineHeader_InlineHeaderType = 0
	CustomInlineHeader_REQUEST_TRAILER  CustomInlineHeader_InlineHeaderType = 1
	CustomInlineHeader_RESPONSE_HEADER  CustomInlineHeader_InlineHeaderType = 2
	CustomInlineHeader_RESPONSE_TRAILER CustomInlineHeader_InlineHeaderType = 3
)

// Enum value maps for CustomInlineHeader_InlineHeaderType.
var (
	CustomInlineHeader_InlineHeaderType_name = map[int32]string{
		0: "REQUEST_HEADER",
		1: "REQUEST_TRAILER",
		2: "RESPONSE_HEADER",
		3: "RESPONSE_TRAILER",
	}
	CustomInlineHeader_InlineHeaderType_value = map[string]int32{
		"REQUEST_HEADER":   0,
		"REQUEST_TRAILER":  1,
		"RESPONSE_HEADER":  2,
		"RESPONSE_TRAILER": 3,
	}
)

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

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

func (CustomInlineHeader_InlineHeaderType) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes[1].Descriptor()
}

func (CustomInlineHeader_InlineHeaderType) Type() protoreflect.EnumType {
	return &file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes[1]
}

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

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

type ApiListenerManager_ThreadingModel int32

const (
	// Handle HTTP requests on the main Envoy thread which also processes platform-raised events and runs xDS clients.
	ApiListenerManager_MAIN_THREAD_ONLY ApiListenerManager_ThreadingModel = 0
	// Handle HTTP requests on a standalone worker thread.
	ApiListenerManager_STANDALONE_WORKER_THREAD ApiListenerManager_ThreadingModel = 1
)

// Enum value maps for ApiListenerManager_ThreadingModel.
var (
	ApiListenerManager_ThreadingModel_name = map[int32]string{
		0: "MAIN_THREAD_ONLY",
		1: "STANDALONE_WORKER_THREAD",
	}
	ApiListenerManager_ThreadingModel_value = map[string]int32{
		"MAIN_THREAD_ONLY":         0,
		"STANDALONE_WORKER_THREAD": 1,
	}
)

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

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

func (ApiListenerManager_ThreadingModel) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes[2].Descriptor()
}

func (ApiListenerManager_ThreadingModel) Type() protoreflect.EnumType {
	return &file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes[2]
}

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

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

// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
// [#next-free-field: 44]
type Bootstrap struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Node identity to present to the management server and for instance
	// identification purposes (e.g. in generated headers).
	Node *v3.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	// A list of :ref:`Node <envoy_v3_api_msg_config.core.v3.Node>` field names
	// that will be included in the context parameters of the effective
	// “xdstp://“ URL that is sent in a discovery request when resource
	// locators are used for LDS/CDS. Any non-string field will have its JSON
	// encoding set as the context parameter value, with the exception of
	// metadata, which will be flattened (see example below). The supported field
	// names are:
	// - “cluster“
	// - “id“
	// - “locality.region“
	// - “locality.sub_zone“
	// - “locality.zone“
	// - “metadata“
	// - “user_agent_build_version.metadata“
	// - “user_agent_build_version.version“
	// - “user_agent_name“
	// - “user_agent_version“
	//
	// The node context parameters act as a base layer dictionary for the context
	// parameters (i.e. more specific resource specific context parameters will
	// override). Field names will be prefixed with ````"udpa.node."```` when included in
	// context parameters.
	//
	// For example, if node_context_params is “["user_agent_name", "metadata"]“,
	// the implied context parameters might be::
	//
	//	node.user_agent_name: "envoy"
	//	node.metadata.foo: "{\"bar\": \"baz\"}"
	//	node.metadata.some: "42"
	//	node.metadata.thing: "\"thing\""
	//
	// [#not-implemented-hide:]
	NodeContextParams []string `protobuf:"bytes,26,rep,name=node_context_params,json=nodeContextParams,proto3" json:"node_context_params,omitempty"`
	// Statically specified resources.
	StaticResources *Bootstrap_StaticResources `protobuf:"bytes,2,opt,name=static_resources,json=staticResources,proto3" json:"static_resources,omitempty"`
	// xDS configuration sources.
	DynamicResources *Bootstrap_DynamicResources `protobuf:"bytes,3,opt,name=dynamic_resources,json=dynamicResources,proto3" json:"dynamic_resources,omitempty"`
	// Configuration for the cluster manager which owns all upstream clusters
	// within the server.
	ClusterManager *ClusterManager `protobuf:"bytes,4,opt,name=cluster_manager,json=clusterManager,proto3" json:"cluster_manager,omitempty"`
	// Health discovery service config option.
	// (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`)
	HdsConfig *v3.ApiConfigSource `protobuf:"bytes,14,opt,name=hds_config,json=hdsConfig,proto3" json:"hds_config,omitempty"`
	// Optional file system path to search for startup flag files.
	FlagsPath string `protobuf:"bytes,5,opt,name=flags_path,json=flagsPath,proto3" json:"flags_path,omitempty"`
	// Optional set of stats sinks.
	StatsSinks []*v31.StatsSink `protobuf:"bytes,6,rep,name=stats_sinks,json=statsSinks,proto3" json:"stats_sinks,omitempty"`
	// Options to control behaviors of deferred creation compatible stats.
	DeferredStatOptions *Bootstrap_DeferredStatOptions `protobuf:"bytes,39,opt,name=deferred_stat_options,json=deferredStatOptions,proto3" json:"deferred_stat_options,omitempty"`
	// Configuration for internal processing of stats.
	StatsConfig *v31.StatsConfig `protobuf:"bytes,13,opt,name=stats_config,json=statsConfig,proto3" json:"stats_config,omitempty"`
	// Optional duration between flushes to configured stats sinks. For
	// performance reasons Envoy latches counters and only flushes counters and
	// gauges at a periodic interval. If not specified the default is “5000ms“ (“5“ seconds).
	// Only one of “stats_flush_interval“ or “stats_flush_on_admin“
	// can be set.
	// Duration must be at least “1ms“ and at most “5 min“.
	StatsFlushInterval *durationpb.Duration `protobuf:"bytes,7,opt,name=stats_flush_interval,json=statsFlushInterval,proto3" json:"stats_flush_interval,omitempty"`
	// Types that are valid to be assigned to StatsFlush:
	//
	//	*Bootstrap_StatsFlushOnAdmin
	StatsFlush isBootstrap_StatsFlush `protobuf_oneof:"stats_flush"`
	// Types that are valid to be assigned to StatsEviction:
	//
	//	*Bootstrap_StatsEvictionInterval
	StatsEviction isBootstrap_StatsEviction `protobuf_oneof:"stats_eviction"`
	// Optional watchdog configuration.
	// This is for a single watchdog configuration for the entire system.
	// Deprecated in favor of “watchdogs“ which has finer granularity.
	//
	// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
	Watchdog *Watchdog `protobuf:"bytes,8,opt,name=watchdog,proto3" json:"watchdog,omitempty"`
	// Optional watchdogs configuration.
	// This is used for specifying different watchdogs for the different subsystems.
	// [#extension-category: envoy.guarddog_actions]
	Watchdogs *Watchdogs `protobuf:"bytes,27,opt,name=watchdogs,proto3" json:"watchdogs,omitempty"`
	// Configuration for an external tracing provider.
	//
	// .. attention::
	//
	//	This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
	//	<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
	//
	// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
	Tracing *v32.Tracing `protobuf:"bytes,9,opt,name=tracing,proto3" json:"tracing,omitempty"`
	// Configuration for the runtime configuration provider. If not
	// specified, a “null” provider will be used which will result in all defaults
	// being used.
	LayeredRuntime *LayeredRuntime `protobuf:"bytes,17,opt,name=layered_runtime,json=layeredRuntime,proto3" json:"layered_runtime,omitempty"`
	// Configuration for the local administration HTTP server.
	Admin *Admin `protobuf:"bytes,12,opt,name=admin,proto3" json:"admin,omitempty"`
	// Optional overload manager configuration.
	OverloadManager *v33.OverloadManager `protobuf:"bytes,15,opt,name=overload_manager,json=overloadManager,proto3" json:"overload_manager,omitempty"`
	// Enable :ref:`stats for event dispatcher <operations_performance>`. Defaults to “false“.
	//
	// .. note::
	//
	//	This records a value for each iteration of the event loop on every thread. This
	//	should normally be minimal overhead, but when using
	//	:ref:`statsd <envoy_v3_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
	//	over the wire individually because the statsd protocol doesn't have any way to represent a
	//	histogram summary. Be aware that this can be a very large volume of data.
	EnableDispatcherStats bool `protobuf:"varint,16,opt,name=enable_dispatcher_stats,json=enableDispatcherStats,proto3" json:"enable_dispatcher_stats,omitempty"`
	// Optional string which will be used in lieu of “x-envoy“ in prefixing headers.
	//
	// For example, if this string is present and set to “X-Foo“, then “x-envoy-retry-on“ will be
	// transformed into “x-foo-retry-on“ etc.
	//
	// .. note::
	//
	//	This applies to the headers Envoy will generate, the headers Envoy will sanitize, and the
	//	headers Envoy will trust for core code and core extensions only. Be VERY careful making
	//	changes to this string, especially in multi-layer Envoy deployments or deployments using
	//	extensions which are not upstream.
	HeaderPrefix string `protobuf:"bytes,18,opt,name=header_prefix,json=headerPrefix,proto3" json:"header_prefix,omitempty"`
	// Optional proxy version which will be used to set the value of :ref:`server.version statistic
	// <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
	// :ref:`stats sinks <envoy_v3_api_msg_config.metrics.v3.StatsSink>`.
	StatsServerVersionOverride *wrapperspb.UInt64Value `protobuf:"bytes,19,opt,name=stats_server_version_override,json=statsServerVersionOverride,proto3" json:"stats_server_version_override,omitempty"`
	// Always use “TCP“ queries instead of “UDP“ queries for DNS lookups.
	// This may be overridden on a per-cluster basis in “cds_config“,
	// when :ref:`dns_resolvers <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
	// :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
	// specified.
	// This field is deprecated in favor of “dns_resolution_config“
	// which aggregates all of the DNS resolver configuration in a single message.
	//
	// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
	UseTcpForDnsLookups bool `protobuf:"varint,20,opt,name=use_tcp_for_dns_lookups,json=useTcpForDnsLookups,proto3" json:"use_tcp_for_dns_lookups,omitempty"`
	// DNS resolution configuration which includes the underlying DNS resolver addresses and options.
	// This may be overridden on a per-cluster basis in “cds_config“, when
	// :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
	// is specified.
	// This field is deprecated in favor of
	// :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.typed_dns_resolver_config>`.
	//
	// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
	DnsResolutionConfig *v3.DnsResolutionConfig `protobuf:"bytes,30,opt,name=dns_resolution_config,json=dnsResolutionConfig,proto3" json:"dns_resolution_config,omitempty"`
	// DNS resolver type configuration extension. This extension can be used to configure “c-ares“, “apple“,
	// or any other DNS resolver types and the related parameters.
	// For example, an object of
	// :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
	// can be packed into this “typed_dns_resolver_config“. This configuration replaces the
	// :ref:`dns_resolution_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.dns_resolution_config>`
	// configuration.
	//
	// During the transition period when both “dns_resolution_config“ and “typed_dns_resolver_config“ exist,
	// when “typed_dns_resolver_config“ is in place, Envoy will use it and ignore “dns_resolution_config“.
	// When “typed_dns_resolver_config“ is missing, the default behavior is in place.
	// [#extension-category: envoy.network.dns_resolver]
	TypedDnsResolverConfig *v3.TypedExtensionConfig `protobuf:"bytes,31,opt,name=typed_dns_resolver_config,json=typedDnsResolverConfig,proto3" json:"typed_dns_resolver_config,omitempty"`
	// Specifies optional bootstrap extensions to be instantiated at startup time.
	// Each item contains extension specific configuration.
	// [#extension-category: envoy.bootstrap]
	BootstrapExtensions []*v3.TypedExtensionConfig `protobuf:"bytes,21,rep,name=bootstrap_extensions,json=bootstrapExtensions,proto3" json:"bootstrap_extensions,omitempty"`
	// Specifies optional extensions instantiated at startup time and
	// invoked during crash time on the request that caused the crash.
	FatalActions []*FatalAction `protobuf:"bytes,28,rep,name=fatal_actions,json=fatalActions,proto3" json:"fatal_actions,omitempty"`
	// Configuration sources that will participate in
	// “xdstp://“ URL authority resolution. The algorithm is as
	// follows:
	//
	//  1. The authority field is taken from the “xdstp://“ URL, call
	//     this “resource_authority“.
	//  2. “resource_authority“ is compared against the authorities in any peer
	//     “ConfigSource“. The peer “ConfigSource“ is the configuration source
	//     message which would have been used unconditionally for resolution
	//     with opaque resource names. If there is a match with an authority, the
	//     peer “ConfigSource“ message is used.
	//  3. “resource_authority“ is compared sequentially with the authorities in
	//     each configuration source in “config_sources“. The first “ConfigSource“
	//     to match wins.
	//  4. As a fallback, if no configuration source matches, then
	//     “default_config_source“ is used.
	//  5. If “default_config_source“ is not specified, resolution fails.
	//
	// [#not-implemented-hide:]
	ConfigSources []*v3.ConfigSource `protobuf:"bytes,22,rep,name=config_sources,json=configSources,proto3" json:"config_sources,omitempty"`
	// Default configuration source for “xdstp://“ URLs if all
	// other resolution fails.
	// [#not-implemented-hide:]
	DefaultConfigSource *v3.ConfigSource `protobuf:"bytes,23,opt,name=default_config_source,json=defaultConfigSource,proto3" json:"default_config_source,omitempty"`
	// Optional overriding of default socket interface. The value must be the name of one of the
	// socket interface factories initialized through a bootstrap extension
	DefaultSocketInterface string `protobuf:"bytes,24,opt,name=default_socket_interface,json=defaultSocketInterface,proto3" json:"default_socket_interface,omitempty"`
	// Global map of CertificateProvider instances. These instances are referred to by name in the
	// :ref:`CommonTlsContext.CertificateProviderInstance.instance_name
	// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
	// field.
	// [#not-implemented-hide:]
	CertificateProviderInstances map[string]*v3.TypedExtensionConfig `protobuf:"bytes,25,rep,name=certificate_provider_instances,json=certificateProviderInstances,proto3" json:"certificate_provider_instances,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Specifies a set of headers that need to be registered as inline header. This configuration
	// allows users to customize the inline headers on-demand at Envoy startup without modifying
	// Envoy's source code.
	//
	// .. note::
	//
	//	The ``set-cookie`` header cannot be registered as inline header.
	InlineHeaders []*CustomInlineHeader `protobuf:"bytes,32,rep,name=inline_headers,json=inlineHeaders,proto3" json:"inline_headers,omitempty"`
	// Optional path to a file with performance tracing data created by “Perfetto“ SDK in binary
	// ProtoBuf format. The default value is “envoy.pftrace“.
	PerfTracingFilePath string `protobuf:"bytes,33,opt,name=perf_tracing_file_path,json=perfTracingFilePath,proto3" json:"perf_tracing_file_path,omitempty"`
	// Optional overriding of default regex engine.
	// If the value is not specified, “Google RE2“ will be used by default.
	// [#extension-category: envoy.regex_engines]
	DefaultRegexEngine *v3.TypedExtensionConfig `protobuf:"bytes,34,opt,name=default_regex_engine,json=defaultRegexEngine,proto3" json:"default_regex_engine,omitempty"`
	// Optional XdsResourcesDelegate configuration, which allows plugging custom logic into both
	// fetch and load events during xDS processing.
	// If a value is not specified, no “XdsResourcesDelegate“ will be used.
	// TODO(abeyad): Add public-facing documentation.
	// [#not-implemented-hide:]
	XdsDelegateExtension *v3.TypedExtensionConfig `protobuf:"bytes,35,opt,name=xds_delegate_extension,json=xdsDelegateExtension,proto3" json:"xds_delegate_extension,omitempty"`
	// Optional XdsConfigTracker configuration, which allows tracking xDS responses in external components,
	// e.g., external tracer or monitor. It provides the process point when receive, ingest, or fail to
	// process xDS resources and messages. If a value is not specified, no “XdsConfigTracker“ will be used.
	//
	// .. note::
	//
	//	There are no in-repo extensions currently, and the :repo:`XdsConfigTracker <envoy/config/xds_config_tracker.h>`
	//	interface should be implemented before using.
	//	See :repo:`xds_config_tracker_integration_test <test/integration/xds_config_tracker_integration_test.cc>`
	//	for an example usage of the interface.
	XdsConfigTrackerExtension *v3.TypedExtensionConfig `protobuf:"bytes,36,opt,name=xds_config_tracker_extension,json=xdsConfigTrackerExtension,proto3" json:"xds_config_tracker_extension,omitempty"`
	// [#not-implemented-hide:]
	// This controls the type of listener manager configured for Envoy. Currently
	// Envoy only supports “ListenerManager“ for this field and Envoy Mobile
	// supports “ApiListenerManager“.
	ListenerManager *v3.TypedExtensionConfig `protobuf:"bytes,37,opt,name=listener_manager,json=listenerManager,proto3" json:"listener_manager,omitempty"`
	// Optional application log configuration.
	ApplicationLogConfig *Bootstrap_ApplicationLogConfig `protobuf:"bytes,38,opt,name=application_log_config,json=applicationLogConfig,proto3" json:"application_log_config,omitempty"`
	// Optional gRPC async client manager config.
	GrpcAsyncClientManagerConfig *Bootstrap_GrpcAsyncClientManagerConfig `protobuf:"bytes,40,opt,name=grpc_async_client_manager_config,json=grpcAsyncClientManagerConfig,proto3" json:"grpc_async_client_manager_config,omitempty"`
	// Optional configuration for memory allocation manager.
	// Memory releasing is only supported for `tcmalloc allocator <https://github.com/google/tcmalloc>`_.
	MemoryAllocatorManager *MemoryAllocatorManager `protobuf:"bytes,41,opt,name=memory_allocator_manager,json=memoryAllocatorManager,proto3" json:"memory_allocator_manager,omitempty"`
	// When enabled, Envoy pins each worker thread to a distinct CPU from the process affinity mask,
	// worker “i“ to the “i-th“ CPU in ascending order. This improves CPU cache and “NUMA“
	// locality for high concurrency deployments on bare metal. It is available on Linux only and is
	// ignored on other platforms. Pinning requires a worker count no greater than the number of CPUs
	// in the process affinity mask. When the worker count exceeds the available CPUs no worker is
	// pinned. Pinning is applied once when the workers start, so a later change to the process
	// affinity mask does not re-pin.
	//
	// Defaults to “false“.
	EnableWorkerCpuAffinity bool `protobuf:"varint,43,opt,name=enable_worker_cpu_affinity,json=enableWorkerCpuAffinity,proto3" json:"enable_worker_cpu_affinity,omitempty"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

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

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

func (*Bootstrap) ProtoMessage() {}

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

func (x *Bootstrap) GetNode() *v3.Node {
	if x != nil {
		return x.Node
	}
	return nil
}

func (x *Bootstrap) GetNodeContextParams() []string {
	if x != nil {
		return x.NodeContextParams
	}
	return nil
}

func (x *Bootstrap) GetStaticResources() *Bootstrap_StaticResources {
	if x != nil {
		return x.StaticResources
	}
	return nil
}

func (x *Bootstrap) GetDynamicResources() *Bootstrap_DynamicResources {
	if x != nil {
		return x.DynamicResources
	}
	return nil
}

func (x *Bootstrap) GetClusterManager() *ClusterManager {
	if x != nil {
		return x.ClusterManager
	}
	return nil
}

func (x *Bootstrap) GetHdsConfig() *v3.ApiConfigSource {
	if x != nil {
		return x.HdsConfig
	}
	return nil
}

func (x *Bootstrap) GetFlagsPath() string {
	if x != nil {
		return x.FlagsPath
	}
	return ""
}

func (x *Bootstrap) GetStatsSinks() []*v31.StatsSink {
	if x != nil {
		return x.StatsSinks
	}
	return nil
}

func (x *Bootstrap) GetDeferredStatOptions() *Bootstrap_DeferredStatOptions {
	if x != nil {
		return x.DeferredStatOptions
	}
	return nil
}

func (x *Bootstrap) GetStatsConfig() *v31.StatsConfig {
	if x != nil {
		return x.StatsConfig
	}
	return nil
}

func (x *Bootstrap) GetStatsFlushInterval() *durationpb.Duration {
	if x != nil {
		return x.StatsFlushInterval
	}
	return nil
}

func (x *Bootstrap) GetStatsFlush() isBootstrap_StatsFlush {
	if x != nil {
		return x.StatsFlush
	}
	return nil
}

func (x *Bootstrap) GetStatsFlushOnAdmin() bool {
	if x != nil {
		if x, ok := x.StatsFlush.(*Bootstrap_StatsFlushOnAdmin); ok {
			return x.StatsFlushOnAdmin
		}
	}
	return false
}

func (x *Bootstrap) GetStatsEviction() isBootstrap_StatsEviction {
	if x != nil {
		return x.StatsEviction
	}
	return nil
}

func (x *Bootstrap) GetStatsEvictionInterval() *durationpb.Duration {
	if x != nil {
		if x, ok := x.StatsEviction.(*Bootstrap_StatsEvictionInterval); ok {
			return x.StatsEvictionInterval
		}
	}
	return nil
}

// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
func (x *Bootstrap) GetWatchdog() *Watchdog {
	if x != nil {
		return x.Watchdog
	}
	return nil
}

func (x *Bootstrap) GetWatchdogs() *Watchdogs {
	if x != nil {
		return x.Watchdogs
	}
	return nil
}

// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
func (x *Bootstrap) GetTracing() *v32.Tracing {
	if x != nil {
		return x.Tracing
	}
	return nil
}

func (x *Bootstrap) GetLayeredRuntime() *LayeredRuntime {
	if x != nil {
		return x.LayeredRuntime
	}
	return nil
}

func (x *Bootstrap) GetAdmin() *Admin {
	if x != nil {
		return x.Admin
	}
	return nil
}

func (x *Bootstrap) GetOverloadManager() *v33.OverloadManager {
	if x != nil {
		return x.OverloadManager
	}
	return nil
}

func (x *Bootstrap) GetEnableDispatcherStats() bool {
	if x != nil {
		return x.EnableDispatcherStats
	}
	return false
}

func (x *Bootstrap) GetHeaderPrefix() string {
	if x != nil {
		return x.HeaderPrefix
	}
	return ""
}

func (x *Bootstrap) GetStatsServerVersionOverride() *wrapperspb.UInt64Value {
	if x != nil {
		return x.StatsServerVersionOverride
	}
	return nil
}

// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
func (x *Bootstrap) GetUseTcpForDnsLookups() bool {
	if x != nil {
		return x.UseTcpForDnsLookups
	}
	return false
}

// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
func (x *Bootstrap) GetDnsResolutionConfig() *v3.DnsResolutionConfig {
	if x != nil {
		return x.DnsResolutionConfig
	}
	return nil
}

func (x *Bootstrap) GetTypedDnsResolverConfig() *v3.TypedExtensionConfig {
	if x != nil {
		return x.TypedDnsResolverConfig
	}
	return nil
}

func (x *Bootstrap) GetBootstrapExtensions() []*v3.TypedExtensionConfig {
	if x != nil {
		return x.BootstrapExtensions
	}
	return nil
}

func (x *Bootstrap) GetFatalActions() []*FatalAction {
	if x != nil {
		return x.FatalActions
	}
	return nil
}

func (x *Bootstrap) GetConfigSources() []*v3.ConfigSource {
	if x != nil {
		return x.ConfigSources
	}
	return nil
}

func (x *Bootstrap) GetDefaultConfigSource() *v3.ConfigSource {
	if x != nil {
		return x.DefaultConfigSource
	}
	return nil
}

func (x *Bootstrap) GetDefaultSocketInterface() string {
	if x != nil {
		return x.DefaultSocketInterface
	}
	return ""
}

func (x *Bootstrap) GetCertificateProviderInstances() map[string]*v3.TypedExtensionConfig {
	if x != nil {
		return x.CertificateProviderInstances
	}
	return nil
}

func (x *Bootstrap) GetInlineHeaders() []*CustomInlineHeader {
	if x != nil {
		return x.InlineHeaders
	}
	return nil
}

func (x *Bootstrap) GetPerfTracingFilePath() string {
	if x != nil {
		return x.PerfTracingFilePath
	}
	return ""
}

func (x *Bootstrap) GetDefaultRegexEngine() *v3.TypedExtensionConfig {
	if x != nil {
		return x.DefaultRegexEngine
	}
	return nil
}

func (x *Bootstrap) GetXdsDelegateExtension() *v3.TypedExtensionConfig {
	if x != nil {
		return x.XdsDelegateExtension
	}
	return nil
}

func (x *Bootstrap) GetXdsConfigTrackerExtension() *v3.TypedExtensionConfig {
	if x != nil {
		return x.XdsConfigTrackerExtension
	}
	return nil
}

func (x *Bootstrap) GetListenerManager() *v3.TypedExtensionConfig {
	if x != nil {
		return x.ListenerManager
	}
	return nil
}

func (x *Bootstrap) GetApplicationLogConfig() *Bootstrap_ApplicationLogConfig {
	if x != nil {
		return x.ApplicationLogConfig
	}
	return nil
}

func (x *Bootstrap) GetGrpcAsyncClientManagerConfig() *Bootstrap_GrpcAsyncClientManagerConfig {
	if x != nil {
		return x.GrpcAsyncClientManagerConfig
	}
	return nil
}

func (x *Bootstrap) GetMemoryAllocatorManager() *MemoryAllocatorManager {
	if x != nil {
		return x.MemoryAllocatorManager
	}
	return nil
}

func (x *Bootstrap) GetEnableWorkerCpuAffinity() bool {
	if x != nil {
		return x.EnableWorkerCpuAffinity
	}
	return false
}

type isBootstrap_StatsFlush interface {
	isBootstrap_StatsFlush()
}

type Bootstrap_StatsFlushOnAdmin struct {
	// Flush stats to sinks only when queried for on the admin interface. If set,
	// a flush timer is not created. Only one of “stats_flush_on_admin“ or
	// “stats_flush_interval“ can be set.
	StatsFlushOnAdmin bool `protobuf:"varint,29,opt,name=stats_flush_on_admin,json=statsFlushOnAdmin,proto3,oneof"`
}

func (*Bootstrap_StatsFlushOnAdmin) isBootstrap_StatsFlush() {}

type isBootstrap_StatsEviction interface {
	isBootstrap_StatsEviction()
}

type Bootstrap_StatsEvictionInterval struct {
	// Optional duration to perform metric eviction. At every interval, during the stats flush
	// the unused metrics are removed from the worker caches and the used metrics
	// are marked as unused. Must be a multiple of the “stats_flush_interval“.
	StatsEvictionInterval *durationpb.Duration `protobuf:"bytes,42,opt,name=stats_eviction_interval,json=statsEvictionInterval,proto3,oneof"`
}

func (*Bootstrap_StatsEvictionInterval) isBootstrap_StatsEviction() {}

// Administration interface :ref:`operations documentation
// <operations_admin_interface>`.
// [#next-free-field: 8]
type Admin struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Configuration for :ref:`access logs <arch_overview_access_logs>`
	// emitted by the administration server.
	AccessLog []*v34.AccessLog `protobuf:"bytes,5,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"`
	// The path to write the access log for the administration server. If no
	// access log is desired specify “/dev/null“. This is only required if
	// :ref:`address <envoy_v3_api_field_config.bootstrap.v3.Admin.address>` is set.
	// Deprecated in favor of “access_log“ which offers more options.
	//
	// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
	AccessLogPath string `protobuf:"bytes,1,opt,name=access_log_path,json=accessLogPath,proto3" json:"access_log_path,omitempty"`
	// The CPU profiler output path for the administration server. If no profile
	// path is specified, the default is “/var/log/envoy/envoy.prof“.
	ProfilePath string `protobuf:"bytes,2,opt,name=profile_path,json=profilePath,proto3" json:"profile_path,omitempty"`
	// The TCP address that the administration server will listen on.
	// If not specified, Envoy will not start an administration server.
	Address *v3.Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
	// Additional socket options that may not be present in Envoy source code or
	// precompiled binaries.
	SocketOptions []*v3.SocketOption `protobuf:"bytes,4,rep,name=socket_options,json=socketOptions,proto3" json:"socket_options,omitempty"`
	// Indicates whether :ref:`global_downstream_max_connections <config_overload_manager_limiting_connections>`
	// should apply to the admin interface or not.
	IgnoreGlobalConnLimit bool `protobuf:"varint,6,opt,name=ignore_global_conn_limit,json=ignoreGlobalConnLimit,proto3" json:"ignore_global_conn_limit,omitempty"`
	// List of admin paths that are accessible. If not specified, all admin endpoints are accessible.
	// Matchers are evaluated against the request path. For endpoints commonly queried with
	// parameters (for example “/stats?format=...“), prefer “prefix“ matchers.
	//
	// When specified, only paths in this list will be accessible, all others will return “HTTP 403 Forbidden“.
	//
	// Example:
	//
	// .. code-block:: yaml
	//
	//	allow_paths:
	//	- prefix: /stats
	//	- prefix: /config_dump
	//	- exact: /ready
	//	- prefix: /healthcheck
	AllowPaths    []*v35.StringMatcher `protobuf:"bytes,7,rep,name=allow_paths,json=allowPaths,proto3" json:"allow_paths,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Admin) ProtoMessage() {}

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

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

// Deprecated: Marked as deprecated in envoy/config/bootstrap/v3/bootstrap.proto.
func (x *Admin) GetAccessLogPath() string {
	if x != nil {
		return x.AccessLogPath
	}
	return ""
}

func (x *Admin) GetProfilePath() string {
	if x != nil {
		return x.ProfilePath
	}
	return ""
}

func (x *Admin) GetAddress() *v3.Address {
	if x != nil {
		return x.Address
	}
	return nil
}

func (x *Admin) GetSocketOptions() []*v3.SocketOption {
	if x != nil {
		return x.SocketOptions
	}
	return nil
}

func (x *Admin) GetIgnoreGlobalConnLimit() bool {
	if x != nil {
		return x.IgnoreGlobalConnLimit
	}
	return false
}

func (x *Admin) GetAllowPaths() []*v35.StringMatcher {
	if x != nil {
		return x.AllowPaths
	}
	return nil
}

// Cluster manager :ref:`architecture overview <arch_overview_cluster_manager>`.
// [#next-free-field: 6]
type ClusterManager struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the local cluster (i.e., the cluster that owns the Envoy running
	// this configuration). In order to enable :ref:`zone aware routing
	// <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
	// If “local_cluster_name“ is defined then :ref:`clusters
	// <envoy_v3_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
	// static cluster resources
	// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
	// the :option:`--service-cluster` option which does not `affect zone aware
	// routing <https://github.com/envoyproxy/envoy/issues/774>`_.
	LocalClusterName string `protobuf:"bytes,1,opt,name=local_cluster_name,json=localClusterName,proto3" json:"local_cluster_name,omitempty"`
	// Optional global configuration for outlier detection.
	OutlierDetection *ClusterManager_OutlierDetection `protobuf:"bytes,2,opt,name=outlier_detection,json=outlierDetection,proto3" json:"outlier_detection,omitempty"`
	// Optional configuration used to bind newly established upstream connections.
	// This may be overridden on a per-cluster basis by “upstream_bind_config“ in the “cds_config“.
	UpstreamBindConfig *v3.BindConfig `protobuf:"bytes,3,opt,name=upstream_bind_config,json=upstreamBindConfig,proto3" json:"upstream_bind_config,omitempty"`
	// A management server endpoint to stream load stats to via
	// “StreamLoadStats“. This must have :ref:`api_type
	// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
	// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
	LoadStatsConfig *v3.ApiConfigSource `protobuf:"bytes,4,opt,name=load_stats_config,json=loadStatsConfig,proto3" json:"load_stats_config,omitempty"`
	// Whether the ClusterManager will create clusters on the worker threads
	// inline during requests. This will save memory and CPU cycles in cases where
	// there are lots of inactive clusters and “> 1“ worker thread.
	EnableDeferredClusterCreation bool `protobuf:"varint,5,opt,name=enable_deferred_cluster_creation,json=enableDeferredClusterCreation,proto3" json:"enable_deferred_cluster_creation,omitempty"`
	unknownFields                 protoimpl.UnknownFields
	sizeCache                     protoimpl.SizeCache
}

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

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

func (*ClusterManager) ProtoMessage() {}

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

func (x *ClusterManager) GetLocalClusterName() string {
	if x != nil {
		return x.LocalClusterName
	}
	return ""
}

func (x *ClusterManager) GetOutlierDetection() *ClusterManager_OutlierDetection {
	if x != nil {
		return x.OutlierDetection
	}
	return nil
}

func (x *ClusterManager) GetUpstreamBindConfig() *v3.BindConfig {
	if x != nil {
		return x.UpstreamBindConfig
	}
	return nil
}

func (x *ClusterManager) GetLoadStatsConfig() *v3.ApiConfigSource {
	if x != nil {
		return x.LoadStatsConfig
	}
	return nil
}

func (x *ClusterManager) GetEnableDeferredClusterCreation() bool {
	if x != nil {
		return x.EnableDeferredClusterCreation
	}
	return false
}

// Allows you to specify different watchdog configs for different subsystems.
// This allows finer tuned policies for the watchdog. If a subsystem is omitted
// the default values for that system will be used.
type Watchdogs struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Watchdog for the main thread.
	MainThreadWatchdog *Watchdog `protobuf:"bytes,1,opt,name=main_thread_watchdog,json=mainThreadWatchdog,proto3" json:"main_thread_watchdog,omitempty"`
	// Watchdog for the worker threads.
	WorkerWatchdog *Watchdog `protobuf:"bytes,2,opt,name=worker_watchdog,json=workerWatchdog,proto3" json:"worker_watchdog,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*Watchdogs) ProtoMessage() {}

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

func (x *Watchdogs) GetMainThreadWatchdog() *Watchdog {
	if x != nil {
		return x.MainThreadWatchdog
	}
	return nil
}

func (x *Watchdogs) GetWorkerWatchdog() *Watchdog {
	if x != nil {
		return x.WorkerWatchdog
	}
	return nil
}

// Envoy process watchdog configuration. When configured, this monitors for
// nonresponsive threads and kills the process after the configured thresholds.
// See the :ref:`watchdog documentation <operations_performance_watchdog>` for more information.
// [#next-free-field: 8]
type Watchdog struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Register actions that will fire on given Watchdog events.
	// See “WatchdogAction“ for priority of events.
	Actions []*Watchdog_WatchdogAction `protobuf:"bytes,7,rep,name=actions,proto3" json:"actions,omitempty"`
	// The duration after which Envoy counts a nonresponsive thread in the
	// “watchdog_miss“ statistic. If not specified the default is “200ms“.
	MissTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=miss_timeout,json=missTimeout,proto3" json:"miss_timeout,omitempty"`
	// The duration after which Envoy counts a nonresponsive thread in the
	// “watchdog_mega_miss“ statistic. If not specified the default is “1000ms“.
	MegamissTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=megamiss_timeout,json=megamissTimeout,proto3" json:"megamiss_timeout,omitempty"`
	// If a watched thread has been nonresponsive for this duration, assume a
	// programming error and kill the entire Envoy process. Set to “0“ to disable
	// kill behavior. If not specified the default is “0“ (disabled).
	KillTimeout *durationpb.Duration `protobuf:"bytes,3,opt,name=kill_timeout,json=killTimeout,proto3" json:"kill_timeout,omitempty"`
	// Defines the maximum jitter used to adjust the “kill_timeout“ if “kill_timeout“ is
	// enabled. Enabling this feature would help to reduce risk of synchronized
	// watchdog kill events across proxies due to external triggers. Set to “0“ to
	// disable. If not specified the default is “0“ (disabled).
	MaxKillTimeoutJitter *durationpb.Duration `protobuf:"bytes,6,opt,name=max_kill_timeout_jitter,json=maxKillTimeoutJitter,proto3" json:"max_kill_timeout_jitter,omitempty"`
	// If “max(2, ceil(registered_threads * Fraction(multikill_threshold)))“
	// threads have been nonresponsive for at least this duration kill the entire
	// Envoy process. Set to “0“ to disable this behavior. If not specified the
	// default is “0“ (disabled).
	MultikillTimeout *durationpb.Duration `protobuf:"bytes,4,opt,name=multikill_timeout,json=multikillTimeout,proto3" json:"multikill_timeout,omitempty"`
	// Sets the threshold for “multikill_timeout“ in terms of the percentage of
	// nonresponsive threads required for the “multikill_timeout“.
	// If not specified the default is “0“.
	MultikillThreshold *v36.Percent `protobuf:"bytes,5,opt,name=multikill_threshold,json=multikillThreshold,proto3" json:"multikill_threshold,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*Watchdog) ProtoMessage() {}

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

func (x *Watchdog) GetActions() []*Watchdog_WatchdogAction {
	if x != nil {
		return x.Actions
	}
	return nil
}

func (x *Watchdog) GetMissTimeout() *durationpb.Duration {
	if x != nil {
		return x.MissTimeout
	}
	return nil
}

func (x *Watchdog) GetMegamissTimeout() *durationpb.Duration {
	if x != nil {
		return x.MegamissTimeout
	}
	return nil
}

func (x *Watchdog) GetKillTimeout() *durationpb.Duration {
	if x != nil {
		return x.KillTimeout
	}
	return nil
}

func (x *Watchdog) GetMaxKillTimeoutJitter() *durationpb.Duration {
	if x != nil {
		return x.MaxKillTimeoutJitter
	}
	return nil
}

func (x *Watchdog) GetMultikillTimeout() *durationpb.Duration {
	if x != nil {
		return x.MultikillTimeout
	}
	return nil
}

func (x *Watchdog) GetMultikillThreshold() *v36.Percent {
	if x != nil {
		return x.MultikillThreshold
	}
	return nil
}

// Fatal actions to run while crashing. Actions can be safe (meaning they are
// async-signal safe) or unsafe. We run all safe actions before we run unsafe actions.
//
// .. note::
//
//	If using an unsafe action that could get stuck or deadlock, it is important to
//	have an out of band system to terminate the process.
//
// The interface for the extension is “Envoy::Server::Configuration::FatalAction“.
// “FatalAction“ extensions live in the “envoy.extensions.fatal_actions“ API
// namespace.
type FatalAction struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Extension specific configuration for the action. It's expected to conform
	// to the “Envoy::Server::Configuration::FatalAction“ interface.
	Config        *v3.TypedExtensionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FatalAction) ProtoMessage() {}

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

func (x *FatalAction) GetConfig() *v3.TypedExtensionConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

// Runtime :ref:`configuration overview <config_runtime>` (deprecated).
type Runtime struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The implementation assumes that the file system tree is accessed via a
	// symbolic link. An atomic link swap is used when a new tree should be
	// switched to. This parameter specifies the path to the symbolic link. Envoy
	// will watch the location for changes and reload the file system tree when
	// they happen. If this parameter is not set, there will be no disk based
	// runtime.
	SymlinkRoot string `protobuf:"bytes,1,opt,name=symlink_root,json=symlinkRoot,proto3" json:"symlink_root,omitempty"`
	// Specifies the subdirectory to load within the root directory. This is
	// useful if multiple systems share the same delivery mechanism. Envoy
	// configuration elements can be contained in a dedicated subdirectory.
	Subdirectory string `protobuf:"bytes,2,opt,name=subdirectory,proto3" json:"subdirectory,omitempty"`
	// Specifies an optional subdirectory to load within the root directory. If
	// specified and the directory exists, configuration values within this
	// directory will override those found in the primary subdirectory. This is
	// useful when Envoy is deployed across many different types of servers.
	// Sometimes it is useful to have a per service cluster directory for runtime
	// configuration. See below for exactly how the override directory is used.
	OverrideSubdirectory string `protobuf:"bytes,3,opt,name=override_subdirectory,json=overrideSubdirectory,proto3" json:"override_subdirectory,omitempty"`
	// Static base runtime. This will be :ref:`overridden
	// <config_runtime_layering>` by other runtime layers, e.g.
	// disk or admin. This follows the :ref:`runtime protobuf JSON representation
	// encoding <config_runtime_proto_json>`.
	Base          *structpb.Struct `protobuf:"bytes,4,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Runtime) ProtoMessage() {}

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

func (x *Runtime) GetSymlinkRoot() string {
	if x != nil {
		return x.SymlinkRoot
	}
	return ""
}

func (x *Runtime) GetSubdirectory() string {
	if x != nil {
		return x.Subdirectory
	}
	return ""
}

func (x *Runtime) GetOverrideSubdirectory() string {
	if x != nil {
		return x.OverrideSubdirectory
	}
	return ""
}

func (x *Runtime) GetBase() *structpb.Struct {
	if x != nil {
		return x.Base
	}
	return nil
}

// [#next-free-field: 6]
type RuntimeLayer struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Descriptive name for the runtime layer. This is only used for the runtime
	// :http:get:`/runtime` output.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to LayerSpecifier:
	//
	//	*RuntimeLayer_StaticLayer
	//	*RuntimeLayer_DiskLayer_
	//	*RuntimeLayer_AdminLayer_
	//	*RuntimeLayer_RtdsLayer_
	LayerSpecifier isRuntimeLayer_LayerSpecifier `protobuf_oneof:"layer_specifier"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*RuntimeLayer) ProtoMessage() {}

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

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

func (x *RuntimeLayer) GetLayerSpecifier() isRuntimeLayer_LayerSpecifier {
	if x != nil {
		return x.LayerSpecifier
	}
	return nil
}

func (x *RuntimeLayer) GetStaticLayer() *structpb.Struct {
	if x != nil {
		if x, ok := x.LayerSpecifier.(*RuntimeLayer_StaticLayer); ok {
			return x.StaticLayer
		}
	}
	return nil
}

func (x *RuntimeLayer) GetDiskLayer() *RuntimeLayer_DiskLayer {
	if x != nil {
		if x, ok := x.LayerSpecifier.(*RuntimeLayer_DiskLayer_); ok {
			return x.DiskLayer
		}
	}
	return nil
}

func (x *RuntimeLayer) GetAdminLayer() *RuntimeLayer_AdminLayer {
	if x != nil {
		if x, ok := x.LayerSpecifier.(*RuntimeLayer_AdminLayer_); ok {
			return x.AdminLayer
		}
	}
	return nil
}

func (x *RuntimeLayer) GetRtdsLayer() *RuntimeLayer_RtdsLayer {
	if x != nil {
		if x, ok := x.LayerSpecifier.(*RuntimeLayer_RtdsLayer_); ok {
			return x.RtdsLayer
		}
	}
	return nil
}

type isRuntimeLayer_LayerSpecifier interface {
	isRuntimeLayer_LayerSpecifier()
}

type RuntimeLayer_StaticLayer struct {
	// :ref:`Static runtime <config_runtime_bootstrap>` layer.
	// This follows the :ref:`runtime protobuf JSON representation encoding
	// <config_runtime_proto_json>`. Unlike static xDS resources, this static
	// layer is overridable by later layers in the runtime virtual filesystem.
	StaticLayer *structpb.Struct `protobuf:"bytes,2,opt,name=static_layer,json=staticLayer,proto3,oneof"`
}

type RuntimeLayer_DiskLayer_ struct {
	DiskLayer *RuntimeLayer_DiskLayer `protobuf:"bytes,3,opt,name=disk_layer,json=diskLayer,proto3,oneof"`
}

type RuntimeLayer_AdminLayer_ struct {
	AdminLayer *RuntimeLayer_AdminLayer `protobuf:"bytes,4,opt,name=admin_layer,json=adminLayer,proto3,oneof"`
}

type RuntimeLayer_RtdsLayer_ struct {
	RtdsLayer *RuntimeLayer_RtdsLayer `protobuf:"bytes,5,opt,name=rtds_layer,json=rtdsLayer,proto3,oneof"`
}

func (*RuntimeLayer_StaticLayer) isRuntimeLayer_LayerSpecifier() {}

func (*RuntimeLayer_DiskLayer_) isRuntimeLayer_LayerSpecifier() {}

func (*RuntimeLayer_AdminLayer_) isRuntimeLayer_LayerSpecifier() {}

func (*RuntimeLayer_RtdsLayer_) isRuntimeLayer_LayerSpecifier() {}

// Runtime :ref:`configuration overview <config_runtime>`.
type LayeredRuntime struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The :ref:`layers <config_runtime_layering>` of the runtime. This is ordered
	// such that later layers in the list overlay earlier entries.
	Layers        []*RuntimeLayer `protobuf:"bytes,1,rep,name=layers,proto3" json:"layers,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LayeredRuntime) ProtoMessage() {}

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

func (x *LayeredRuntime) GetLayers() []*RuntimeLayer {
	if x != nil {
		return x.Layers
	}
	return nil
}

// Used to specify the header that needs to be registered as an inline header.
//
// If request or response contain multiple headers with the same name and the header
// name is registered as an inline header, then multiple headers will be folded
// into one, and multiple header values will be concatenated by a suitable delimiter.
// The delimiter is generally a comma.
//
// For example, if “foo“ is registered as an inline header, and the headers contain
// the following two headers:
//
// .. code-block:: text
//
//	foo: bar
//	foo: eep
//
// Then they will eventually be folded into:
//
// .. code-block:: text
//
//	foo: bar, eep
//
// Inline headers provide O(1) search performance, but each inline header imposes
// an additional memory overhead on all instances of the corresponding type of
// HeaderMap or TrailerMap.
type CustomInlineHeader struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the header that is expected to be set as the inline header.
	InlineHeaderName string `protobuf:"bytes,1,opt,name=inline_header_name,json=inlineHeaderName,proto3" json:"inline_header_name,omitempty"`
	// The type of the header that is expected to be set as the inline header.
	InlineHeaderType CustomInlineHeader_InlineHeaderType `protobuf:"varint,2,opt,name=inline_header_type,json=inlineHeaderType,proto3,enum=envoy.config.bootstrap.v3.CustomInlineHeader_InlineHeaderType" json:"inline_header_type,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*CustomInlineHeader) ProtoMessage() {}

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

func (x *CustomInlineHeader) GetInlineHeaderName() string {
	if x != nil {
		return x.InlineHeaderName
	}
	return ""
}

func (x *CustomInlineHeader) GetInlineHeaderType() CustomInlineHeader_InlineHeaderType {
	if x != nil {
		return x.InlineHeaderType
	}
	return CustomInlineHeader_REQUEST_HEADER
}

// [#next-free-field: 6]
type MemoryAllocatorManager struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Configures tcmalloc to perform background release of free memory in amount of bytes per “memory_release_interval“ interval.
	// If equals to “0“, no memory release will occur. Defaults to “0“.
	BytesToRelease uint64 `protobuf:"varint,1,opt,name=bytes_to_release,json=bytesToRelease,proto3" json:"bytes_to_release,omitempty"`
	// Interval in milliseconds for memory releasing. If specified, during every
	// interval Envoy will try to release “bytes_to_release“ of free memory back to operating system for reuse.
	// Defaults to “1000“ milliseconds.
	MemoryReleaseInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=memory_release_interval,json=memoryReleaseInterval,proto3" json:"memory_release_interval,omitempty"`
	// Sets the soft memory limit for tcmalloc. When the total memory used by tcmalloc exceeds this
	// limit, background release will be performed more aggressively to bring memory usage below the
	// limit. If not set, no soft memory limit is applied.
	//
	// .. note::
	//
	//	This is currently only supported with tcmalloc and not with ``gperftools``.
	SoftMemoryLimitBytes *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=soft_memory_limit_bytes,json=softMemoryLimitBytes,proto3" json:"soft_memory_limit_bytes,omitempty"`
	// Sets the maximum per-CPU cache size in bytes for tcmalloc. Smaller values reduce per-CPU
	// memory overhead at the cost of increased contention on the central free list. If not set,
	// tcmalloc's default is used.
	//
	// .. note::
	//
	//	This is currently only supported with tcmalloc and not with ``gperftools``.
	MaxPerCpuCacheSizeBytes *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=max_per_cpu_cache_size_bytes,json=maxPerCpuCacheSizeBytes,proto3" json:"max_per_cpu_cache_size_bytes,omitempty"`
	// The threshold of unfreed memory in bytes that triggers the heap shrinker to release memory
	// back to the OS. When the difference between physical memory used and application-allocated
	// memory exceeds this threshold, free memory is released.
	//
	// Defaults to “104857600“ (100 MB).
	MaxUnfreedMemoryBytes uint64 `protobuf:"varint,5,opt,name=max_unfreed_memory_bytes,json=maxUnfreedMemoryBytes,proto3" json:"max_unfreed_memory_bytes,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*MemoryAllocatorManager) ProtoMessage() {}

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

func (x *MemoryAllocatorManager) GetBytesToRelease() uint64 {
	if x != nil {
		return x.BytesToRelease
	}
	return 0
}

func (x *MemoryAllocatorManager) GetMemoryReleaseInterval() *durationpb.Duration {
	if x != nil {
		return x.MemoryReleaseInterval
	}
	return nil
}

func (x *MemoryAllocatorManager) GetSoftMemoryLimitBytes() *wrapperspb.UInt64Value {
	if x != nil {
		return x.SoftMemoryLimitBytes
	}
	return nil
}

func (x *MemoryAllocatorManager) GetMaxPerCpuCacheSizeBytes() *wrapperspb.UInt32Value {
	if x != nil {
		return x.MaxPerCpuCacheSizeBytes
	}
	return nil
}

func (x *MemoryAllocatorManager) GetMaxUnfreedMemoryBytes() uint64 {
	if x != nil {
		return x.MaxUnfreedMemoryBytes
	}
	return 0
}

// A placeholder proto so that users can explicitly configure the standard
// Listener Manager via the bootstrap's :ref:`listener_manager <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.listener_manager>`.
// [#not-implemented-hide:]
type ListenerManager struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListenerManager) ProtoMessage() {}

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

// A placeholder proto so that users can explicitly configure the standard
// Validation Listener Manager via the bootstrap's :ref:`listener_manager <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.listener_manager>`.
// [#not-implemented-hide:]
type ValidationListenerManager struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ValidationListenerManager) ProtoMessage() {}

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

// A placeholder proto so that users can explicitly configure the API
// Listener Manager via the bootstrap's :ref:`listener_manager <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.listener_manager>`.
// [#not-implemented-hide:]
type ApiListenerManager struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Default to MainThreadOnly.
	ThreadingModel ApiListenerManager_ThreadingModel `protobuf:"varint,1,opt,name=threading_model,json=threadingModel,proto3,enum=envoy.config.bootstrap.v3.ApiListenerManager_ThreadingModel" json:"threading_model,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*ApiListenerManager) ProtoMessage() {}

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

func (x *ApiListenerManager) GetThreadingModel() ApiListenerManager_ThreadingModel {
	if x != nil {
		return x.ThreadingModel
	}
	return ApiListenerManager_MAIN_THREAD_ONLY
}

type Bootstrap_StaticResources struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are
	// available regardless of LDS configuration.
	Listeners []*v37.Listener `protobuf:"bytes,1,rep,name=listeners,proto3" json:"listeners,omitempty"`
	// If a network based configuration source is specified for :ref:`cds_config
	// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
	// to have some initial cluster definitions available to allow Envoy to know
	// how to speak to the management server.
	Clusters []*v38.Cluster `protobuf:"bytes,2,rep,name=clusters,proto3" json:"clusters,omitempty"`
	// These static secrets can be used by :ref:`SdsSecretConfig
	// <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
	Secrets       []*v39.Secret `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Bootstrap_StaticResources) ProtoMessage() {}

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

func (x *Bootstrap_StaticResources) GetListeners() []*v37.Listener {
	if x != nil {
		return x.Listeners
	}
	return nil
}

func (x *Bootstrap_StaticResources) GetClusters() []*v38.Cluster {
	if x != nil {
		return x.Clusters
	}
	return nil
}

func (x *Bootstrap_StaticResources) GetSecrets() []*v39.Secret {
	if x != nil {
		return x.Secrets
	}
	return nil
}

// [#next-free-field: 7]
type Bootstrap_DynamicResources struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// All :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>` are provided by a single
	// :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
	LdsConfig *v3.ConfigSource `protobuf:"bytes,1,opt,name=lds_config,json=ldsConfig,proto3" json:"lds_config,omitempty"`
	// “xdstp://“ resource locator for listener collection.
	// [#not-implemented-hide:]
	LdsResourcesLocator string `protobuf:"bytes,5,opt,name=lds_resources_locator,json=ldsResourcesLocator,proto3" json:"lds_resources_locator,omitempty"`
	// All post-bootstrap :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` definitions are
	// provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
	// configuration source.
	CdsConfig *v3.ConfigSource `protobuf:"bytes,2,opt,name=cds_config,json=cdsConfig,proto3" json:"cds_config,omitempty"`
	// “xdstp://“ resource locator for cluster collection.
	// [#not-implemented-hide:]
	CdsResourcesLocator string `protobuf:"bytes,6,opt,name=cds_resources_locator,json=cdsResourcesLocator,proto3" json:"cds_resources_locator,omitempty"`
	// A single :ref:`ADS <config_overview_ads>` source may be optionally
	// specified. This must have :ref:`api_type
	// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
	// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
	// :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
	// the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
	// streamed on the ADS channel.
	AdsConfig     *v3.ApiConfigSource `protobuf:"bytes,3,opt,name=ads_config,json=adsConfig,proto3" json:"ads_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Bootstrap_DynamicResources) ProtoMessage() {}

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

func (x *Bootstrap_DynamicResources) GetLdsConfig() *v3.ConfigSource {
	if x != nil {
		return x.LdsConfig
	}
	return nil
}

func (x *Bootstrap_DynamicResources) GetLdsResourcesLocator() string {
	if x != nil {
		return x.LdsResourcesLocator
	}
	return ""
}

func (x *Bootstrap_DynamicResources) GetCdsConfig() *v3.ConfigSource {
	if x != nil {
		return x.CdsConfig
	}
	return nil
}

func (x *Bootstrap_DynamicResources) GetCdsResourcesLocator() string {
	if x != nil {
		return x.CdsResourcesLocator
	}
	return ""
}

func (x *Bootstrap_DynamicResources) GetAdsConfig() *v3.ApiConfigSource {
	if x != nil {
		return x.AdsConfig
	}
	return nil
}

type Bootstrap_ApplicationLogConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Optional field to set the application logs format. If this field is set, it will override
	// the default log format. Setting both this field and :option:`--log-format` command line
	// option is not allowed, and will cause a bootstrap error.
	LogFormat     *Bootstrap_ApplicationLogConfig_LogFormat `protobuf:"bytes,1,opt,name=log_format,json=logFormat,proto3" json:"log_format,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Bootstrap_ApplicationLogConfig) ProtoMessage() {}

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

func (x *Bootstrap_ApplicationLogConfig) GetLogFormat() *Bootstrap_ApplicationLogConfig_LogFormat {
	if x != nil {
		return x.LogFormat
	}
	return nil
}

type Bootstrap_DeferredStatOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// When the flag is enabled, Envoy will lazily initialize a subset of the stats (see below).
	// This will save memory and CPU cycles when creating the objects that own these stats, if those
	// stats are never referenced throughout the lifetime of the process. However, it will incur additional
	// memory overhead for these objects, and a small increase of CPU usage when at least one of the stats
	// is updated for the first time.
	//
	// Groups of stats that will be lazily initialized:
	//
	//   - Cluster traffic stats: a subgroup of the :ref:`cluster statistics <config_cluster_manager_cluster_stats>`
	//     that are used when requests are routed to the cluster.
	EnableDeferredCreationStats bool `protobuf:"varint,1,opt,name=enable_deferred_creation_stats,json=enableDeferredCreationStats,proto3" json:"enable_deferred_creation_stats,omitempty"`
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

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

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

func (*Bootstrap_DeferredStatOptions) ProtoMessage() {}

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

func (x *Bootstrap_DeferredStatOptions) GetEnableDeferredCreationStats() bool {
	if x != nil {
		return x.EnableDeferredCreationStats
	}
	return false
}

type Bootstrap_GrpcAsyncClientManagerConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Optional field to set the expiration time for the cached gRPC client object.
	// The minimal value is “5s“ and the default is “50s“.
	MaxCachedEntryIdleDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=max_cached_entry_idle_duration,json=maxCachedEntryIdleDuration,proto3" json:"max_cached_entry_idle_duration,omitempty"`
	unknownFields              protoimpl.UnknownFields
	sizeCache                  protoimpl.SizeCache
}

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

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

func (*Bootstrap_GrpcAsyncClientManagerConfig) ProtoMessage() {}

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

func (x *Bootstrap_GrpcAsyncClientManagerConfig) GetMaxCachedEntryIdleDuration() *durationpb.Duration {
	if x != nil {
		return x.MaxCachedEntryIdleDuration
	}
	return nil
}

type Bootstrap_ApplicationLogConfig_LogFormat struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to LogFormat:
	//
	//	*Bootstrap_ApplicationLogConfig_LogFormat_JsonFormat
	//	*Bootstrap_ApplicationLogConfig_LogFormat_TextFormat
	LogFormat     isBootstrap_ApplicationLogConfig_LogFormat_LogFormat `protobuf_oneof:"log_format"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Bootstrap_ApplicationLogConfig_LogFormat) ProtoMessage() {}

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

func (x *Bootstrap_ApplicationLogConfig_LogFormat) GetLogFormat() isBootstrap_ApplicationLogConfig_LogFormat_LogFormat {
	if x != nil {
		return x.LogFormat
	}
	return nil
}

func (x *Bootstrap_ApplicationLogConfig_LogFormat) GetJsonFormat() *structpb.Struct {
	if x != nil {
		if x, ok := x.LogFormat.(*Bootstrap_ApplicationLogConfig_LogFormat_JsonFormat); ok {
			return x.JsonFormat
		}
	}
	return nil
}

func (x *Bootstrap_ApplicationLogConfig_LogFormat) GetTextFormat() string {
	if x != nil {
		if x, ok := x.LogFormat.(*Bootstrap_ApplicationLogConfig_LogFormat_TextFormat); ok {
			return x.TextFormat
		}
	}
	return ""
}

type isBootstrap_ApplicationLogConfig_LogFormat_LogFormat interface {
	isBootstrap_ApplicationLogConfig_LogFormat_LogFormat()
}

type Bootstrap_ApplicationLogConfig_LogFormat_JsonFormat struct {
	// Flush application logs in JSON format. The configured JSON struct can
	// support all the format flags specified in the :option:`--log-format`
	// command line options section, except for the “%v“ and “%_“ flags.
	JsonFormat *structpb.Struct `protobuf:"bytes,1,opt,name=json_format,json=jsonFormat,proto3,oneof"`
}

type Bootstrap_ApplicationLogConfig_LogFormat_TextFormat struct {
	// Flush application log in a format defined by a string. The text format
	// can support all the format flags specified in the :option:`--log-format`
	// command line option section.
	TextFormat string `protobuf:"bytes,2,opt,name=text_format,json=textFormat,proto3,oneof"`
}

func (*Bootstrap_ApplicationLogConfig_LogFormat_JsonFormat) isBootstrap_ApplicationLogConfig_LogFormat_LogFormat() {
}

func (*Bootstrap_ApplicationLogConfig_LogFormat_TextFormat) isBootstrap_ApplicationLogConfig_LogFormat_LogFormat() {
}

type ClusterManager_OutlierDetection struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specifies the path to the outlier event log.
	EventLogPath string `protobuf:"bytes,1,opt,name=event_log_path,json=eventLogPath,proto3" json:"event_log_path,omitempty"`
	// [#not-implemented-hide:]
	// The gRPC service for the outlier detection event service.
	// If empty, outlier detection events won't be sent to a remote endpoint.
	EventService  *v3.EventServiceConfig `protobuf:"bytes,2,opt,name=event_service,json=eventService,proto3" json:"event_service,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ClusterManager_OutlierDetection) ProtoMessage() {}

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

func (x *ClusterManager_OutlierDetection) GetEventLogPath() string {
	if x != nil {
		return x.EventLogPath
	}
	return ""
}

func (x *ClusterManager_OutlierDetection) GetEventService() *v3.EventServiceConfig {
	if x != nil {
		return x.EventService
	}
	return nil
}

type Watchdog_WatchdogAction struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Extension specific configuration for the action.
	Config        *v3.TypedExtensionConfig              `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	Event         Watchdog_WatchdogAction_WatchdogEvent `protobuf:"varint,2,opt,name=event,proto3,enum=envoy.config.bootstrap.v3.Watchdog_WatchdogAction_WatchdogEvent" json:"event,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Watchdog_WatchdogAction) Reset() {
	*x = Watchdog_WatchdogAction{}
	mi := &file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Watchdog_WatchdogAction) ProtoMessage() {}

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

func (x *Watchdog_WatchdogAction) GetConfig() *v3.TypedExtensionConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *Watchdog_WatchdogAction) GetEvent() Watchdog_WatchdogAction_WatchdogEvent {
	if x != nil {
		return x.Event
	}
	return Watchdog_WatchdogAction_UNKNOWN
}

// :ref:`Disk runtime <config_runtime_local_disk>` layer.
type RuntimeLayer_DiskLayer struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The implementation assumes that the file system tree is accessed via a
	// symbolic link. An atomic link swap is used when a new tree should be
	// switched to. This parameter specifies the path to the symbolic link.
	// Envoy will watch the location for changes and reload the file system tree
	// when they happen. See documentation on runtime :ref:`atomicity
	// <config_runtime_atomicity>` for further details on how reloads are
	// treated.
	SymlinkRoot string `protobuf:"bytes,1,opt,name=symlink_root,json=symlinkRoot,proto3" json:"symlink_root,omitempty"`
	// Specifies the subdirectory to load within the root directory. This is
	// useful if multiple systems share the same delivery mechanism. Envoy
	// configuration elements can be contained in a dedicated subdirectory.
	Subdirectory string `protobuf:"bytes,3,opt,name=subdirectory,proto3" json:"subdirectory,omitempty"`
	// :ref:`Append <config_runtime_local_disk_service_cluster_subdirs>` the
	// service cluster to the path under symlink root.
	AppendServiceCluster bool `protobuf:"varint,2,opt,name=append_service_cluster,json=appendServiceCluster,proto3" json:"append_service_cluster,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *RuntimeLayer_DiskLayer) Reset() {
	*x = RuntimeLayer_DiskLayer{}
	mi := &file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RuntimeLayer_DiskLayer) ProtoMessage() {}

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

func (x *RuntimeLayer_DiskLayer) GetSymlinkRoot() string {
	if x != nil {
		return x.SymlinkRoot
	}
	return ""
}

func (x *RuntimeLayer_DiskLayer) GetSubdirectory() string {
	if x != nil {
		return x.Subdirectory
	}
	return ""
}

func (x *RuntimeLayer_DiskLayer) GetAppendServiceCluster() bool {
	if x != nil {
		return x.AppendServiceCluster
	}
	return false
}

// :ref:`Admin console runtime <config_runtime_admin>` layer.
type RuntimeLayer_AdminLayer struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RuntimeLayer_AdminLayer) Reset() {
	*x = RuntimeLayer_AdminLayer{}
	mi := &file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RuntimeLayer_AdminLayer) ProtoMessage() {}

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

// :ref:`Runtime Discovery Service (RTDS) <config_runtime_rtds>` layer.
type RuntimeLayer_RtdsLayer struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Resource to subscribe to at the “rtds_config“ for the RTDS layer.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// RTDS configuration source.
	RtdsConfig    *v3.ConfigSource `protobuf:"bytes,2,opt,name=rtds_config,json=rtdsConfig,proto3" json:"rtds_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RuntimeLayer_RtdsLayer) Reset() {
	*x = RuntimeLayer_RtdsLayer{}
	mi := &file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RuntimeLayer_RtdsLayer) ProtoMessage() {}

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

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

func (x *RuntimeLayer_RtdsLayer) GetRtdsConfig() *v3.ConfigSource {
	if x != nil {
		return x.RtdsConfig
	}
	return nil
}

var File_envoy_config_bootstrap_v3_bootstrap_proto protoreflect.FileDescriptor

const file_envoy_config_bootstrap_v3_bootstrap_proto_rawDesc = "" +
	"\n" +
	")envoy/config/bootstrap/v3/bootstrap.proto\x12\x19envoy.config.bootstrap.v3\x1a)envoy/config/accesslog/v3/accesslog.proto\x1a%envoy/config/cluster/v3/cluster.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/event_service_config.proto\x1a$envoy/config/core/v3/extension.proto\x1a#envoy/config/core/v3/resolver.proto\x1a(envoy/config/core/v3/socket_option.proto\x1a'envoy/config/listener/v3/listener.proto\x1a#envoy/config/metrics/v3/stats.proto\x1a'envoy/config/overload/v3/overload.proto\x1a'envoy/config/trace/v3/http_tracer.proto\x1a6envoy/extensions/transport_sockets/tls/v3/secret.proto\x1a\"envoy/type/matcher/v3/string.proto\x1a\x1benvoy/type/v3/percent.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.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\"\xcb%\n" +
	"\tBootstrap\x12.\n" +
	"\x04node\x18\x01 \x01(\v2\x1a.envoy.config.core.v3.NodeR\x04node\x12.\n" +
	"\x13node_context_params\x18\x1a \x03(\tR\x11nodeContextParams\x12_\n" +
	"\x10static_resources\x18\x02 \x01(\v24.envoy.config.bootstrap.v3.Bootstrap.StaticResourcesR\x0fstaticResources\x12b\n" +
	"\x11dynamic_resources\x18\x03 \x01(\v25.envoy.config.bootstrap.v3.Bootstrap.DynamicResourcesR\x10dynamicResources\x12R\n" +
	"\x0fcluster_manager\x18\x04 \x01(\v2).envoy.config.bootstrap.v3.ClusterManagerR\x0eclusterManager\x12D\n" +
	"\n" +
	"hds_config\x18\x0e \x01(\v2%.envoy.config.core.v3.ApiConfigSourceR\thdsConfig\x12\x1d\n" +
	"\n" +
	"flags_path\x18\x05 \x01(\tR\tflagsPath\x12C\n" +
	"\vstats_sinks\x18\x06 \x03(\v2\".envoy.config.metrics.v3.StatsSinkR\n" +
	"statsSinks\x12l\n" +
	"\x15deferred_stat_options\x18' \x01(\v28.envoy.config.bootstrap.v3.Bootstrap.DeferredStatOptionsR\x13deferredStatOptions\x12G\n" +
	"\fstats_config\x18\r \x01(\v2$.envoy.config.metrics.v3.StatsConfigR\vstatsConfig\x12q\n" +
	"\x14stats_flush_interval\x18\a \x01(\v2\x19.google.protobuf.DurationB$\xfaB\x0e\xaa\x01\v\x1a\x03\b\xac\x022\x04\x10\xc0\x84=\xf2\x98\xfe\x8f\x05\r\x12\vstats_flushR\x12statsFlushInterval\x12:\n" +
	"\x14stats_flush_on_admin\x18\x1d \x01(\bB\a\xfaB\x04j\x02\b\x01H\x00R\x11statsFlushOnAdmin\x12a\n" +
	"\x17stats_eviction_interval\x18* \x01(\v2\x19.google.protobuf.DurationB\f\xfaB\t\xaa\x01\x062\x04\x10\xc0\x84=H\x01R\x15statsEvictionInterval\x12L\n" +
	"\bwatchdog\x18\b \x01(\v2#.envoy.config.bootstrap.v3.WatchdogB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\bwatchdog\x12B\n" +
	"\twatchdogs\x18\x1b \x01(\v2$.envoy.config.bootstrap.v3.WatchdogsR\twatchdogs\x12E\n" +
	"\atracing\x18\t \x01(\v2\x1e.envoy.config.trace.v3.TracingB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\atracing\x12R\n" +
	"\x0flayered_runtime\x18\x11 \x01(\v2).envoy.config.bootstrap.v3.LayeredRuntimeR\x0elayeredRuntime\x126\n" +
	"\x05admin\x18\f \x01(\v2 .envoy.config.bootstrap.v3.AdminR\x05admin\x12_\n" +
	"\x10overload_manager\x18\x0f \x01(\v2).envoy.config.overload.v3.OverloadManagerB\t\x8a\x93\xb7*\x04\b\x01\x10\x01R\x0foverloadManager\x126\n" +
	"\x17enable_dispatcher_stats\x18\x10 \x01(\bR\x15enableDispatcherStats\x12#\n" +
	"\rheader_prefix\x18\x12 \x01(\tR\fheaderPrefix\x12_\n" +
	"\x1dstats_server_version_override\x18\x13 \x01(\v2\x1c.google.protobuf.UInt64ValueR\x1astatsServerVersionOverride\x12A\n" +
	"\x17use_tcp_for_dns_lookups\x18\x14 \x01(\bB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\x13useTcpForDnsLookups\x12j\n" +
	"\x15dns_resolution_config\x18\x1e \x01(\v2).envoy.config.core.v3.DnsResolutionConfigB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\x13dnsResolutionConfig\x12e\n" +
	"\x19typed_dns_resolver_config\x18\x1f \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x16typedDnsResolverConfig\x12]\n" +
	"\x14bootstrap_extensions\x18\x15 \x03(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x13bootstrapExtensions\x12K\n" +
	"\rfatal_actions\x18\x1c \x03(\v2&.envoy.config.bootstrap.v3.FatalActionR\ffatalActions\x12I\n" +
	"\x0econfig_sources\x18\x16 \x03(\v2\".envoy.config.core.v3.ConfigSourceR\rconfigSources\x12V\n" +
	"\x15default_config_source\x18\x17 \x01(\v2\".envoy.config.core.v3.ConfigSourceR\x13defaultConfigSource\x128\n" +
	"\x18default_socket_interface\x18\x18 \x01(\tR\x16defaultSocketInterface\x12\x8c\x01\n" +
	"\x1ecertificate_provider_instances\x18\x19 \x03(\v2F.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntryR\x1ccertificateProviderInstances\x12T\n" +
	"\x0einline_headers\x18  \x03(\v2-.envoy.config.bootstrap.v3.CustomInlineHeaderR\rinlineHeaders\x123\n" +
	"\x16perf_tracing_file_path\x18! \x01(\tR\x13perfTracingFilePath\x12\\\n" +
	"\x14default_regex_engine\x18\" \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x12defaultRegexEngine\x12`\n" +
	"\x16xds_delegate_extension\x18# \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x14xdsDelegateExtension\x12k\n" +
	"\x1cxds_config_tracker_extension\x18$ \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x19xdsConfigTrackerExtension\x12U\n" +
	"\x10listener_manager\x18% \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x0flistenerManager\x12o\n" +
	"\x16application_log_config\x18& \x01(\v29.envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfigR\x14applicationLogConfig\x12\x89\x01\n" +
	" grpc_async_client_manager_config\x18( \x01(\v2A.envoy.config.bootstrap.v3.Bootstrap.GrpcAsyncClientManagerConfigR\x1cgrpcAsyncClientManagerConfig\x12k\n" +
	"\x18memory_allocator_manager\x18) \x01(\v21.envoy.config.bootstrap.v3.MemoryAllocatorManagerR\x16memoryAllocatorManager\x12;\n" +
	"\x1aenable_worker_cpu_affinity\x18+ \x01(\bR\x17enableWorkerCpuAffinity\x1a\x9a\x02\n" +
	"\x0fStaticResources\x12@\n" +
	"\tlisteners\x18\x01 \x03(\v2\".envoy.config.listener.v3.ListenerR\tlisteners\x12<\n" +
	"\bclusters\x18\x02 \x03(\v2 .envoy.config.cluster.v3.ClusterR\bclusters\x12K\n" +
	"\asecrets\x18\x03 \x03(\v21.envoy.extensions.transport_sockets.tls.v3.SecretR\asecrets::\x9aň\x1e5\n" +
	"3envoy.config.bootstrap.v2.Bootstrap.StaticResources\x1a\x89\x03\n" +
	"\x10DynamicResources\x12A\n" +
	"\n" +
	"lds_config\x18\x01 \x01(\v2\".envoy.config.core.v3.ConfigSourceR\tldsConfig\x122\n" +
	"\x15lds_resources_locator\x18\x05 \x01(\tR\x13ldsResourcesLocator\x12A\n" +
	"\n" +
	"cds_config\x18\x02 \x01(\v2\".envoy.config.core.v3.ConfigSourceR\tcdsConfig\x122\n" +
	"\x15cds_resources_locator\x18\x06 \x01(\tR\x13cdsResourcesLocator\x12D\n" +
	"\n" +
	"ads_config\x18\x03 \x01(\v2%.envoy.config.core.v3.ApiConfigSourceR\tadsConfig:;\x9aň\x1e6\n" +
	"4envoy.config.bootstrap.v2.Bootstrap.DynamicResourcesJ\x04\b\x04\x10\x05\x1a\xf9\x01\n" +
	"\x14ApplicationLogConfig\x12b\n" +
	"\n" +
	"log_format\x18\x01 \x01(\v2C.envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig.LogFormatR\tlogFormat\x1a}\n" +
	"\tLogFormat\x12:\n" +
	"\vjson_format\x18\x01 \x01(\v2\x17.google.protobuf.StructH\x00R\n" +
	"jsonFormat\x12!\n" +
	"\vtext_format\x18\x02 \x01(\tH\x00R\n" +
	"textFormatB\x11\n" +
	"\n" +
	"log_format\x12\x03\xf8B\x01\x1aZ\n" +
	"\x13DeferredStatOptions\x12C\n" +
	"\x1eenable_deferred_creation_stats\x18\x01 \x01(\bR\x1benableDeferredCreationStats\x1a\x89\x01\n" +
	"\x1cGrpcAsyncClientManagerConfig\x12i\n" +
	"\x1emax_cached_entry_idle_duration\x18\x01 \x01(\v2\x19.google.protobuf.DurationB\n" +
	"\xfaB\a\xaa\x01\x042\x02\b\x05R\x1amaxCachedEntryIdleDuration\x1a{\n" +
	"!CertificateProviderInstancesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12@\n" +
	"\x05value\x18\x02 \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x05value:\x028\x01:*\x9aň\x1e%\n" +
	"#envoy.config.bootstrap.v2.BootstrapB\r\n" +
	"\vstats_flushB\x10\n" +
	"\x0estats_evictionJ\x04\b\n" +
	"\x10\vJ\x04\b\v\x10\fR\aruntime\"\xd0\x03\n" +
	"\x05Admin\x12C\n" +
	"\n" +
	"access_log\x18\x05 \x03(\v2$.envoy.config.accesslog.v3.AccessLogR\taccessLog\x123\n" +
	"\x0faccess_log_path\x18\x01 \x01(\tB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\raccessLogPath\x12!\n" +
	"\fprofile_path\x18\x02 \x01(\tR\vprofilePath\x127\n" +
	"\aaddress\x18\x03 \x01(\v2\x1d.envoy.config.core.v3.AddressR\aaddress\x12I\n" +
	"\x0esocket_options\x18\x04 \x03(\v2\".envoy.config.core.v3.SocketOptionR\rsocketOptions\x127\n" +
	"\x18ignore_global_conn_limit\x18\x06 \x01(\bR\x15ignoreGlobalConnLimit\x12E\n" +
	"\vallow_paths\x18\a \x03(\v2$.envoy.type.matcher.v3.StringMatcherR\n" +
	"allowPaths:&\x9aň\x1e!\n" +
	"\x1fenvoy.config.bootstrap.v2.Admin\"\x94\x05\n" +
	"\x0eClusterManager\x12,\n" +
	"\x12local_cluster_name\x18\x01 \x01(\tR\x10localClusterName\x12g\n" +
	"\x11outlier_detection\x18\x02 \x01(\v2:.envoy.config.bootstrap.v3.ClusterManager.OutlierDetectionR\x10outlierDetection\x12R\n" +
	"\x14upstream_bind_config\x18\x03 \x01(\v2 .envoy.config.core.v3.BindConfigR\x12upstreamBindConfig\x12Q\n" +
	"\x11load_stats_config\x18\x04 \x01(\v2%.envoy.config.core.v3.ApiConfigSourceR\x0floadStatsConfig\x12G\n" +
	" enable_deferred_cluster_creation\x18\x05 \x01(\bR\x1denableDeferredClusterCreation\x1a\xc9\x01\n" +
	"\x10OutlierDetection\x12$\n" +
	"\x0eevent_log_path\x18\x01 \x01(\tR\feventLogPath\x12M\n" +
	"\revent_service\x18\x02 \x01(\v2(.envoy.config.core.v3.EventServiceConfigR\feventService:@\x9aň\x1e;\n" +
	"9envoy.config.bootstrap.v2.ClusterManager.OutlierDetection:/\x9aň\x1e*\n" +
	"(envoy.config.bootstrap.v2.ClusterManager\"\xb0\x01\n" +
	"\tWatchdogs\x12U\n" +
	"\x14main_thread_watchdog\x18\x01 \x01(\v2#.envoy.config.bootstrap.v3.WatchdogR\x12mainThreadWatchdog\x12L\n" +
	"\x0fworker_watchdog\x18\x02 \x01(\v2#.envoy.config.bootstrap.v3.WatchdogR\x0eworkerWatchdog\"\xba\x06\n" +
	"\bWatchdog\x12L\n" +
	"\aactions\x18\a \x03(\v22.envoy.config.bootstrap.v3.Watchdog.WatchdogActionR\aactions\x12<\n" +
	"\fmiss_timeout\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\vmissTimeout\x12D\n" +
	"\x10megamiss_timeout\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x0fmegamissTimeout\x12<\n" +
	"\fkill_timeout\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\vkillTimeout\x12Z\n" +
	"\x17max_kill_timeout_jitter\x18\x06 \x01(\v2\x19.google.protobuf.DurationB\b\xfaB\x05\xaa\x01\x022\x00R\x14maxKillTimeoutJitter\x12F\n" +
	"\x11multikill_timeout\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\x10multikillTimeout\x12G\n" +
	"\x13multikill_threshold\x18\x05 \x01(\v2\x16.envoy.type.v3.PercentR\x12multikillThreshold\x1a\x85\x02\n" +
	"\x0eWatchdogAction\x12B\n" +
	"\x06config\x18\x01 \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x06config\x12`\n" +
	"\x05event\x18\x02 \x01(\x0e2@.envoy.config.bootstrap.v3.Watchdog.WatchdogAction.WatchdogEventB\b\xfaB\x05\x82\x01\x02\x10\x01R\x05event\"M\n" +
	"\rWatchdogEvent\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\b\n" +
	"\x04KILL\x10\x01\x12\r\n" +
	"\tMULTIKILL\x10\x02\x12\f\n" +
	"\bMEGAMISS\x10\x03\x12\b\n" +
	"\x04MISS\x10\x04:)\x9aň\x1e$\n" +
	"\"envoy.config.bootstrap.v2.Watchdog\"Q\n" +
	"\vFatalAction\x12B\n" +
	"\x06config\x18\x01 \x01(\v2*.envoy.config.core.v3.TypedExtensionConfigR\x06config\"\xdc\x01\n" +
	"\aRuntime\x12!\n" +
	"\fsymlink_root\x18\x01 \x01(\tR\vsymlinkRoot\x12\"\n" +
	"\fsubdirectory\x18\x02 \x01(\tR\fsubdirectory\x123\n" +
	"\x15override_subdirectory\x18\x03 \x01(\tR\x14overrideSubdirectory\x12+\n" +
	"\x04base\x18\x04 \x01(\v2\x17.google.protobuf.StructR\x04base:(\x9aň\x1e#\n" +
	"!envoy.config.bootstrap.v2.Runtime\"\xdb\x06\n" +
	"\fRuntimeLayer\x12\x1b\n" +
	"\x04name\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x04name\x12<\n" +
	"\fstatic_layer\x18\x02 \x01(\v2\x17.google.protobuf.StructH\x00R\vstaticLayer\x12R\n" +
	"\n" +
	"disk_layer\x18\x03 \x01(\v21.envoy.config.bootstrap.v3.RuntimeLayer.DiskLayerH\x00R\tdiskLayer\x12U\n" +
	"\vadmin_layer\x18\x04 \x01(\v22.envoy.config.bootstrap.v3.RuntimeLayer.AdminLayerH\x00R\n" +
	"adminLayer\x12R\n" +
	"\n" +
	"rtds_layer\x18\x05 \x01(\v21.envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayerH\x00R\trtdsLayer\x1a\xc1\x01\n" +
	"\tDiskLayer\x12!\n" +
	"\fsymlink_root\x18\x01 \x01(\tR\vsymlinkRoot\x12\"\n" +
	"\fsubdirectory\x18\x03 \x01(\tR\fsubdirectory\x124\n" +
	"\x16append_service_cluster\x18\x02 \x01(\bR\x14appendServiceCluster:7\x9aň\x1e2\n" +
	"0envoy.config.bootstrap.v2.RuntimeLayer.DiskLayer\x1aF\n" +
	"\n" +
	"AdminLayer:8\x9aň\x1e3\n" +
	"1envoy.config.bootstrap.v2.RuntimeLayer.AdminLayer\x1a\x9d\x01\n" +
	"\tRtdsLayer\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12C\n" +
	"\vrtds_config\x18\x02 \x01(\v2\".envoy.config.core.v3.ConfigSourceR\n" +
	"rtdsConfig:7\x9aň\x1e2\n" +
	"0envoy.config.bootstrap.v2.RuntimeLayer.RtdsLayer:-\x9aň\x1e(\n" +
	"&envoy.config.bootstrap.v2.RuntimeLayerB\x16\n" +
	"\x0flayer_specifier\x12\x03\xf8B\x01\"\x82\x01\n" +
	"\x0eLayeredRuntime\x12?\n" +
	"\x06layers\x18\x01 \x03(\v2'.envoy.config.bootstrap.v3.RuntimeLayerR\x06layers:/\x9aň\x1e*\n" +
	"(envoy.config.bootstrap.v2.LayeredRuntime\"\xb1\x02\n" +
	"\x12CustomInlineHeader\x12;\n" +
	"\x12inline_header_name\x18\x01 \x01(\tB\r\xfaB\n" +
	"r\b\x10\x01\xc8\x01\x00\xc0\x01\x01R\x10inlineHeaderName\x12v\n" +
	"\x12inline_header_type\x18\x02 \x01(\x0e2>.envoy.config.bootstrap.v3.CustomInlineHeader.InlineHeaderTypeB\b\xfaB\x05\x82\x01\x02\x10\x01R\x10inlineHeaderType\"f\n" +
	"\x10InlineHeaderType\x12\x12\n" +
	"\x0eREQUEST_HEADER\x10\x00\x12\x13\n" +
	"\x0fREQUEST_TRAILER\x10\x01\x12\x13\n" +
	"\x0fRESPONSE_HEADER\x10\x02\x12\x14\n" +
	"\x10RESPONSE_TRAILER\x10\x03\"\x80\x03\n" +
	"\x16MemoryAllocatorManager\x12(\n" +
	"\x10bytes_to_release\x18\x01 \x01(\x04R\x0ebytesToRelease\x12Q\n" +
	"\x17memory_release_interval\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x15memoryReleaseInterval\x12S\n" +
	"\x17soft_memory_limit_bytes\x18\x03 \x01(\v2\x1c.google.protobuf.UInt64ValueR\x14softMemoryLimitBytes\x12[\n" +
	"\x1cmax_per_cpu_cache_size_bytes\x18\x04 \x01(\v2\x1c.google.protobuf.UInt32ValueR\x17maxPerCpuCacheSizeBytes\x127\n" +
	"\x18max_unfreed_memory_bytes\x18\x05 \x01(\x04R\x15maxUnfreedMemoryBytes\"\x11\n" +
	"\x0fListenerManager\"\x1b\n" +
	"\x19ValidationListenerManager\"\xc1\x01\n" +
	"\x12ApiListenerManager\x12e\n" +
	"\x0fthreading_model\x18\x01 \x01(\x0e2<.envoy.config.bootstrap.v3.ApiListenerManager.ThreadingModelR\x0ethreadingModel\"D\n" +
	"\x0eThreadingModel\x12\x14\n" +
	"\x10MAIN_THREAD_ONLY\x10\x00\x12\x1c\n" +
	"\x18STANDALONE_WORKER_THREAD\x10\x01B\x91\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"'io.envoyproxy.envoy.config.bootstrap.v3B\x0eBootstrapProtoP\x01ZLgithub.com/envoyproxy/go-control-plane/envoy/config/bootstrap/v3;bootstrapv3b\x06proto3"

var (
	file_envoy_config_bootstrap_v3_bootstrap_proto_rawDescOnce sync.Once
	file_envoy_config_bootstrap_v3_bootstrap_proto_rawDescData []byte
)

func file_envoy_config_bootstrap_v3_bootstrap_proto_rawDescGZIP() []byte {
	file_envoy_config_bootstrap_v3_bootstrap_proto_rawDescOnce.Do(func() {
		file_envoy_config_bootstrap_v3_bootstrap_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_config_bootstrap_v3_bootstrap_proto_rawDesc), len(file_envoy_config_bootstrap_v3_bootstrap_proto_rawDesc)))
	})
	return file_envoy_config_bootstrap_v3_bootstrap_proto_rawDescData
}

var file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_envoy_config_bootstrap_v3_bootstrap_proto_goTypes = []any{
	(Watchdog_WatchdogAction_WatchdogEvent)(0),     // 0: envoy.config.bootstrap.v3.Watchdog.WatchdogAction.WatchdogEvent
	(CustomInlineHeader_InlineHeaderType)(0),       // 1: envoy.config.bootstrap.v3.CustomInlineHeader.InlineHeaderType
	(ApiListenerManager_ThreadingModel)(0),         // 2: envoy.config.bootstrap.v3.ApiListenerManager.ThreadingModel
	(*Bootstrap)(nil),                              // 3: envoy.config.bootstrap.v3.Bootstrap
	(*Admin)(nil),                                  // 4: envoy.config.bootstrap.v3.Admin
	(*ClusterManager)(nil),                         // 5: envoy.config.bootstrap.v3.ClusterManager
	(*Watchdogs)(nil),                              // 6: envoy.config.bootstrap.v3.Watchdogs
	(*Watchdog)(nil),                               // 7: envoy.config.bootstrap.v3.Watchdog
	(*FatalAction)(nil),                            // 8: envoy.config.bootstrap.v3.FatalAction
	(*Runtime)(nil),                                // 9: envoy.config.bootstrap.v3.Runtime
	(*RuntimeLayer)(nil),                           // 10: envoy.config.bootstrap.v3.RuntimeLayer
	(*LayeredRuntime)(nil),                         // 11: envoy.config.bootstrap.v3.LayeredRuntime
	(*CustomInlineHeader)(nil),                     // 12: envoy.config.bootstrap.v3.CustomInlineHeader
	(*MemoryAllocatorManager)(nil),                 // 13: envoy.config.bootstrap.v3.MemoryAllocatorManager
	(*ListenerManager)(nil),                        // 14: envoy.config.bootstrap.v3.ListenerManager
	(*ValidationListenerManager)(nil),              // 15: envoy.config.bootstrap.v3.ValidationListenerManager
	(*ApiListenerManager)(nil),                     // 16: envoy.config.bootstrap.v3.ApiListenerManager
	(*Bootstrap_StaticResources)(nil),              // 17: envoy.config.bootstrap.v3.Bootstrap.StaticResources
	(*Bootstrap_DynamicResources)(nil),             // 18: envoy.config.bootstrap.v3.Bootstrap.DynamicResources
	(*Bootstrap_ApplicationLogConfig)(nil),         // 19: envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig
	(*Bootstrap_DeferredStatOptions)(nil),          // 20: envoy.config.bootstrap.v3.Bootstrap.DeferredStatOptions
	(*Bootstrap_GrpcAsyncClientManagerConfig)(nil), // 21: envoy.config.bootstrap.v3.Bootstrap.GrpcAsyncClientManagerConfig
	nil, // 22: envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry
	(*Bootstrap_ApplicationLogConfig_LogFormat)(nil), // 23: envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig.LogFormat
	(*ClusterManager_OutlierDetection)(nil),          // 24: envoy.config.bootstrap.v3.ClusterManager.OutlierDetection
	(*Watchdog_WatchdogAction)(nil),                  // 25: envoy.config.bootstrap.v3.Watchdog.WatchdogAction
	(*RuntimeLayer_DiskLayer)(nil),                   // 26: envoy.config.bootstrap.v3.RuntimeLayer.DiskLayer
	(*RuntimeLayer_AdminLayer)(nil),                  // 27: envoy.config.bootstrap.v3.RuntimeLayer.AdminLayer
	(*RuntimeLayer_RtdsLayer)(nil),                   // 28: envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer
	(*v3.Node)(nil),                                  // 29: envoy.config.core.v3.Node
	(*v3.ApiConfigSource)(nil),                       // 30: envoy.config.core.v3.ApiConfigSource
	(*v31.StatsSink)(nil),                            // 31: envoy.config.metrics.v3.StatsSink
	(*v31.StatsConfig)(nil),                          // 32: envoy.config.metrics.v3.StatsConfig
	(*durationpb.Duration)(nil),                      // 33: google.protobuf.Duration
	(*v32.Tracing)(nil),                              // 34: envoy.config.trace.v3.Tracing
	(*v33.OverloadManager)(nil),                      // 35: envoy.config.overload.v3.OverloadManager
	(*wrapperspb.UInt64Value)(nil),                   // 36: google.protobuf.UInt64Value
	(*v3.DnsResolutionConfig)(nil),                   // 37: envoy.config.core.v3.DnsResolutionConfig
	(*v3.TypedExtensionConfig)(nil),                  // 38: envoy.config.core.v3.TypedExtensionConfig
	(*v3.ConfigSource)(nil),                          // 39: envoy.config.core.v3.ConfigSource
	(*v34.AccessLog)(nil),                            // 40: envoy.config.accesslog.v3.AccessLog
	(*v3.Address)(nil),                               // 41: envoy.config.core.v3.Address
	(*v3.SocketOption)(nil),                          // 42: envoy.config.core.v3.SocketOption
	(*v35.StringMatcher)(nil),                        // 43: envoy.type.matcher.v3.StringMatcher
	(*v3.BindConfig)(nil),                            // 44: envoy.config.core.v3.BindConfig
	(*v36.Percent)(nil),                              // 45: envoy.type.v3.Percent
	(*structpb.Struct)(nil),                          // 46: google.protobuf.Struct
	(*wrapperspb.UInt32Value)(nil),                   // 47: google.protobuf.UInt32Value
	(*v37.Listener)(nil),                             // 48: envoy.config.listener.v3.Listener
	(*v38.Cluster)(nil),                              // 49: envoy.config.cluster.v3.Cluster
	(*v39.Secret)(nil),                               // 50: envoy.extensions.transport_sockets.tls.v3.Secret
	(*v3.EventServiceConfig)(nil),                    // 51: envoy.config.core.v3.EventServiceConfig
}
var file_envoy_config_bootstrap_v3_bootstrap_proto_depIdxs = []int32{
	29, // 0: envoy.config.bootstrap.v3.Bootstrap.node:type_name -> envoy.config.core.v3.Node
	17, // 1: envoy.config.bootstrap.v3.Bootstrap.static_resources:type_name -> envoy.config.bootstrap.v3.Bootstrap.StaticResources
	18, // 2: envoy.config.bootstrap.v3.Bootstrap.dynamic_resources:type_name -> envoy.config.bootstrap.v3.Bootstrap.DynamicResources
	5,  // 3: envoy.config.bootstrap.v3.Bootstrap.cluster_manager:type_name -> envoy.config.bootstrap.v3.ClusterManager
	30, // 4: envoy.config.bootstrap.v3.Bootstrap.hds_config:type_name -> envoy.config.core.v3.ApiConfigSource
	31, // 5: envoy.config.bootstrap.v3.Bootstrap.stats_sinks:type_name -> envoy.config.metrics.v3.StatsSink
	20, // 6: envoy.config.bootstrap.v3.Bootstrap.deferred_stat_options:type_name -> envoy.config.bootstrap.v3.Bootstrap.DeferredStatOptions
	32, // 7: envoy.config.bootstrap.v3.Bootstrap.stats_config:type_name -> envoy.config.metrics.v3.StatsConfig
	33, // 8: envoy.config.bootstrap.v3.Bootstrap.stats_flush_interval:type_name -> google.protobuf.Duration
	33, // 9: envoy.config.bootstrap.v3.Bootstrap.stats_eviction_interval:type_name -> google.protobuf.Duration
	7,  // 10: envoy.config.bootstrap.v3.Bootstrap.watchdog:type_name -> envoy.config.bootstrap.v3.Watchdog
	6,  // 11: envoy.config.bootstrap.v3.Bootstrap.watchdogs:type_name -> envoy.config.bootstrap.v3.Watchdogs
	34, // 12: envoy.config.bootstrap.v3.Bootstrap.tracing:type_name -> envoy.config.trace.v3.Tracing
	11, // 13: envoy.config.bootstrap.v3.Bootstrap.layered_runtime:type_name -> envoy.config.bootstrap.v3.LayeredRuntime
	4,  // 14: envoy.config.bootstrap.v3.Bootstrap.admin:type_name -> envoy.config.bootstrap.v3.Admin
	35, // 15: envoy.config.bootstrap.v3.Bootstrap.overload_manager:type_name -> envoy.config.overload.v3.OverloadManager
	36, // 16: envoy.config.bootstrap.v3.Bootstrap.stats_server_version_override:type_name -> google.protobuf.UInt64Value
	37, // 17: envoy.config.bootstrap.v3.Bootstrap.dns_resolution_config:type_name -> envoy.config.core.v3.DnsResolutionConfig
	38, // 18: envoy.config.bootstrap.v3.Bootstrap.typed_dns_resolver_config:type_name -> envoy.config.core.v3.TypedExtensionConfig
	38, // 19: envoy.config.bootstrap.v3.Bootstrap.bootstrap_extensions:type_name -> envoy.config.core.v3.TypedExtensionConfig
	8,  // 20: envoy.config.bootstrap.v3.Bootstrap.fatal_actions:type_name -> envoy.config.bootstrap.v3.FatalAction
	39, // 21: envoy.config.bootstrap.v3.Bootstrap.config_sources:type_name -> envoy.config.core.v3.ConfigSource
	39, // 22: envoy.config.bootstrap.v3.Bootstrap.default_config_source:type_name -> envoy.config.core.v3.ConfigSource
	22, // 23: envoy.config.bootstrap.v3.Bootstrap.certificate_provider_instances:type_name -> envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry
	12, // 24: envoy.config.bootstrap.v3.Bootstrap.inline_headers:type_name -> envoy.config.bootstrap.v3.CustomInlineHeader
	38, // 25: envoy.config.bootstrap.v3.Bootstrap.default_regex_engine:type_name -> envoy.config.core.v3.TypedExtensionConfig
	38, // 26: envoy.config.bootstrap.v3.Bootstrap.xds_delegate_extension:type_name -> envoy.config.core.v3.TypedExtensionConfig
	38, // 27: envoy.config.bootstrap.v3.Bootstrap.xds_config_tracker_extension:type_name -> envoy.config.core.v3.TypedExtensionConfig
	38, // 28: envoy.config.bootstrap.v3.Bootstrap.listener_manager:type_name -> envoy.config.core.v3.TypedExtensionConfig
	19, // 29: envoy.config.bootstrap.v3.Bootstrap.application_log_config:type_name -> envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig
	21, // 30: envoy.config.bootstrap.v3.Bootstrap.grpc_async_client_manager_config:type_name -> envoy.config.bootstrap.v3.Bootstrap.GrpcAsyncClientManagerConfig
	13, // 31: envoy.config.bootstrap.v3.Bootstrap.memory_allocator_manager:type_name -> envoy.config.bootstrap.v3.MemoryAllocatorManager
	40, // 32: envoy.config.bootstrap.v3.Admin.access_log:type_name -> envoy.config.accesslog.v3.AccessLog
	41, // 33: envoy.config.bootstrap.v3.Admin.address:type_name -> envoy.config.core.v3.Address
	42, // 34: envoy.config.bootstrap.v3.Admin.socket_options:type_name -> envoy.config.core.v3.SocketOption
	43, // 35: envoy.config.bootstrap.v3.Admin.allow_paths:type_name -> envoy.type.matcher.v3.StringMatcher
	24, // 36: envoy.config.bootstrap.v3.ClusterManager.outlier_detection:type_name -> envoy.config.bootstrap.v3.ClusterManager.OutlierDetection
	44, // 37: envoy.config.bootstrap.v3.ClusterManager.upstream_bind_config:type_name -> envoy.config.core.v3.BindConfig
	30, // 38: envoy.config.bootstrap.v3.ClusterManager.load_stats_config:type_name -> envoy.config.core.v3.ApiConfigSource
	7,  // 39: envoy.config.bootstrap.v3.Watchdogs.main_thread_watchdog:type_name -> envoy.config.bootstrap.v3.Watchdog
	7,  // 40: envoy.config.bootstrap.v3.Watchdogs.worker_watchdog:type_name -> envoy.config.bootstrap.v3.Watchdog
	25, // 41: envoy.config.bootstrap.v3.Watchdog.actions:type_name -> envoy.config.bootstrap.v3.Watchdog.WatchdogAction
	33, // 42: envoy.config.bootstrap.v3.Watchdog.miss_timeout:type_name -> google.protobuf.Duration
	33, // 43: envoy.config.bootstrap.v3.Watchdog.megamiss_timeout:type_name -> google.protobuf.Duration
	33, // 44: envoy.config.bootstrap.v3.Watchdog.kill_timeout:type_name -> google.protobuf.Duration
	33, // 45: envoy.config.bootstrap.v3.Watchdog.max_kill_timeout_jitter:type_name -> google.protobuf.Duration
	33, // 46: envoy.config.bootstrap.v3.Watchdog.multikill_timeout:type_name -> google.protobuf.Duration
	45, // 47: envoy.config.bootstrap.v3.Watchdog.multikill_threshold:type_name -> envoy.type.v3.Percent
	38, // 48: envoy.config.bootstrap.v3.FatalAction.config:type_name -> envoy.config.core.v3.TypedExtensionConfig
	46, // 49: envoy.config.bootstrap.v3.Runtime.base:type_name -> google.protobuf.Struct
	46, // 50: envoy.config.bootstrap.v3.RuntimeLayer.static_layer:type_name -> google.protobuf.Struct
	26, // 51: envoy.config.bootstrap.v3.RuntimeLayer.disk_layer:type_name -> envoy.config.bootstrap.v3.RuntimeLayer.DiskLayer
	27, // 52: envoy.config.bootstrap.v3.RuntimeLayer.admin_layer:type_name -> envoy.config.bootstrap.v3.RuntimeLayer.AdminLayer
	28, // 53: envoy.config.bootstrap.v3.RuntimeLayer.rtds_layer:type_name -> envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer
	10, // 54: envoy.config.bootstrap.v3.LayeredRuntime.layers:type_name -> envoy.config.bootstrap.v3.RuntimeLayer
	1,  // 55: envoy.config.bootstrap.v3.CustomInlineHeader.inline_header_type:type_name -> envoy.config.bootstrap.v3.CustomInlineHeader.InlineHeaderType
	33, // 56: envoy.config.bootstrap.v3.MemoryAllocatorManager.memory_release_interval:type_name -> google.protobuf.Duration
	36, // 57: envoy.config.bootstrap.v3.MemoryAllocatorManager.soft_memory_limit_bytes:type_name -> google.protobuf.UInt64Value
	47, // 58: envoy.config.bootstrap.v3.MemoryAllocatorManager.max_per_cpu_cache_size_bytes:type_name -> google.protobuf.UInt32Value
	2,  // 59: envoy.config.bootstrap.v3.ApiListenerManager.threading_model:type_name -> envoy.config.bootstrap.v3.ApiListenerManager.ThreadingModel
	48, // 60: envoy.config.bootstrap.v3.Bootstrap.StaticResources.listeners:type_name -> envoy.config.listener.v3.Listener
	49, // 61: envoy.config.bootstrap.v3.Bootstrap.StaticResources.clusters:type_name -> envoy.config.cluster.v3.Cluster
	50, // 62: envoy.config.bootstrap.v3.Bootstrap.StaticResources.secrets:type_name -> envoy.extensions.transport_sockets.tls.v3.Secret
	39, // 63: envoy.config.bootstrap.v3.Bootstrap.DynamicResources.lds_config:type_name -> envoy.config.core.v3.ConfigSource
	39, // 64: envoy.config.bootstrap.v3.Bootstrap.DynamicResources.cds_config:type_name -> envoy.config.core.v3.ConfigSource
	30, // 65: envoy.config.bootstrap.v3.Bootstrap.DynamicResources.ads_config:type_name -> envoy.config.core.v3.ApiConfigSource
	23, // 66: envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig.log_format:type_name -> envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig.LogFormat
	33, // 67: envoy.config.bootstrap.v3.Bootstrap.GrpcAsyncClientManagerConfig.max_cached_entry_idle_duration:type_name -> google.protobuf.Duration
	38, // 68: envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry.value:type_name -> envoy.config.core.v3.TypedExtensionConfig
	46, // 69: envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig.LogFormat.json_format:type_name -> google.protobuf.Struct
	51, // 70: envoy.config.bootstrap.v3.ClusterManager.OutlierDetection.event_service:type_name -> envoy.config.core.v3.EventServiceConfig
	38, // 71: envoy.config.bootstrap.v3.Watchdog.WatchdogAction.config:type_name -> envoy.config.core.v3.TypedExtensionConfig
	0,  // 72: envoy.config.bootstrap.v3.Watchdog.WatchdogAction.event:type_name -> envoy.config.bootstrap.v3.Watchdog.WatchdogAction.WatchdogEvent
	39, // 73: envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer.rtds_config:type_name -> envoy.config.core.v3.ConfigSource
	74, // [74:74] is the sub-list for method output_type
	74, // [74:74] is the sub-list for method input_type
	74, // [74:74] is the sub-list for extension type_name
	74, // [74:74] is the sub-list for extension extendee
	0,  // [0:74] is the sub-list for field type_name
}

func init() { file_envoy_config_bootstrap_v3_bootstrap_proto_init() }
func file_envoy_config_bootstrap_v3_bootstrap_proto_init() {
	if File_envoy_config_bootstrap_v3_bootstrap_proto != nil {
		return
	}
	file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes[0].OneofWrappers = []any{
		(*Bootstrap_StatsFlushOnAdmin)(nil),
		(*Bootstrap_StatsEvictionInterval)(nil),
	}
	file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes[7].OneofWrappers = []any{
		(*RuntimeLayer_StaticLayer)(nil),
		(*RuntimeLayer_DiskLayer_)(nil),
		(*RuntimeLayer_AdminLayer_)(nil),
		(*RuntimeLayer_RtdsLayer_)(nil),
	}
	file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes[20].OneofWrappers = []any{
		(*Bootstrap_ApplicationLogConfig_LogFormat_JsonFormat)(nil),
		(*Bootstrap_ApplicationLogConfig_LogFormat_TextFormat)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_config_bootstrap_v3_bootstrap_proto_rawDesc), len(file_envoy_config_bootstrap_v3_bootstrap_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   26,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_config_bootstrap_v3_bootstrap_proto_goTypes,
		DependencyIndexes: file_envoy_config_bootstrap_v3_bootstrap_proto_depIdxs,
		EnumInfos:         file_envoy_config_bootstrap_v3_bootstrap_proto_enumTypes,
		MessageInfos:      file_envoy_config_bootstrap_v3_bootstrap_proto_msgTypes,
	}.Build()
	File_envoy_config_bootstrap_v3_bootstrap_proto = out.File
	file_envoy_config_bootstrap_v3_bootstrap_proto_goTypes = nil
	file_envoy_config_bootstrap_v3_bootstrap_proto_depIdxs = nil
}
