xds_api/generated/envoy.config.bootstrap.v3.rs
1// This file is @generated by prost-build.
2/// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
3/// \[#next-free-field: 42\]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Bootstrap {
6 /// Node identity to present to the management server and for instance
7 /// identification purposes (e.g. in generated headers).
8 #[prost(message, optional, tag = "1")]
9 pub node: ::core::option::Option<super::super::core::v3::Node>,
10 /// A list of :ref:`Node <envoy_v3_api_msg_config.core.v3.Node>` field names
11 /// that will be included in the context parameters of the effective
12 /// xdstp:// URL that is sent in a discovery request when resource
13 /// locators are used for LDS/CDS. Any non-string field will have its JSON
14 /// encoding set as the context parameter value, with the exception of
15 /// metadata, which will be flattened (see example below). The supported field
16 /// names are:
17 /// - "cluster"
18 /// - "id"
19 /// - "locality.region"
20 /// - "locality.sub_zone"
21 /// - "locality.zone"
22 /// - "metadata"
23 /// - "user_agent_build_version.metadata"
24 /// - "user_agent_build_version.version"
25 /// - "user_agent_name"
26 /// - "user_agent_version"
27 ///
28 /// The node context parameters act as a base layer dictionary for the context
29 /// parameters (i.e. more specific resource specific context parameters will
30 /// override). Field names will be prefixed with “udpa.node.” when included in
31 /// context parameters.
32 ///
33 /// For example, if node_context_params is ``\["user_agent_name", "metadata"\]``,
34 /// the implied context parameters might be::
35 ///
36 /// node.user_agent_name: "envoy"
37 /// node.metadata.foo: "{\"bar\": \"baz\"}"
38 /// node.metadata.some: "42"
39 /// node.metadata.thing: "\"thing\""
40 ///
41 /// \[#not-implemented-hide:\]
42 #[prost(string, repeated, tag = "26")]
43 pub node_context_params: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
44 /// Statically specified resources.
45 #[prost(message, optional, tag = "2")]
46 pub static_resources: ::core::option::Option<bootstrap::StaticResources>,
47 /// xDS configuration sources.
48 #[prost(message, optional, tag = "3")]
49 pub dynamic_resources: ::core::option::Option<bootstrap::DynamicResources>,
50 /// Configuration for the cluster manager which owns all upstream clusters
51 /// within the server.
52 #[prost(message, optional, tag = "4")]
53 pub cluster_manager: ::core::option::Option<ClusterManager>,
54 /// Health discovery service config option.
55 /// (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`)
56 #[prost(message, optional, tag = "14")]
57 pub hds_config: ::core::option::Option<super::super::core::v3::ApiConfigSource>,
58 /// Optional file system path to search for startup flag files.
59 #[prost(string, tag = "5")]
60 pub flags_path: ::prost::alloc::string::String,
61 /// Optional set of stats sinks.
62 #[prost(message, repeated, tag = "6")]
63 pub stats_sinks: ::prost::alloc::vec::Vec<super::super::metrics::v3::StatsSink>,
64 /// Options to control behaviors of deferred creation compatible stats.
65 #[prost(message, optional, tag = "39")]
66 pub deferred_stat_options: ::core::option::Option<bootstrap::DeferredStatOptions>,
67 /// Configuration for internal processing of stats.
68 #[prost(message, optional, tag = "13")]
69 pub stats_config: ::core::option::Option<super::super::metrics::v3::StatsConfig>,
70 /// Optional duration between flushes to configured stats sinks. For
71 /// performance reasons Envoy latches counters and only flushes counters and
72 /// gauges at a periodic interval. If not specified the default is 5000ms (5
73 /// seconds). Only one of ``stats_flush_interval`` or ``stats_flush_on_admin``
74 /// can be set.
75 /// Duration must be at least 1ms and at most 5 min.
76 #[prost(message, optional, tag = "7")]
77 pub stats_flush_interval: ::core::option::Option<
78 super::super::super::super::google::protobuf::Duration,
79 >,
80 /// Optional watchdog configuration.
81 /// This is for a single watchdog configuration for the entire system.
82 /// Deprecated in favor of ``watchdogs`` which has finer granularity.
83 #[deprecated]
84 #[prost(message, optional, tag = "8")]
85 pub watchdog: ::core::option::Option<Watchdog>,
86 /// Optional watchdogs configuration.
87 /// This is used for specifying different watchdogs for the different subsystems.
88 /// \[#extension-category: envoy.guarddog_actions\]
89 #[prost(message, optional, tag = "27")]
90 pub watchdogs: ::core::option::Option<Watchdogs>,
91 /// Configuration for an external tracing provider.
92 ///
93 /// .. attention::
94 /// This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
95 /// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
96 #[deprecated]
97 #[prost(message, optional, tag = "9")]
98 pub tracing: ::core::option::Option<super::super::trace::v3::Tracing>,
99 /// Configuration for the runtime configuration provider. If not
100 /// specified, a “null” provider will be used which will result in all defaults
101 /// being used.
102 #[prost(message, optional, tag = "17")]
103 pub layered_runtime: ::core::option::Option<LayeredRuntime>,
104 /// Configuration for the local administration HTTP server.
105 #[prost(message, optional, tag = "12")]
106 pub admin: ::core::option::Option<Admin>,
107 /// Optional overload manager configuration.
108 #[prost(message, optional, tag = "15")]
109 pub overload_manager: ::core::option::Option<
110 super::super::overload::v3::OverloadManager,
111 >,
112 /// Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false.
113 /// Note that this records a value for each iteration of the event loop on every thread. This
114 /// should normally be minimal overhead, but when using
115 /// :ref:`statsd <envoy_v3_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
116 /// over the wire individually because the statsd protocol doesn't have any way to represent a
117 /// histogram summary. Be aware that this can be a very large volume of data.
118 #[prost(bool, tag = "16")]
119 pub enable_dispatcher_stats: bool,
120 /// Optional string which will be used in lieu of x-envoy in prefixing headers.
121 ///
122 /// For example, if this string is present and set to X-Foo, then x-envoy-retry-on will be
123 /// transformed into x-foo-retry-on etc.
124 ///
125 /// Note this applies to the headers Envoy will generate, the headers Envoy will sanitize, and the
126 /// headers Envoy will trust for core code and core extensions only. Be VERY careful making
127 /// changes to this string, especially in multi-layer Envoy deployments or deployments using
128 /// extensions which are not upstream.
129 #[prost(string, tag = "18")]
130 pub header_prefix: ::prost::alloc::string::String,
131 /// Optional proxy version which will be used to set the value of :ref:`server.version statistic
132 /// <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
133 /// :ref:`stats sinks <envoy_v3_api_msg_config.metrics.v3.StatsSink>`.
134 #[prost(message, optional, tag = "19")]
135 pub stats_server_version_override: ::core::option::Option<
136 super::super::super::super::google::protobuf::UInt64Value,
137 >,
138 /// Always use TCP queries instead of UDP queries for DNS lookups.
139 /// This may be overridden on a per-cluster basis in cds_config,
140 /// when :ref:`dns_resolvers <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
141 /// :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
142 /// specified.
143 /// This field is deprecated in favor of ``dns_resolution_config``
144 /// which aggregates all of the DNS resolver configuration in a single message.
145 #[deprecated]
146 #[prost(bool, tag = "20")]
147 pub use_tcp_for_dns_lookups: bool,
148 /// DNS resolution configuration which includes the underlying dns resolver addresses and options.
149 /// This may be overridden on a per-cluster basis in cds_config, when
150 /// :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
151 /// is specified.
152 /// This field is deprecated in favor of
153 /// :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.typed_dns_resolver_config>`.
154 #[deprecated]
155 #[prost(message, optional, tag = "30")]
156 pub dns_resolution_config: ::core::option::Option<
157 super::super::core::v3::DnsResolutionConfig,
158 >,
159 /// DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
160 /// or any other DNS resolver types and the related parameters.
161 /// For example, an object of
162 /// :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
163 /// can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
164 /// :ref:`dns_resolution_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.dns_resolution_config>`
165 /// configuration.
166 /// During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
167 /// when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
168 /// When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
169 /// \[#extension-category: envoy.network.dns_resolver\]
170 #[prost(message, optional, tag = "31")]
171 pub typed_dns_resolver_config: ::core::option::Option<
172 super::super::core::v3::TypedExtensionConfig,
173 >,
174 /// Specifies optional bootstrap extensions to be instantiated at startup time.
175 /// Each item contains extension specific configuration.
176 /// \[#extension-category: envoy.bootstrap\]
177 #[prost(message, repeated, tag = "21")]
178 pub bootstrap_extensions: ::prost::alloc::vec::Vec<
179 super::super::core::v3::TypedExtensionConfig,
180 >,
181 /// Specifies optional extensions instantiated at startup time and
182 /// invoked during crash time on the request that caused the crash.
183 #[prost(message, repeated, tag = "28")]
184 pub fatal_actions: ::prost::alloc::vec::Vec<FatalAction>,
185 /// Configuration sources that will participate in
186 /// xdstp:// URL authority resolution. The algorithm is as
187 /// follows:
188 /// 1. The authority field is taken from the xdstp:// URL, call
189 /// this ``resource_authority``.
190 /// 2. ``resource_authority`` is compared against the authorities in any peer
191 /// ``ConfigSource``. The peer ``ConfigSource`` is the configuration source
192 /// message which would have been used unconditionally for resolution
193 /// with opaque resource names. If there is a match with an authority, the
194 /// peer ``ConfigSource`` message is used.
195 /// 3. ``resource_authority`` is compared sequentially with the authorities in
196 /// each configuration source in ``config_sources``. The first ``ConfigSource``
197 /// to match wins.
198 /// 4. As a fallback, if no configuration source matches, then
199 /// ``default_config_source`` is used.
200 /// 5. If ``default_config_source`` is not specified, resolution fails.
201 /// \[#not-implemented-hide:\]
202 #[prost(message, repeated, tag = "22")]
203 pub config_sources: ::prost::alloc::vec::Vec<super::super::core::v3::ConfigSource>,
204 /// Default configuration source for xdstp:// URLs if all
205 /// other resolution fails.
206 /// \[#not-implemented-hide:\]
207 #[prost(message, optional, tag = "23")]
208 pub default_config_source: ::core::option::Option<
209 super::super::core::v3::ConfigSource,
210 >,
211 /// Optional overriding of default socket interface. The value must be the name of one of the
212 /// socket interface factories initialized through a bootstrap extension
213 #[prost(string, tag = "24")]
214 pub default_socket_interface: ::prost::alloc::string::String,
215 /// Global map of CertificateProvider instances. These instances are referred to by name in the
216 /// :ref:`CommonTlsContext.CertificateProviderInstance.instance_name
217 /// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
218 /// field.
219 /// \[#not-implemented-hide:\]
220 #[prost(map = "string, message", tag = "25")]
221 pub certificate_provider_instances: ::std::collections::HashMap<
222 ::prost::alloc::string::String,
223 super::super::core::v3::TypedExtensionConfig,
224 >,
225 /// Specifies a set of headers that need to be registered as inline header. This configuration
226 /// allows users to customize the inline headers on-demand at Envoy startup without modifying
227 /// Envoy's source code.
228 ///
229 /// Note that the 'set-cookie' header cannot be registered as inline header.
230 #[prost(message, repeated, tag = "32")]
231 pub inline_headers: ::prost::alloc::vec::Vec<CustomInlineHeader>,
232 /// Optional path to a file with performance tracing data created by "Perfetto" SDK in binary
233 /// ProtoBuf format. The default value is "envoy.pftrace".
234 #[prost(string, tag = "33")]
235 pub perf_tracing_file_path: ::prost::alloc::string::String,
236 /// Optional overriding of default regex engine.
237 /// If the value is not specified, Google RE2 will be used by default.
238 /// \[#extension-category: envoy.regex_engines\]
239 #[prost(message, optional, tag = "34")]
240 pub default_regex_engine: ::core::option::Option<
241 super::super::core::v3::TypedExtensionConfig,
242 >,
243 /// Optional XdsResourcesDelegate configuration, which allows plugging custom logic into both
244 /// fetch and load events during xDS processing.
245 /// If a value is not specified, no XdsResourcesDelegate will be used.
246 /// TODO(abeyad): Add public-facing documentation.
247 /// \[#not-implemented-hide:\]
248 #[prost(message, optional, tag = "35")]
249 pub xds_delegate_extension: ::core::option::Option<
250 super::super::core::v3::TypedExtensionConfig,
251 >,
252 /// Optional XdsConfigTracker configuration, which allows tracking xDS responses in external components,
253 /// e.g., external tracer or monitor. It provides the process point when receive, ingest, or fail to
254 /// process xDS resources and messages. If a value is not specified, no XdsConfigTracker will be used.
255 ///
256 /// .. note::
257 ///
258 /// There are no in-repo extensions currently, and the :repo:`XdsConfigTracker <envoy/config/xds_config_tracker.h>`
259 /// interface should be implemented before using.
260 /// See :repo:`xds_config_tracker_integration_test <test/integration/xds_config_tracker_integration_test.cc>`
261 /// for an example usage of the interface.
262 #[prost(message, optional, tag = "36")]
263 pub xds_config_tracker_extension: ::core::option::Option<
264 super::super::core::v3::TypedExtensionConfig,
265 >,
266 /// \[#not-implemented-hide:\]
267 /// This controls the type of listener manager configured for Envoy. Currently
268 /// Envoy only supports ListenerManager for this field and Envoy Mobile
269 /// supports ApiListenerManager.
270 #[prost(message, optional, tag = "37")]
271 pub listener_manager: ::core::option::Option<
272 super::super::core::v3::TypedExtensionConfig,
273 >,
274 /// Optional application log configuration.
275 #[prost(message, optional, tag = "38")]
276 pub application_log_config: ::core::option::Option<bootstrap::ApplicationLogConfig>,
277 /// Optional gRPC async manager config.
278 #[prost(message, optional, tag = "40")]
279 pub grpc_async_client_manager_config: ::core::option::Option<
280 bootstrap::GrpcAsyncClientManagerConfig,
281 >,
282 /// Optional configuration for memory allocation manager.
283 /// Memory releasing is only supported for `tcmalloc allocator <<https://github.com/google/tcmalloc>`_.>
284 #[prost(message, optional, tag = "41")]
285 pub memory_allocator_manager: ::core::option::Option<MemoryAllocatorManager>,
286 #[prost(oneof = "bootstrap::StatsFlush", tags = "29")]
287 pub stats_flush: ::core::option::Option<bootstrap::StatsFlush>,
288}
289/// Nested message and enum types in `Bootstrap`.
290pub mod bootstrap {
291 #[derive(Clone, PartialEq, ::prost::Message)]
292 pub struct StaticResources {
293 /// Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are
294 /// available regardless of LDS configuration.
295 #[prost(message, repeated, tag = "1")]
296 pub listeners: ::prost::alloc::vec::Vec<
297 super::super::super::listener::v3::Listener,
298 >,
299 /// If a network based configuration source is specified for :ref:`cds_config
300 /// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
301 /// to have some initial cluster definitions available to allow Envoy to know
302 /// how to speak to the management server. These cluster definitions may not
303 /// use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
304 /// IP or DNS-based).
305 #[prost(message, repeated, tag = "2")]
306 pub clusters: ::prost::alloc::vec::Vec<
307 super::super::super::cluster::v3::Cluster,
308 >,
309 /// These static secrets can be used by :ref:`SdsSecretConfig
310 /// <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
311 #[prost(message, repeated, tag = "3")]
312 pub secrets: ::prost::alloc::vec::Vec<
313 super::super::super::super::extensions::transport_sockets::tls::v3::Secret,
314 >,
315 }
316 impl ::prost::Name for StaticResources {
317 const NAME: &'static str = "StaticResources";
318 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
319 fn full_name() -> ::prost::alloc::string::String {
320 "envoy.config.bootstrap.v3.Bootstrap.StaticResources".into()
321 }
322 fn type_url() -> ::prost::alloc::string::String {
323 "type.googleapis.com/envoy.config.bootstrap.v3.Bootstrap.StaticResources"
324 .into()
325 }
326 }
327 /// \[#next-free-field: 7\]
328 #[derive(Clone, PartialEq, ::prost::Message)]
329 pub struct DynamicResources {
330 /// All :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>` are provided by a single
331 /// :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
332 #[prost(message, optional, tag = "1")]
333 pub lds_config: ::core::option::Option<
334 super::super::super::core::v3::ConfigSource,
335 >,
336 /// xdstp:// resource locator for listener collection.
337 /// \[#not-implemented-hide:\]
338 #[prost(string, tag = "5")]
339 pub lds_resources_locator: ::prost::alloc::string::String,
340 /// All post-bootstrap :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` definitions are
341 /// provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
342 /// configuration source.
343 #[prost(message, optional, tag = "2")]
344 pub cds_config: ::core::option::Option<
345 super::super::super::core::v3::ConfigSource,
346 >,
347 /// xdstp:// resource locator for cluster collection.
348 /// \[#not-implemented-hide:\]
349 #[prost(string, tag = "6")]
350 pub cds_resources_locator: ::prost::alloc::string::String,
351 /// A single :ref:`ADS <config_overview_ads>` source may be optionally
352 /// specified. This must have :ref:`api_type
353 /// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
354 /// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
355 /// :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
356 /// the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
357 /// streamed on the ADS channel.
358 #[prost(message, optional, tag = "3")]
359 pub ads_config: ::core::option::Option<
360 super::super::super::core::v3::ApiConfigSource,
361 >,
362 }
363 impl ::prost::Name for DynamicResources {
364 const NAME: &'static str = "DynamicResources";
365 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
366 fn full_name() -> ::prost::alloc::string::String {
367 "envoy.config.bootstrap.v3.Bootstrap.DynamicResources".into()
368 }
369 fn type_url() -> ::prost::alloc::string::String {
370 "type.googleapis.com/envoy.config.bootstrap.v3.Bootstrap.DynamicResources"
371 .into()
372 }
373 }
374 #[derive(Clone, PartialEq, ::prost::Message)]
375 pub struct ApplicationLogConfig {
376 /// Optional field to set the application logs format. If this field is set, it will override
377 /// the default log format. Setting both this field and :option:`--log-format` command line
378 /// option is not allowed, and will cause a bootstrap error.
379 #[prost(message, optional, tag = "1")]
380 pub log_format: ::core::option::Option<application_log_config::LogFormat>,
381 }
382 /// Nested message and enum types in `ApplicationLogConfig`.
383 pub mod application_log_config {
384 #[derive(Clone, PartialEq, ::prost::Message)]
385 pub struct LogFormat {
386 #[prost(oneof = "log_format::LogFormat", tags = "1, 2")]
387 pub log_format: ::core::option::Option<log_format::LogFormat>,
388 }
389 /// Nested message and enum types in `LogFormat`.
390 pub mod log_format {
391 #[derive(Clone, PartialEq, ::prost::Oneof)]
392 pub enum LogFormat {
393 /// Flush application logs in JSON format. The configured JSON struct can
394 /// support all the format flags specified in the :option:`--log-format`
395 /// command line options section, except for the ``%v`` and ``%_`` flags.
396 #[prost(message, tag = "1")]
397 JsonFormat(
398 super::super::super::super::super::super::super::google::protobuf::Struct,
399 ),
400 /// Flush application log in a format defined by a string. The text format
401 /// can support all the format flags specified in the :option:`--log-format`
402 /// command line option section.
403 #[prost(string, tag = "2")]
404 TextFormat(::prost::alloc::string::String),
405 }
406 }
407 impl ::prost::Name for LogFormat {
408 const NAME: &'static str = "LogFormat";
409 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
410 fn full_name() -> ::prost::alloc::string::String {
411 "envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig.LogFormat"
412 .into()
413 }
414 fn type_url() -> ::prost::alloc::string::String {
415 "type.googleapis.com/envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig.LogFormat"
416 .into()
417 }
418 }
419 }
420 impl ::prost::Name for ApplicationLogConfig {
421 const NAME: &'static str = "ApplicationLogConfig";
422 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
423 fn full_name() -> ::prost::alloc::string::String {
424 "envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig".into()
425 }
426 fn type_url() -> ::prost::alloc::string::String {
427 "type.googleapis.com/envoy.config.bootstrap.v3.Bootstrap.ApplicationLogConfig"
428 .into()
429 }
430 }
431 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
432 pub struct DeferredStatOptions {
433 /// When the flag is enabled, Envoy will lazily initialize a subset of the stats (see below).
434 /// This will save memory and CPU cycles when creating the objects that own these stats, if those
435 /// stats are never referenced throughout the lifetime of the process. However, it will incur additional
436 /// memory overhead for these objects, and a small increase of CPU usage when a at least one of the stats
437 /// is updated for the first time.
438 /// Groups of stats that will be lazily initialized:
439 /// - Cluster traffic stats: a subgroup of the :ref:`cluster statistics <config_cluster_manager_cluster_stats>`
440 /// that are used when requests are routed to the cluster.
441 #[prost(bool, tag = "1")]
442 pub enable_deferred_creation_stats: bool,
443 }
444 impl ::prost::Name for DeferredStatOptions {
445 const NAME: &'static str = "DeferredStatOptions";
446 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
447 fn full_name() -> ::prost::alloc::string::String {
448 "envoy.config.bootstrap.v3.Bootstrap.DeferredStatOptions".into()
449 }
450 fn type_url() -> ::prost::alloc::string::String {
451 "type.googleapis.com/envoy.config.bootstrap.v3.Bootstrap.DeferredStatOptions"
452 .into()
453 }
454 }
455 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
456 pub struct GrpcAsyncClientManagerConfig {
457 /// Optional field to set the expiration time for the cached gRPC client object.
458 /// The minimal value is 5s and the default is 50s.
459 #[prost(message, optional, tag = "1")]
460 pub max_cached_entry_idle_duration: ::core::option::Option<
461 super::super::super::super::super::google::protobuf::Duration,
462 >,
463 }
464 impl ::prost::Name for GrpcAsyncClientManagerConfig {
465 const NAME: &'static str = "GrpcAsyncClientManagerConfig";
466 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
467 fn full_name() -> ::prost::alloc::string::String {
468 "envoy.config.bootstrap.v3.Bootstrap.GrpcAsyncClientManagerConfig".into()
469 }
470 fn type_url() -> ::prost::alloc::string::String {
471 "type.googleapis.com/envoy.config.bootstrap.v3.Bootstrap.GrpcAsyncClientManagerConfig"
472 .into()
473 }
474 }
475 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
476 pub enum StatsFlush {
477 /// Flush stats to sinks only when queried for on the admin interface. If set,
478 /// a flush timer is not created. Only one of ``stats_flush_on_admin`` or
479 /// ``stats_flush_interval`` can be set.
480 #[prost(bool, tag = "29")]
481 StatsFlushOnAdmin(bool),
482 }
483}
484impl ::prost::Name for Bootstrap {
485 const NAME: &'static str = "Bootstrap";
486 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
487 fn full_name() -> ::prost::alloc::string::String {
488 "envoy.config.bootstrap.v3.Bootstrap".into()
489 }
490 fn type_url() -> ::prost::alloc::string::String {
491 "type.googleapis.com/envoy.config.bootstrap.v3.Bootstrap".into()
492 }
493}
494/// Administration interface :ref:`operations documentation
495/// <operations_admin_interface>`.
496/// \[#next-free-field: 7\]
497#[derive(Clone, PartialEq, ::prost::Message)]
498pub struct Admin {
499 /// Configuration for :ref:`access logs <arch_overview_access_logs>`
500 /// emitted by the administration server.
501 #[prost(message, repeated, tag = "5")]
502 pub access_log: ::prost::alloc::vec::Vec<super::super::accesslog::v3::AccessLog>,
503 /// The path to write the access log for the administration server. If no
504 /// access log is desired specify ‘/dev/null’. This is only required if
505 /// :ref:`address <envoy_v3_api_field_config.bootstrap.v3.Admin.address>` is set.
506 /// Deprecated in favor of ``access_log`` which offers more options.
507 #[deprecated]
508 #[prost(string, tag = "1")]
509 pub access_log_path: ::prost::alloc::string::String,
510 /// The cpu profiler output path for the administration server. If no profile
511 /// path is specified, the default is ‘/var/log/envoy/envoy.prof’.
512 #[prost(string, tag = "2")]
513 pub profile_path: ::prost::alloc::string::String,
514 /// The TCP address that the administration server will listen on.
515 /// If not specified, Envoy will not start an administration server.
516 #[prost(message, optional, tag = "3")]
517 pub address: ::core::option::Option<super::super::core::v3::Address>,
518 /// Additional socket options that may not be present in Envoy source code or
519 /// precompiled binaries.
520 #[prost(message, repeated, tag = "4")]
521 pub socket_options: ::prost::alloc::vec::Vec<super::super::core::v3::SocketOption>,
522 /// Indicates whether :ref:`global_downstream_max_connections <config_overload_manager_limiting_connections>`
523 /// should apply to the admin interface or not.
524 #[prost(bool, tag = "6")]
525 pub ignore_global_conn_limit: bool,
526}
527impl ::prost::Name for Admin {
528 const NAME: &'static str = "Admin";
529 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
530 fn full_name() -> ::prost::alloc::string::String {
531 "envoy.config.bootstrap.v3.Admin".into()
532 }
533 fn type_url() -> ::prost::alloc::string::String {
534 "type.googleapis.com/envoy.config.bootstrap.v3.Admin".into()
535 }
536}
537/// Cluster manager :ref:`architecture overview <arch_overview_cluster_manager>`.
538/// \[#next-free-field: 6\]
539#[derive(Clone, PartialEq, ::prost::Message)]
540pub struct ClusterManager {
541 /// Name of the local cluster (i.e., the cluster that owns the Envoy running
542 /// this configuration). In order to enable :ref:`zone aware routing
543 /// <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
544 /// If ``local_cluster_name`` is defined then :ref:`clusters
545 /// <envoy_v3_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
546 /// static cluster resources
547 /// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
548 /// the :option:`--service-cluster` option which does not `affect zone aware
549 /// routing <<https://github.com/envoyproxy/envoy/issues/774>`_.>
550 #[prost(string, tag = "1")]
551 pub local_cluster_name: ::prost::alloc::string::String,
552 /// Optional global configuration for outlier detection.
553 #[prost(message, optional, tag = "2")]
554 pub outlier_detection: ::core::option::Option<cluster_manager::OutlierDetection>,
555 /// Optional configuration used to bind newly established upstream connections.
556 /// This may be overridden on a per-cluster basis by upstream_bind_config in the cds_config.
557 #[prost(message, optional, tag = "3")]
558 pub upstream_bind_config: ::core::option::Option<super::super::core::v3::BindConfig>,
559 /// A management server endpoint to stream load stats to via
560 /// ``StreamLoadStats``. This must have :ref:`api_type
561 /// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
562 /// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
563 #[prost(message, optional, tag = "4")]
564 pub load_stats_config: ::core::option::Option<
565 super::super::core::v3::ApiConfigSource,
566 >,
567 /// Whether the ClusterManager will create clusters on the worker threads
568 /// inline during requests. This will save memory and CPU cycles in cases where
569 /// there are lots of inactive clusters and > 1 worker thread.
570 #[prost(bool, tag = "5")]
571 pub enable_deferred_cluster_creation: bool,
572}
573/// Nested message and enum types in `ClusterManager`.
574pub mod cluster_manager {
575 #[derive(Clone, PartialEq, ::prost::Message)]
576 pub struct OutlierDetection {
577 /// Specifies the path to the outlier event log.
578 #[prost(string, tag = "1")]
579 pub event_log_path: ::prost::alloc::string::String,
580 /// \[#not-implemented-hide:\]
581 /// The gRPC service for the outlier detection event service.
582 /// If empty, outlier detection events won't be sent to a remote endpoint.
583 #[prost(message, optional, tag = "2")]
584 pub event_service: ::core::option::Option<
585 super::super::super::core::v3::EventServiceConfig,
586 >,
587 }
588 impl ::prost::Name for OutlierDetection {
589 const NAME: &'static str = "OutlierDetection";
590 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
591 fn full_name() -> ::prost::alloc::string::String {
592 "envoy.config.bootstrap.v3.ClusterManager.OutlierDetection".into()
593 }
594 fn type_url() -> ::prost::alloc::string::String {
595 "type.googleapis.com/envoy.config.bootstrap.v3.ClusterManager.OutlierDetection"
596 .into()
597 }
598 }
599}
600impl ::prost::Name for ClusterManager {
601 const NAME: &'static str = "ClusterManager";
602 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
603 fn full_name() -> ::prost::alloc::string::String {
604 "envoy.config.bootstrap.v3.ClusterManager".into()
605 }
606 fn type_url() -> ::prost::alloc::string::String {
607 "type.googleapis.com/envoy.config.bootstrap.v3.ClusterManager".into()
608 }
609}
610/// Allows you to specify different watchdog configs for different subsystems.
611/// This allows finer tuned policies for the watchdog. If a subsystem is omitted
612/// the default values for that system will be used.
613#[derive(Clone, PartialEq, ::prost::Message)]
614pub struct Watchdogs {
615 /// Watchdog for the main thread.
616 #[prost(message, optional, tag = "1")]
617 pub main_thread_watchdog: ::core::option::Option<Watchdog>,
618 /// Watchdog for the worker threads.
619 #[prost(message, optional, tag = "2")]
620 pub worker_watchdog: ::core::option::Option<Watchdog>,
621}
622impl ::prost::Name for Watchdogs {
623 const NAME: &'static str = "Watchdogs";
624 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
625 fn full_name() -> ::prost::alloc::string::String {
626 "envoy.config.bootstrap.v3.Watchdogs".into()
627 }
628 fn type_url() -> ::prost::alloc::string::String {
629 "type.googleapis.com/envoy.config.bootstrap.v3.Watchdogs".into()
630 }
631}
632/// Envoy process watchdog configuration. When configured, this monitors for
633/// nonresponsive threads and kills the process after the configured thresholds.
634/// See the :ref:`watchdog documentation <operations_performance_watchdog>` for more information.
635/// \[#next-free-field: 8\]
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct Watchdog {
638 /// Register actions that will fire on given WatchDog events.
639 /// See ``WatchDogAction`` for priority of events.
640 #[prost(message, repeated, tag = "7")]
641 pub actions: ::prost::alloc::vec::Vec<watchdog::WatchdogAction>,
642 /// The duration after which Envoy counts a nonresponsive thread in the
643 /// ``watchdog_miss`` statistic. If not specified the default is 200ms.
644 #[prost(message, optional, tag = "1")]
645 pub miss_timeout: ::core::option::Option<
646 super::super::super::super::google::protobuf::Duration,
647 >,
648 /// The duration after which Envoy counts a nonresponsive thread in the
649 /// ``watchdog_mega_miss`` statistic. If not specified the default is
650 /// 1000ms.
651 #[prost(message, optional, tag = "2")]
652 pub megamiss_timeout: ::core::option::Option<
653 super::super::super::super::google::protobuf::Duration,
654 >,
655 /// If a watched thread has been nonresponsive for this duration, assume a
656 /// programming error and kill the entire Envoy process. Set to 0 to disable
657 /// kill behavior. If not specified the default is 0 (disabled).
658 #[prost(message, optional, tag = "3")]
659 pub kill_timeout: ::core::option::Option<
660 super::super::super::super::google::protobuf::Duration,
661 >,
662 /// Defines the maximum jitter used to adjust the ``kill_timeout`` if ``kill_timeout`` is
663 /// enabled. Enabling this feature would help to reduce risk of synchronized
664 /// watchdog kill events across proxies due to external triggers. Set to 0 to
665 /// disable. If not specified the default is 0 (disabled).
666 #[prost(message, optional, tag = "6")]
667 pub max_kill_timeout_jitter: ::core::option::Option<
668 super::super::super::super::google::protobuf::Duration,
669 >,
670 /// If ``max(2, ceil(registered_threads * Fraction(*multikill_threshold*)))``
671 /// threads have been nonresponsive for at least this duration kill the entire
672 /// Envoy process. Set to 0 to disable this behavior. If not specified the
673 /// default is 0 (disabled).
674 #[prost(message, optional, tag = "4")]
675 pub multikill_timeout: ::core::option::Option<
676 super::super::super::super::google::protobuf::Duration,
677 >,
678 /// Sets the threshold for ``multikill_timeout`` in terms of the percentage of
679 /// nonresponsive threads required for the ``multikill_timeout``.
680 /// If not specified the default is 0.
681 #[prost(message, optional, tag = "5")]
682 pub multikill_threshold: ::core::option::Option<
683 super::super::super::r#type::v3::Percent,
684 >,
685}
686/// Nested message and enum types in `Watchdog`.
687pub mod watchdog {
688 #[derive(Clone, PartialEq, ::prost::Message)]
689 pub struct WatchdogAction {
690 /// Extension specific configuration for the action.
691 #[prost(message, optional, tag = "1")]
692 pub config: ::core::option::Option<
693 super::super::super::core::v3::TypedExtensionConfig,
694 >,
695 #[prost(enumeration = "watchdog_action::WatchdogEvent", tag = "2")]
696 pub event: i32,
697 }
698 /// Nested message and enum types in `WatchdogAction`.
699 pub mod watchdog_action {
700 /// The events are fired in this order: KILL, MULTIKILL, MEGAMISS, MISS.
701 /// Within an event type, actions execute in the order they are configured.
702 /// For KILL/MULTIKILL there is a default PANIC that will run after the
703 /// registered actions and kills the process if it wasn't already killed.
704 /// It might be useful to specify several debug actions, and possibly an
705 /// alternate FATAL action.
706 #[derive(
707 Clone,
708 Copy,
709 Debug,
710 PartialEq,
711 Eq,
712 Hash,
713 PartialOrd,
714 Ord,
715 ::prost::Enumeration
716 )]
717 #[repr(i32)]
718 pub enum WatchdogEvent {
719 Unknown = 0,
720 Kill = 1,
721 Multikill = 2,
722 Megamiss = 3,
723 Miss = 4,
724 }
725 impl WatchdogEvent {
726 /// String value of the enum field names used in the ProtoBuf definition.
727 ///
728 /// The values are not transformed in any way and thus are considered stable
729 /// (if the ProtoBuf definition does not change) and safe for programmatic use.
730 pub fn as_str_name(&self) -> &'static str {
731 match self {
732 Self::Unknown => "UNKNOWN",
733 Self::Kill => "KILL",
734 Self::Multikill => "MULTIKILL",
735 Self::Megamiss => "MEGAMISS",
736 Self::Miss => "MISS",
737 }
738 }
739 /// Creates an enum from field names used in the ProtoBuf definition.
740 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
741 match value {
742 "UNKNOWN" => Some(Self::Unknown),
743 "KILL" => Some(Self::Kill),
744 "MULTIKILL" => Some(Self::Multikill),
745 "MEGAMISS" => Some(Self::Megamiss),
746 "MISS" => Some(Self::Miss),
747 _ => None,
748 }
749 }
750 }
751 }
752 impl ::prost::Name for WatchdogAction {
753 const NAME: &'static str = "WatchdogAction";
754 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
755 fn full_name() -> ::prost::alloc::string::String {
756 "envoy.config.bootstrap.v3.Watchdog.WatchdogAction".into()
757 }
758 fn type_url() -> ::prost::alloc::string::String {
759 "type.googleapis.com/envoy.config.bootstrap.v3.Watchdog.WatchdogAction"
760 .into()
761 }
762 }
763}
764impl ::prost::Name for Watchdog {
765 const NAME: &'static str = "Watchdog";
766 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
767 fn full_name() -> ::prost::alloc::string::String {
768 "envoy.config.bootstrap.v3.Watchdog".into()
769 }
770 fn type_url() -> ::prost::alloc::string::String {
771 "type.googleapis.com/envoy.config.bootstrap.v3.Watchdog".into()
772 }
773}
774/// Fatal actions to run while crashing. Actions can be safe (meaning they are
775/// async-signal safe) or unsafe. We run all safe actions before we run unsafe actions.
776/// If using an unsafe action that could get stuck or deadlock, it important to
777/// have an out of band system to terminate the process.
778///
779/// The interface for the extension is ``Envoy::Server::Configuration::FatalAction``.
780/// ``FatalAction`` extensions live in the ``envoy.extensions.fatal_actions`` API
781/// namespace.
782#[derive(Clone, PartialEq, ::prost::Message)]
783pub struct FatalAction {
784 /// Extension specific configuration for the action. It's expected to conform
785 /// to the ``Envoy::Server::Configuration::FatalAction`` interface.
786 #[prost(message, optional, tag = "1")]
787 pub config: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>,
788}
789impl ::prost::Name for FatalAction {
790 const NAME: &'static str = "FatalAction";
791 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
792 fn full_name() -> ::prost::alloc::string::String {
793 "envoy.config.bootstrap.v3.FatalAction".into()
794 }
795 fn type_url() -> ::prost::alloc::string::String {
796 "type.googleapis.com/envoy.config.bootstrap.v3.FatalAction".into()
797 }
798}
799/// Runtime :ref:`configuration overview <config_runtime>` (deprecated).
800#[derive(Clone, PartialEq, ::prost::Message)]
801pub struct Runtime {
802 /// The implementation assumes that the file system tree is accessed via a
803 /// symbolic link. An atomic link swap is used when a new tree should be
804 /// switched to. This parameter specifies the path to the symbolic link. Envoy
805 /// will watch the location for changes and reload the file system tree when
806 /// they happen. If this parameter is not set, there will be no disk based
807 /// runtime.
808 #[prost(string, tag = "1")]
809 pub symlink_root: ::prost::alloc::string::String,
810 /// Specifies the subdirectory to load within the root directory. This is
811 /// useful if multiple systems share the same delivery mechanism. Envoy
812 /// configuration elements can be contained in a dedicated subdirectory.
813 #[prost(string, tag = "2")]
814 pub subdirectory: ::prost::alloc::string::String,
815 /// Specifies an optional subdirectory to load within the root directory. If
816 /// specified and the directory exists, configuration values within this
817 /// directory will override those found in the primary subdirectory. This is
818 /// useful when Envoy is deployed across many different types of servers.
819 /// Sometimes it is useful to have a per service cluster directory for runtime
820 /// configuration. See below for exactly how the override directory is used.
821 #[prost(string, tag = "3")]
822 pub override_subdirectory: ::prost::alloc::string::String,
823 /// Static base runtime. This will be :ref:`overridden
824 /// <config_runtime_layering>` by other runtime layers, e.g.
825 /// disk or admin. This follows the :ref:`runtime protobuf JSON representation
826 /// encoding <config_runtime_proto_json>`.
827 #[prost(message, optional, tag = "4")]
828 pub base: ::core::option::Option<
829 super::super::super::super::google::protobuf::Struct,
830 >,
831}
832impl ::prost::Name for Runtime {
833 const NAME: &'static str = "Runtime";
834 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
835 fn full_name() -> ::prost::alloc::string::String {
836 "envoy.config.bootstrap.v3.Runtime".into()
837 }
838 fn type_url() -> ::prost::alloc::string::String {
839 "type.googleapis.com/envoy.config.bootstrap.v3.Runtime".into()
840 }
841}
842/// \[#next-free-field: 6\]
843#[derive(Clone, PartialEq, ::prost::Message)]
844pub struct RuntimeLayer {
845 /// Descriptive name for the runtime layer. This is only used for the runtime
846 /// :http:get:`/runtime` output.
847 #[prost(string, tag = "1")]
848 pub name: ::prost::alloc::string::String,
849 #[prost(oneof = "runtime_layer::LayerSpecifier", tags = "2, 3, 4, 5")]
850 pub layer_specifier: ::core::option::Option<runtime_layer::LayerSpecifier>,
851}
852/// Nested message and enum types in `RuntimeLayer`.
853pub mod runtime_layer {
854 /// :ref:`Disk runtime <config_runtime_local_disk>` layer.
855 #[derive(Clone, PartialEq, ::prost::Message)]
856 pub struct DiskLayer {
857 /// The implementation assumes that the file system tree is accessed via a
858 /// symbolic link. An atomic link swap is used when a new tree should be
859 /// switched to. This parameter specifies the path to the symbolic link.
860 /// Envoy will watch the location for changes and reload the file system tree
861 /// when they happen. See documentation on runtime :ref:`atomicity
862 /// <config_runtime_atomicity>` for further details on how reloads are
863 /// treated.
864 #[prost(string, tag = "1")]
865 pub symlink_root: ::prost::alloc::string::String,
866 /// Specifies the subdirectory to load within the root directory. This is
867 /// useful if multiple systems share the same delivery mechanism. Envoy
868 /// configuration elements can be contained in a dedicated subdirectory.
869 #[prost(string, tag = "3")]
870 pub subdirectory: ::prost::alloc::string::String,
871 /// :ref:`Append <config_runtime_local_disk_service_cluster_subdirs>` the
872 /// service cluster to the path under symlink root.
873 #[prost(bool, tag = "2")]
874 pub append_service_cluster: bool,
875 }
876 impl ::prost::Name for DiskLayer {
877 const NAME: &'static str = "DiskLayer";
878 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
879 fn full_name() -> ::prost::alloc::string::String {
880 "envoy.config.bootstrap.v3.RuntimeLayer.DiskLayer".into()
881 }
882 fn type_url() -> ::prost::alloc::string::String {
883 "type.googleapis.com/envoy.config.bootstrap.v3.RuntimeLayer.DiskLayer".into()
884 }
885 }
886 /// :ref:`Admin console runtime <config_runtime_admin>` layer.
887 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
888 pub struct AdminLayer {}
889 impl ::prost::Name for AdminLayer {
890 const NAME: &'static str = "AdminLayer";
891 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
892 fn full_name() -> ::prost::alloc::string::String {
893 "envoy.config.bootstrap.v3.RuntimeLayer.AdminLayer".into()
894 }
895 fn type_url() -> ::prost::alloc::string::String {
896 "type.googleapis.com/envoy.config.bootstrap.v3.RuntimeLayer.AdminLayer"
897 .into()
898 }
899 }
900 /// :ref:`Runtime Discovery Service (RTDS) <config_runtime_rtds>` layer.
901 #[derive(Clone, PartialEq, ::prost::Message)]
902 pub struct RtdsLayer {
903 /// Resource to subscribe to at ``rtds_config`` for the RTDS layer.
904 #[prost(string, tag = "1")]
905 pub name: ::prost::alloc::string::String,
906 /// RTDS configuration source.
907 #[prost(message, optional, tag = "2")]
908 pub rtds_config: ::core::option::Option<
909 super::super::super::core::v3::ConfigSource,
910 >,
911 }
912 impl ::prost::Name for RtdsLayer {
913 const NAME: &'static str = "RtdsLayer";
914 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
915 fn full_name() -> ::prost::alloc::string::String {
916 "envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer".into()
917 }
918 fn type_url() -> ::prost::alloc::string::String {
919 "type.googleapis.com/envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer".into()
920 }
921 }
922 #[derive(Clone, PartialEq, ::prost::Oneof)]
923 pub enum LayerSpecifier {
924 /// :ref:`Static runtime <config_runtime_bootstrap>` layer.
925 /// This follows the :ref:`runtime protobuf JSON representation encoding
926 /// <config_runtime_proto_json>`. Unlike static xDS resources, this static
927 /// layer is overridable by later layers in the runtime virtual filesystem.
928 #[prost(message, tag = "2")]
929 StaticLayer(super::super::super::super::super::google::protobuf::Struct),
930 #[prost(message, tag = "3")]
931 DiskLayer(DiskLayer),
932 #[prost(message, tag = "4")]
933 AdminLayer(AdminLayer),
934 #[prost(message, tag = "5")]
935 RtdsLayer(RtdsLayer),
936 }
937}
938impl ::prost::Name for RuntimeLayer {
939 const NAME: &'static str = "RuntimeLayer";
940 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
941 fn full_name() -> ::prost::alloc::string::String {
942 "envoy.config.bootstrap.v3.RuntimeLayer".into()
943 }
944 fn type_url() -> ::prost::alloc::string::String {
945 "type.googleapis.com/envoy.config.bootstrap.v3.RuntimeLayer".into()
946 }
947}
948/// Runtime :ref:`configuration overview <config_runtime>`.
949#[derive(Clone, PartialEq, ::prost::Message)]
950pub struct LayeredRuntime {
951 /// The :ref:`layers <config_runtime_layering>` of the runtime. This is ordered
952 /// such that later layers in the list overlay earlier entries.
953 #[prost(message, repeated, tag = "1")]
954 pub layers: ::prost::alloc::vec::Vec<RuntimeLayer>,
955}
956impl ::prost::Name for LayeredRuntime {
957 const NAME: &'static str = "LayeredRuntime";
958 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
959 fn full_name() -> ::prost::alloc::string::String {
960 "envoy.config.bootstrap.v3.LayeredRuntime".into()
961 }
962 fn type_url() -> ::prost::alloc::string::String {
963 "type.googleapis.com/envoy.config.bootstrap.v3.LayeredRuntime".into()
964 }
965}
966/// Used to specify the header that needs to be registered as an inline header.
967///
968/// If request or response contain multiple headers with the same name and the header
969/// name is registered as an inline header. Then multiple headers will be folded
970/// into one, and multiple header values will be concatenated by a suitable delimiter.
971/// The delimiter is generally a comma.
972///
973/// For example, if 'foo' is registered as an inline header, and the headers contains
974/// the following two headers:
975///
976/// .. code-block:: text
977///
978/// foo: bar
979/// foo: eep
980///
981/// Then they will eventually be folded into:
982///
983/// .. code-block:: text
984///
985/// foo: bar, eep
986///
987/// Inline headers provide O(1) search performance, but each inline header imposes
988/// an additional memory overhead on all instances of the corresponding type of
989/// HeaderMap or TrailerMap.
990#[derive(Clone, PartialEq, ::prost::Message)]
991pub struct CustomInlineHeader {
992 /// The name of the header that is expected to be set as the inline header.
993 #[prost(string, tag = "1")]
994 pub inline_header_name: ::prost::alloc::string::String,
995 /// The type of the header that is expected to be set as the inline header.
996 #[prost(enumeration = "custom_inline_header::InlineHeaderType", tag = "2")]
997 pub inline_header_type: i32,
998}
999/// Nested message and enum types in `CustomInlineHeader`.
1000pub mod custom_inline_header {
1001 #[derive(
1002 Clone,
1003 Copy,
1004 Debug,
1005 PartialEq,
1006 Eq,
1007 Hash,
1008 PartialOrd,
1009 Ord,
1010 ::prost::Enumeration
1011 )]
1012 #[repr(i32)]
1013 pub enum InlineHeaderType {
1014 RequestHeader = 0,
1015 RequestTrailer = 1,
1016 ResponseHeader = 2,
1017 ResponseTrailer = 3,
1018 }
1019 impl InlineHeaderType {
1020 /// String value of the enum field names used in the ProtoBuf definition.
1021 ///
1022 /// The values are not transformed in any way and thus are considered stable
1023 /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1024 pub fn as_str_name(&self) -> &'static str {
1025 match self {
1026 Self::RequestHeader => "REQUEST_HEADER",
1027 Self::RequestTrailer => "REQUEST_TRAILER",
1028 Self::ResponseHeader => "RESPONSE_HEADER",
1029 Self::ResponseTrailer => "RESPONSE_TRAILER",
1030 }
1031 }
1032 /// Creates an enum from field names used in the ProtoBuf definition.
1033 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1034 match value {
1035 "REQUEST_HEADER" => Some(Self::RequestHeader),
1036 "REQUEST_TRAILER" => Some(Self::RequestTrailer),
1037 "RESPONSE_HEADER" => Some(Self::ResponseHeader),
1038 "RESPONSE_TRAILER" => Some(Self::ResponseTrailer),
1039 _ => None,
1040 }
1041 }
1042 }
1043}
1044impl ::prost::Name for CustomInlineHeader {
1045 const NAME: &'static str = "CustomInlineHeader";
1046 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
1047 fn full_name() -> ::prost::alloc::string::String {
1048 "envoy.config.bootstrap.v3.CustomInlineHeader".into()
1049 }
1050 fn type_url() -> ::prost::alloc::string::String {
1051 "type.googleapis.com/envoy.config.bootstrap.v3.CustomInlineHeader".into()
1052 }
1053}
1054#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1055pub struct MemoryAllocatorManager {
1056 /// Configures tcmalloc to perform background release of free memory in amount of bytes per ``memory_release_interval`` interval.
1057 /// If equals to ``0``, no memory release will occur. Defaults to ``0``.
1058 #[prost(uint64, tag = "1")]
1059 pub bytes_to_release: u64,
1060 /// Interval in milliseconds for memory releasing. If specified, during every
1061 /// interval Envoy will try to release ``bytes_to_release`` of free memory back to operating system for reuse.
1062 /// Defaults to 1000 milliseconds.
1063 #[prost(message, optional, tag = "2")]
1064 pub memory_release_interval: ::core::option::Option<
1065 super::super::super::super::google::protobuf::Duration,
1066 >,
1067}
1068impl ::prost::Name for MemoryAllocatorManager {
1069 const NAME: &'static str = "MemoryAllocatorManager";
1070 const PACKAGE: &'static str = "envoy.config.bootstrap.v3";
1071 fn full_name() -> ::prost::alloc::string::String {
1072 "envoy.config.bootstrap.v3.MemoryAllocatorManager".into()
1073 }
1074 fn type_url() -> ::prost::alloc::string::String {
1075 "type.googleapis.com/envoy.config.bootstrap.v3.MemoryAllocatorManager".into()
1076 }
1077}