diff options
Diffstat (limited to 'src/rpc/envoy.config.bootstrap.v3.rs')
| -rw-r--r-- | src/rpc/envoy.config.bootstrap.v3.rs | 793 |
1 files changed, 0 insertions, 793 deletions
diff --git a/src/rpc/envoy.config.bootstrap.v3.rs b/src/rpc/envoy.config.bootstrap.v3.rs deleted file mode 100644 index 3e9eeb3f..00000000 --- a/src/rpc/envoy.config.bootstrap.v3.rs +++ /dev/null @@ -1,793 +0,0 @@ -// @generated -// This file is @generated by prost-build. -// \[#protodoc-title: Bootstrap\] -// This proto is supplied via the :option:`-c` CLI flag and acts as the root -// of the Envoy v3 configuration. See the :ref:`v3 configuration overview -// <config_overview_bootstrap>` for more detail. - -/// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`. -/// \[#next-free-field: 42\] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Bootstrap { - /// Node identity to present to the management server and for instance - /// identification purposes (e.g. in generated headers). - #[prost(message, optional, tag="1")] - pub node: ::core::option::Option<super::super::core::v3::Node>, - /// 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:\] - #[prost(string, repeated, tag="26")] - pub node_context_params: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// Statically specified resources. - #[prost(message, optional, tag="2")] - pub static_resources: ::core::option::Option<bootstrap::StaticResources>, - /// xDS configuration sources. - #[prost(message, optional, tag="3")] - pub dynamic_resources: ::core::option::Option<bootstrap::DynamicResources>, - /// Configuration for the cluster manager which owns all upstream clusters - /// within the server. - #[prost(message, optional, tag="4")] - pub cluster_manager: ::core::option::Option<ClusterManager>, - /// Health discovery service config option. - /// (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`) - #[prost(message, optional, tag="14")] - pub hds_config: ::core::option::Option<super::super::core::v3::ApiConfigSource>, - /// Optional file system path to search for startup flag files. - #[prost(string, tag="5")] - pub flags_path: ::prost::alloc::string::String, - /// Optional set of stats sinks. - #[prost(message, repeated, tag="6")] - pub stats_sinks: ::prost::alloc::vec::Vec<super::super::metrics::v3::StatsSink>, - /// Options to control behaviors of deferred creation compatible stats. - #[prost(message, optional, tag="39")] - pub deferred_stat_options: ::core::option::Option<bootstrap::DeferredStatOptions>, - /// Configuration for internal processing of stats. - #[prost(message, optional, tag="13")] - pub stats_config: ::core::option::Option<super::super::metrics::v3::StatsConfig>, - /// 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. - #[prost(message, optional, tag="7")] - pub stats_flush_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>, - /// Optional watchdog configuration. - /// This is for a single watchdog configuration for the entire system. - /// Deprecated in favor of ``watchdogs`` which has finer granularity. - #[deprecated] - #[prost(message, optional, tag="8")] - pub watchdog: ::core::option::Option<Watchdog>, - /// Optional watchdogs configuration. - /// This is used for specifying different watchdogs for the different subsystems. - /// \[#extension-category: envoy.guarddog_actions\] - #[prost(message, optional, tag="27")] - pub watchdogs: ::core::option::Option<Watchdogs>, - /// 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] - #[prost(message, optional, tag="9")] - pub tracing: ::core::option::Option<super::super::trace::v3::Tracing>, - /// Configuration for the runtime configuration provider. If not - /// specified, a “null” provider will be used which will result in all defaults - /// being used. - #[prost(message, optional, tag="17")] - pub layered_runtime: ::core::option::Option<LayeredRuntime>, - /// Configuration for the local administration HTTP server. - #[prost(message, optional, tag="12")] - pub admin: ::core::option::Option<Admin>, - /// Optional overload manager configuration. - #[prost(message, optional, tag="15")] - pub overload_manager: ::core::option::Option<super::super::overload::v3::OverloadManager>, - /// Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false. - /// Note that 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. - #[prost(bool, tag="16")] - pub enable_dispatcher_stats: bool, - /// 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. - #[prost(string, tag="18")] - pub header_prefix: ::prost::alloc::string::String, - /// 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>`. - #[prost(message, optional, tag="19")] - pub stats_server_version_override: ::core::option::Option<super::super::super::super::google::protobuf::UInt64Value>, - /// 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] - #[prost(bool, tag="20")] - pub use_tcp_for_dns_lookups: bool, - /// 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] - #[prost(message, optional, tag="30")] - pub dns_resolution_config: ::core::option::Option<super::super::core::v3::DnsResolutionConfig>, - /// 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`` exists, - /// 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\] - #[prost(message, optional, tag="31")] - pub typed_dns_resolver_config: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>, - /// Specifies optional bootstrap extensions to be instantiated at startup time. - /// Each item contains extension specific configuration. - /// \[#extension-category: envoy.bootstrap\] - #[prost(message, repeated, tag="21")] - pub bootstrap_extensions: ::prost::alloc::vec::Vec<super::super::core::v3::TypedExtensionConfig>, - /// Specifies optional extensions instantiated at startup time and - /// invoked during crash time on the request that caused the crash. - #[prost(message, repeated, tag="28")] - pub fatal_actions: ::prost::alloc::vec::Vec<FatalAction>, - /// 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:\] - #[prost(message, repeated, tag="22")] - pub config_sources: ::prost::alloc::vec::Vec<super::super::core::v3::ConfigSource>, - /// Default configuration source for xdstp:// URLs if all - /// other resolution fails. - /// \[#not-implemented-hide:\] - #[prost(message, optional, tag="23")] - pub default_config_source: ::core::option::Option<super::super::core::v3::ConfigSource>, - /// Optional overriding of default socket interface. The value must be the name of one of the - /// socket interface factories initialized through a bootstrap extension - #[prost(string, tag="24")] - pub default_socket_interface: ::prost::alloc::string::String, - /// 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:\] - #[prost(map="string, message", tag="25")] - pub certificate_provider_instances: ::std::collections::HashMap<::prost::alloc::string::String, super::super::core::v3::TypedExtensionConfig>, - /// 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 that the 'set-cookie' header cannot be registered as inline header. - #[prost(message, repeated, tag="32")] - pub inline_headers: ::prost::alloc::vec::Vec<CustomInlineHeader>, - /// Optional path to a file with performance tracing data created by "Perfetto" SDK in binary - /// ProtoBuf format. The default value is "envoy.pftrace". - #[prost(string, tag="33")] - pub perf_tracing_file_path: ::prost::alloc::string::String, - /// Optional overriding of default regex engine. - /// If the value is not specified, Google RE2 will be used by default. - /// \[#extension-category: envoy.regex_engines\] - #[prost(message, optional, tag="34")] - pub default_regex_engine: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>, - /// 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:\] - #[prost(message, optional, tag="35")] - pub xds_delegate_extension: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>, - /// 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. - #[prost(message, optional, tag="36")] - pub xds_config_tracker_extension: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>, - /// \[#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. - #[prost(message, optional, tag="37")] - pub listener_manager: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>, - /// Optional application log configuration. - #[prost(message, optional, tag="38")] - pub application_log_config: ::core::option::Option<bootstrap::ApplicationLogConfig>, - /// Optional gRPC async manager config. - #[prost(message, optional, tag="40")] - pub grpc_async_client_manager_config: ::core::option::Option<bootstrap::GrpcAsyncClientManagerConfig>, - /// Optional configuration for memory allocation manager. - /// Memory releasing is only supported for `tcmalloc allocator <<https://github.com/google/tcmalloc>`_.> - #[prost(message, optional, tag="41")] - pub memory_allocator_manager: ::core::option::Option<MemoryAllocatorManager>, - #[prost(oneof="bootstrap::StatsFlush", tags="29")] - pub stats_flush: ::core::option::Option<bootstrap::StatsFlush>, -} -/// Nested message and enum types in `Bootstrap`. -pub mod bootstrap { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct StaticResources { - /// Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are - /// available regardless of LDS configuration. - #[prost(message, repeated, tag="1")] - pub listeners: ::prost::alloc::vec::Vec<super::super::super::listener::v3::Listener>, - /// 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. These cluster definitions may not - /// use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static - /// IP or DNS-based). - #[prost(message, repeated, tag="2")] - pub clusters: ::prost::alloc::vec::Vec<super::super::super::cluster::v3::Cluster>, - /// These static secrets can be used by :ref:`SdsSecretConfig - /// <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>` - #[prost(message, repeated, tag="3")] - pub secrets: ::prost::alloc::vec::Vec<super::super::super::super::extensions::transport_sockets::tls::v3::Secret>, - } - /// \[#next-free-field: 7\] - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct DynamicResources { - /// 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. - #[prost(message, optional, tag="1")] - pub lds_config: ::core::option::Option<super::super::super::core::v3::ConfigSource>, - /// xdstp:// resource locator for listener collection. - /// \[#not-implemented-hide:\] - #[prost(string, tag="5")] - pub lds_resources_locator: ::prost::alloc::string::String, - /// 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. - #[prost(message, optional, tag="2")] - pub cds_config: ::core::option::Option<super::super::super::core::v3::ConfigSource>, - /// xdstp:// resource locator for cluster collection. - /// \[#not-implemented-hide:\] - #[prost(string, tag="6")] - pub cds_resources_locator: ::prost::alloc::string::String, - /// 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. - #[prost(message, optional, tag="3")] - pub ads_config: ::core::option::Option<super::super::super::core::v3::ApiConfigSource>, - } - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct ApplicationLogConfig { - /// 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. - #[prost(message, optional, tag="1")] - pub log_format: ::core::option::Option<application_log_config::LogFormat>, - } - /// Nested message and enum types in `ApplicationLogConfig`. - pub mod application_log_config { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct LogFormat { - #[prost(oneof="log_format::LogFormat", tags="1, 2")] - pub log_format: ::core::option::Option<log_format::LogFormat>, - } - /// Nested message and enum types in `LogFormat`. - pub mod log_format { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum LogFormat { - /// 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. - #[prost(message, tag="1")] - JsonFormat(super::super::super::super::super::super::super::google::protobuf::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. - #[prost(string, tag="2")] - TextFormat(::prost::alloc::string::String), - } - } - } - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, Copy, PartialEq, ::prost::Message)] - pub struct DeferredStatOptions { - /// 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 a 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. - #[prost(bool, tag="1")] - pub enable_deferred_creation_stats: bool, - } - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, Copy, PartialEq, ::prost::Message)] - pub struct GrpcAsyncClientManagerConfig { - /// Optional field to set the expiration time for the cached gRPC client object. - /// The minimal value is 5s and the default is 50s. - #[prost(message, optional, tag="1")] - pub max_cached_entry_idle_duration: ::core::option::Option<super::super::super::super::super::google::protobuf::Duration>, - } - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, Copy, PartialEq, ::prost::Oneof)] - pub enum StatsFlush { - /// 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. - #[prost(bool, tag="29")] - StatsFlushOnAdmin(bool), - } -} -/// Administration interface :ref:`operations documentation -/// <operations_admin_interface>`. -/// \[#next-free-field: 7\] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Admin { - /// Configuration for :ref:`access logs <arch_overview_access_logs>` - /// emitted by the administration server. - #[prost(message, repeated, tag="5")] - pub access_log: ::prost::alloc::vec::Vec<super::super::accesslog::v3::AccessLog>, - /// 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] - #[prost(string, tag="1")] - pub access_log_path: ::prost::alloc::string::String, - /// The cpu profiler output path for the administration server. If no profile - /// path is specified, the default is ‘/var/log/envoy/envoy.prof’. - #[prost(string, tag="2")] - pub profile_path: ::prost::alloc::string::String, - /// The TCP address that the administration server will listen on. - /// If not specified, Envoy will not start an administration server. - #[prost(message, optional, tag="3")] - pub address: ::core::option::Option<super::super::core::v3::Address>, - /// Additional socket options that may not be present in Envoy source code or - /// precompiled binaries. - #[prost(message, repeated, tag="4")] - pub socket_options: ::prost::alloc::vec::Vec<super::super::core::v3::SocketOption>, - /// Indicates whether :ref:`global_downstream_max_connections <config_overload_manager_limiting_connections>` - /// should apply to the admin interface or not. - #[prost(bool, tag="6")] - pub ignore_global_conn_limit: bool, -} -/// Cluster manager :ref:`architecture overview <arch_overview_cluster_manager>`. -/// \[#next-free-field: 6\] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ClusterManager { - /// 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>`_.> - #[prost(string, tag="1")] - pub local_cluster_name: ::prost::alloc::string::String, - /// Optional global configuration for outlier detection. - #[prost(message, optional, tag="2")] - pub outlier_detection: ::core::option::Option<cluster_manager::OutlierDetection>, - /// 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. - #[prost(message, optional, tag="3")] - pub upstream_bind_config: ::core::option::Option<super::super::core::v3::BindConfig>, - /// 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>`. - #[prost(message, optional, tag="4")] - pub load_stats_config: ::core::option::Option<super::super::core::v3::ApiConfigSource>, - /// 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. - #[prost(bool, tag="5")] - pub enable_deferred_cluster_creation: bool, -} -/// Nested message and enum types in `ClusterManager`. -pub mod cluster_manager { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct OutlierDetection { - /// Specifies the path to the outlier event log. - #[prost(string, tag="1")] - pub event_log_path: ::prost::alloc::string::String, - /// \[#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. - #[prost(message, optional, tag="2")] - pub event_service: ::core::option::Option<super::super::super::core::v3::EventServiceConfig>, - } -} -/// 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. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Watchdogs { - /// Watchdog for the main thread. - #[prost(message, optional, tag="1")] - pub main_thread_watchdog: ::core::option::Option<Watchdog>, - /// Watchdog for the worker threads. - #[prost(message, optional, tag="2")] - pub worker_watchdog: ::core::option::Option<Watchdog>, -} -/// 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\] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Watchdog { - /// Register actions that will fire on given WatchDog events. - /// See ``WatchDogAction`` for priority of events. - #[prost(message, repeated, tag="7")] - pub actions: ::prost::alloc::vec::Vec<watchdog::WatchdogAction>, - /// The duration after which Envoy counts a nonresponsive thread in the - /// ``watchdog_miss`` statistic. If not specified the default is 200ms. - #[prost(message, optional, tag="1")] - pub miss_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>, - /// The duration after which Envoy counts a nonresponsive thread in the - /// ``watchdog_mega_miss`` statistic. If not specified the default is - /// 1000ms. - #[prost(message, optional, tag="2")] - pub megamiss_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>, - /// 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). - #[prost(message, optional, tag="3")] - pub kill_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>, - /// 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). - #[prost(message, optional, tag="6")] - pub max_kill_timeout_jitter: ::core::option::Option<super::super::super::super::google::protobuf::Duration>, - /// 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). - #[prost(message, optional, tag="4")] - pub multikill_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>, - /// 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. - #[prost(message, optional, tag="5")] - pub multikill_threshold: ::core::option::Option<super::super::super::r#type::v3::Percent>, -} -/// Nested message and enum types in `Watchdog`. -pub mod watchdog { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct WatchdogAction { - /// Extension specific configuration for the action. - #[prost(message, optional, tag="1")] - pub config: ::core::option::Option<super::super::super::core::v3::TypedExtensionConfig>, - #[prost(enumeration="watchdog_action::WatchdogEvent", tag="2")] - pub event: i32, - } - /// Nested message and enum types in `WatchdogAction`. - pub mod watchdog_action { - /// 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. - #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] - #[repr(i32)] - pub enum WatchdogEvent { - Unknown = 0, - Kill = 1, - Multikill = 2, - Megamiss = 3, - Miss = 4, - } - impl WatchdogEvent { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - WatchdogEvent::Unknown => "UNKNOWN", - WatchdogEvent::Kill => "KILL", - WatchdogEvent::Multikill => "MULTIKILL", - WatchdogEvent::Megamiss => "MEGAMISS", - WatchdogEvent::Miss => "MISS", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option<Self> { - match value { - "UNKNOWN" => Some(Self::Unknown), - "KILL" => Some(Self::Kill), - "MULTIKILL" => Some(Self::Multikill), - "MEGAMISS" => Some(Self::Megamiss), - "MISS" => Some(Self::Miss), - _ => None, - } - } - } - } -} -/// 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. -/// If using an unsafe action that could get stuck or deadlock, it 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. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct FatalAction { - /// Extension specific configuration for the action. It's expected to conform - /// to the ``Envoy::Server::Configuration::FatalAction`` interface. - #[prost(message, optional, tag="1")] - pub config: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>, -} -/// Runtime :ref:`configuration overview <config_runtime>` (deprecated). -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Runtime { - /// 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. - #[prost(string, tag="1")] - pub symlink_root: ::prost::alloc::string::String, - /// 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. - #[prost(string, tag="2")] - pub subdirectory: ::prost::alloc::string::String, - /// 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. - #[prost(string, tag="3")] - pub override_subdirectory: ::prost::alloc::string::String, - /// 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>`. - #[prost(message, optional, tag="4")] - pub base: ::core::option::Option<super::super::super::super::google::protobuf::Struct>, -} -/// \[#next-free-field: 6\] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct RuntimeLayer { - /// Descriptive name for the runtime layer. This is only used for the runtime - /// :http:get:`/runtime` output. - #[prost(string, tag="1")] - pub name: ::prost::alloc::string::String, - #[prost(oneof="runtime_layer::LayerSpecifier", tags="2, 3, 4, 5")] - pub layer_specifier: ::core::option::Option<runtime_layer::LayerSpecifier>, -} -/// Nested message and enum types in `RuntimeLayer`. -pub mod runtime_layer { - /// :ref:`Disk runtime <config_runtime_local_disk>` layer. - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct DiskLayer { - /// 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. - #[prost(string, tag="1")] - pub symlink_root: ::prost::alloc::string::String, - /// 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. - #[prost(string, tag="3")] - pub subdirectory: ::prost::alloc::string::String, - /// :ref:`Append <config_runtime_local_disk_service_cluster_subdirs>` the - /// service cluster to the path under symlink root. - #[prost(bool, tag="2")] - pub append_service_cluster: bool, - } - /// :ref:`Admin console runtime <config_runtime_admin>` layer. - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, Copy, PartialEq, ::prost::Message)] - pub struct AdminLayer { - } - /// :ref:`Runtime Discovery Service (RTDS) <config_runtime_rtds>` layer. - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] - pub struct RtdsLayer { - /// Resource to subscribe to at ``rtds_config`` for the RTDS layer. - #[prost(string, tag="1")] - pub name: ::prost::alloc::string::String, - /// RTDS configuration source. - #[prost(message, optional, tag="2")] - pub rtds_config: ::core::option::Option<super::super::super::core::v3::ConfigSource>, - } - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum LayerSpecifier { - /// :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. - #[prost(message, tag="2")] - StaticLayer(super::super::super::super::super::google::protobuf::Struct), - #[prost(message, tag="3")] - DiskLayer(DiskLayer), - #[prost(message, tag="4")] - AdminLayer(AdminLayer), - #[prost(message, tag="5")] - RtdsLayer(RtdsLayer), - } -} -/// Runtime :ref:`configuration overview <config_runtime>`. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct LayeredRuntime { - /// The :ref:`layers <config_runtime_layering>` of the runtime. This is ordered - /// such that later layers in the list overlay earlier entries. - #[prost(message, repeated, tag="1")] - pub layers: ::prost::alloc::vec::Vec<RuntimeLayer>, -} -/// 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 contains -/// 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. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct CustomInlineHeader { - /// The name of the header that is expected to be set as the inline header. - #[prost(string, tag="1")] - pub inline_header_name: ::prost::alloc::string::String, - /// The type of the header that is expected to be set as the inline header. - #[prost(enumeration="custom_inline_header::InlineHeaderType", tag="2")] - pub inline_header_type: i32, -} -/// Nested message and enum types in `CustomInlineHeader`. -pub mod custom_inline_header { - #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] - #[repr(i32)] - pub enum InlineHeaderType { - RequestHeader = 0, - RequestTrailer = 1, - ResponseHeader = 2, - ResponseTrailer = 3, - } - impl InlineHeaderType { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - InlineHeaderType::RequestHeader => "REQUEST_HEADER", - InlineHeaderType::RequestTrailer => "REQUEST_TRAILER", - InlineHeaderType::ResponseHeader => "RESPONSE_HEADER", - InlineHeaderType::ResponseTrailer => "RESPONSE_TRAILER", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option<Self> { - match value { - "REQUEST_HEADER" => Some(Self::RequestHeader), - "REQUEST_TRAILER" => Some(Self::RequestTrailer), - "RESPONSE_HEADER" => Some(Self::ResponseHeader), - "RESPONSE_TRAILER" => Some(Self::ResponseTrailer), - _ => None, - } - } - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct MemoryAllocatorManager { - /// 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``. - #[prost(uint64, tag="1")] - pub bytes_to_release: u64, - /// 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. - #[prost(message, optional, tag="2")] - pub memory_release_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>, -} -// @@protoc_insertion_point(module) |
