All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.scala Maven / Gradle / Ivy

There is a newer version: 1.23.0-dev-f04150-1
Show newest version
// Generated by the Scala Plugin for the Protocol Buffer Compiler.
// Do not edit!
//
// Protofile syntax: PROTO3

package io.envoyproxy.envoy.config.bootstrap.v3

/** Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
  * [#next-free-field: 35]
  *
  * @param node
  *   Node identity to present to the management server and for instance
  *   identification purposes (e.g. in generated headers).
  * @param nodeContextParams
  *   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: "{&92;"bar&92;": &92;"baz&92;"}"
  *     node.metadata.some: "42"
  *     node.metadata.thing: "&92;"thing&92;""
  *  
  *   [#not-implemented-hide:]
  * @param staticResources
  *   Statically specified resources.
  * @param dynamicResources
  *   xDS configuration sources.
  * @param clusterManager
  *   Configuration for the cluster manager which owns all upstream clusters
  *   within the server.
  * @param hdsConfig
  *   Health discovery service config option.
  *   (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`)
  * @param flagsPath
  *   Optional file system path to search for startup flag files.
  * @param statsSinks
  *   Optional set of stats sinks.
  * @param statsConfig
  *   Configuration for internal processing of stats.
  * @param statsFlushInterval
  *   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.
  * @param watchdog
  *   Optional watchdog configuration.
  *   This is for a single watchdog configuration for the entire system.
  *   Deprecated in favor of *watchdogs* which has finer granularity.
  * @param watchdogs
  *   Optional watchdogs configuration.
  *   This is used for specifying different watchdogs for the different subsystems.
  *   [#extension-category: envoy.guarddog_actions]
  * @param tracing
  *   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>`.
  * @param layeredRuntime
  *   Configuration for the runtime configuration provider. If not
  *   specified, a “null” provider will be used which will result in all defaults
  *   being used.
  * @param admin
  *   Configuration for the local administration HTTP server.
  * @param overloadManager
  *   Optional overload manager configuration.
  * @param enableDispatcherStats
  *   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.
  * @param headerPrefix
  *   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.
  * @param statsServerVersionOverride
  *   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>`.
  * @param useTcpForDnsLookups
  *   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.
  * @param dnsResolutionConfig
  *   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>`.
  * @param typedDnsResolverConfig
  *   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]
  * @param bootstrapExtensions
  *   Specifies optional bootstrap extensions to be instantiated at startup time.
  *   Each item contains extension specific configuration.
  *   [#extension-category: envoy.bootstrap]
  * @param fatalActions
  *   Specifies optional extensions instantiated at startup time and
  *   invoked during crash time on the request that caused the crash.
  * @param configSources
  *   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:]
  * @param defaultConfigSource
  *   Default configuration source for xdstp:// URLs if all
  *   other resolution fails.
  *   [#not-implemented-hide:]
  * @param defaultSocketInterface
  *   Optional overriding of default socket interface. The value must be the name of one of the
  *   socket interface factories initialized through a bootstrap extension
  * @param certificateProviderInstances
  *   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:]
  * @param inlineHeaders
  *   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.
  * @param perfTracingFilePath
  *   Optional path to a file with performance tracing data created by "Perfetto" SDK in binary
  *   ProtoBuf format. The default value is "envoy.pftrace".
  * @param defaultRegexEngine
  *   Optional overriding of default regex engine.
  *   If the value is not specified, Google RE2 will be used by default.
  *   [#extension-category: envoy.regex_engines]
  */
@SerialVersionUID(0L)
final case class Bootstrap(
    node: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.Node] = _root_.scala.None,
    nodeContextParams: _root_.scala.Seq[_root_.scala.Predef.String] = _root_.scala.Seq.empty,
    staticResources: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources] = _root_.scala.None,
    dynamicResources: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources] = _root_.scala.None,
    clusterManager: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager] = _root_.scala.None,
    hdsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource] = _root_.scala.None,
    flagsPath: _root_.scala.Predef.String = "",
    statsSinks: _root_.scala.Seq[io.envoyproxy.envoy.config.metrics.v3.StatsSink] = _root_.scala.Seq.empty,
    statsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.metrics.v3.StatsConfig] = _root_.scala.None,
    statsFlushInterval: _root_.scala.Option[com.google.protobuf.duration.Duration] = _root_.scala.None,
    statsFlush: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.Empty,
    @scala.deprecated(message="Marked as deprecated in proto file", "") watchdog: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdog] = _root_.scala.None,
    watchdogs: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs] = _root_.scala.None,
    @scala.deprecated(message="Marked as deprecated in proto file", "") tracing: _root_.scala.Option[io.envoyproxy.envoy.config.trace.v3.Tracing] = _root_.scala.None,
    layeredRuntime: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime] = _root_.scala.None,
    admin: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Admin] = _root_.scala.None,
    overloadManager: _root_.scala.Option[io.envoyproxy.envoy.config.overload.v3.OverloadManager] = _root_.scala.None,
    enableDispatcherStats: _root_.scala.Boolean = false,
    headerPrefix: _root_.scala.Predef.String = "",
    statsServerVersionOverride: _root_.scala.Option[_root_.scala.Long] = _root_.scala.None,
    @scala.deprecated(message="Marked as deprecated in proto file", "") useTcpForDnsLookups: _root_.scala.Boolean = false,
    @scala.deprecated(message="Marked as deprecated in proto file", "") dnsResolutionConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig] = _root_.scala.None,
    typedDnsResolverConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.None,
    bootstrapExtensions: _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.Seq.empty,
    fatalActions: _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction] = _root_.scala.Seq.empty,
    configSources: _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.ConfigSource] = _root_.scala.Seq.empty,
    defaultConfigSource: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource] = _root_.scala.None,
    defaultSocketInterface: _root_.scala.Predef.String = "",
    certificateProviderInstances: _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.collection.immutable.Map.empty,
    inlineHeaders: _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader] = _root_.scala.Seq.empty,
    perfTracingFilePath: _root_.scala.Predef.String = "",
    defaultRegexEngine: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.None,
    unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
    ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Bootstrap] {
    @transient
    private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
    private[this] def __computeSerializedSize(): _root_.scala.Int = {
      var __size = 0
      if (node.isDefined) {
        val __value = node.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      nodeContextParams.foreach { __item =>
        val __value = __item
        __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(26, __value)
      }
      if (staticResources.isDefined) {
        val __value = staticResources.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (dynamicResources.isDefined) {
        val __value = dynamicResources.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (clusterManager.isDefined) {
        val __value = clusterManager.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (hdsConfig.isDefined) {
        val __value = hdsConfig.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      
      {
        val __value = flagsPath
        if (!__value.isEmpty) {
          __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(5, __value)
        }
      };
      statsSinks.foreach { __item =>
        val __value = __item
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      if (statsConfig.isDefined) {
        val __value = statsConfig.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (statsFlushInterval.isDefined) {
        val __value = statsFlushInterval.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (statsFlush.statsFlushOnAdmin.isDefined) {
        val __value = statsFlush.statsFlushOnAdmin.get
        __size += _root_.com.google.protobuf.CodedOutputStream.computeBoolSize(29, __value)
      };
      if (watchdog.isDefined) {
        val __value = watchdog.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (watchdogs.isDefined) {
        val __value = watchdogs.get
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (tracing.isDefined) {
        val __value = tracing.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (layeredRuntime.isDefined) {
        val __value = layeredRuntime.get
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (admin.isDefined) {
        val __value = admin.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (overloadManager.isDefined) {
        val __value = overloadManager.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      
      {
        val __value = enableDispatcherStats
        if (__value != false) {
          __size += _root_.com.google.protobuf.CodedOutputStream.computeBoolSize(16, __value)
        }
      };
      
      {
        val __value = headerPrefix
        if (!__value.isEmpty) {
          __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(18, __value)
        }
      };
      if (statsServerVersionOverride.isDefined) {
        val __value = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toBase(statsServerVersionOverride.get)
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      
      {
        val __value = useTcpForDnsLookups
        if (__value != false) {
          __size += _root_.com.google.protobuf.CodedOutputStream.computeBoolSize(20, __value)
        }
      };
      if (dnsResolutionConfig.isDefined) {
        val __value = dnsResolutionConfig.get
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (typedDnsResolverConfig.isDefined) {
        val __value = typedDnsResolverConfig.get
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      bootstrapExtensions.foreach { __item =>
        val __value = __item
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      fatalActions.foreach { __item =>
        val __value = __item
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      configSources.foreach { __item =>
        val __value = __item
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      if (defaultConfigSource.isDefined) {
        val __value = defaultConfigSource.get
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      
      {
        val __value = defaultSocketInterface
        if (!__value.isEmpty) {
          __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(24, __value)
        }
      };
      certificateProviderInstances.foreach { __item =>
        val __value = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_certificateProviderInstances.toBase(__item)
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      inlineHeaders.foreach { __item =>
        val __value = __item
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      
      {
        val __value = perfTracingFilePath
        if (!__value.isEmpty) {
          __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(33, __value)
        }
      };
      if (defaultRegexEngine.isDefined) {
        val __value = defaultRegexEngine.get
        __size += 2 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      __size += unknownFields.serializedSize
      __size
    }
    override def serializedSize: _root_.scala.Int = {
      var __size = __serializedSizeMemoized
      if (__size == 0) {
        __size = __computeSerializedSize() + 1
        __serializedSizeMemoized = __size
      }
      __size - 1
      
    }
    def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
      node.foreach { __v =>
        val __m = __v
        _output__.writeTag(1, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      staticResources.foreach { __v =>
        val __m = __v
        _output__.writeTag(2, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      dynamicResources.foreach { __v =>
        val __m = __v
        _output__.writeTag(3, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      clusterManager.foreach { __v =>
        val __m = __v
        _output__.writeTag(4, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      {
        val __v = flagsPath
        if (!__v.isEmpty) {
          _output__.writeString(5, __v)
        }
      };
      statsSinks.foreach { __v =>
        val __m = __v
        _output__.writeTag(6, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      statsFlushInterval.foreach { __v =>
        val __m = __v
        _output__.writeTag(7, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      watchdog.foreach { __v =>
        val __m = __v
        _output__.writeTag(8, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      tracing.foreach { __v =>
        val __m = __v
        _output__.writeTag(9, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      admin.foreach { __v =>
        val __m = __v
        _output__.writeTag(12, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      statsConfig.foreach { __v =>
        val __m = __v
        _output__.writeTag(13, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      hdsConfig.foreach { __v =>
        val __m = __v
        _output__.writeTag(14, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      overloadManager.foreach { __v =>
        val __m = __v
        _output__.writeTag(15, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      {
        val __v = enableDispatcherStats
        if (__v != false) {
          _output__.writeBool(16, __v)
        }
      };
      layeredRuntime.foreach { __v =>
        val __m = __v
        _output__.writeTag(17, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      {
        val __v = headerPrefix
        if (!__v.isEmpty) {
          _output__.writeString(18, __v)
        }
      };
      statsServerVersionOverride.foreach { __v =>
        val __m = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toBase(__v)
        _output__.writeTag(19, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      {
        val __v = useTcpForDnsLookups
        if (__v != false) {
          _output__.writeBool(20, __v)
        }
      };
      bootstrapExtensions.foreach { __v =>
        val __m = __v
        _output__.writeTag(21, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      configSources.foreach { __v =>
        val __m = __v
        _output__.writeTag(22, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      defaultConfigSource.foreach { __v =>
        val __m = __v
        _output__.writeTag(23, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      {
        val __v = defaultSocketInterface
        if (!__v.isEmpty) {
          _output__.writeString(24, __v)
        }
      };
      certificateProviderInstances.foreach { __v =>
        val __m = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_certificateProviderInstances.toBase(__v)
        _output__.writeTag(25, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      nodeContextParams.foreach { __v =>
        val __m = __v
        _output__.writeString(26, __m)
      };
      watchdogs.foreach { __v =>
        val __m = __v
        _output__.writeTag(27, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      fatalActions.foreach { __v =>
        val __m = __v
        _output__.writeTag(28, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      statsFlush.statsFlushOnAdmin.foreach { __v =>
        val __m = __v
        _output__.writeBool(29, __m)
      };
      dnsResolutionConfig.foreach { __v =>
        val __m = __v
        _output__.writeTag(30, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      typedDnsResolverConfig.foreach { __v =>
        val __m = __v
        _output__.writeTag(31, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      inlineHeaders.foreach { __v =>
        val __m = __v
        _output__.writeTag(32, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      {
        val __v = perfTracingFilePath
        if (!__v.isEmpty) {
          _output__.writeString(33, __v)
        }
      };
      defaultRegexEngine.foreach { __v =>
        val __m = __v
        _output__.writeTag(34, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      unknownFields.writeTo(_output__)
    }
    def getNode: io.envoyproxy.envoy.config.core.v3.Node = node.getOrElse(io.envoyproxy.envoy.config.core.v3.Node.defaultInstance)
    def clearNode: Bootstrap = copy(node = _root_.scala.None)
    def withNode(__v: io.envoyproxy.envoy.config.core.v3.Node): Bootstrap = copy(node = Option(__v))
    def clearNodeContextParams = copy(nodeContextParams = _root_.scala.Seq.empty)
    def addNodeContextParams(__vs: _root_.scala.Predef.String *): Bootstrap = addAllNodeContextParams(__vs)
    def addAllNodeContextParams(__vs: Iterable[_root_.scala.Predef.String]): Bootstrap = copy(nodeContextParams = nodeContextParams ++ __vs)
    def withNodeContextParams(__v: _root_.scala.Seq[_root_.scala.Predef.String]): Bootstrap = copy(nodeContextParams = __v)
    def getStaticResources: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources = staticResources.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources.defaultInstance)
    def clearStaticResources: Bootstrap = copy(staticResources = _root_.scala.None)
    def withStaticResources(__v: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources): Bootstrap = copy(staticResources = Option(__v))
    def getDynamicResources: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources = dynamicResources.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources.defaultInstance)
    def clearDynamicResources: Bootstrap = copy(dynamicResources = _root_.scala.None)
    def withDynamicResources(__v: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources): Bootstrap = copy(dynamicResources = Option(__v))
    def getClusterManager: io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager = clusterManager.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager.defaultInstance)
    def clearClusterManager: Bootstrap = copy(clusterManager = _root_.scala.None)
    def withClusterManager(__v: io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager): Bootstrap = copy(clusterManager = Option(__v))
    def getHdsConfig: io.envoyproxy.envoy.config.core.v3.ApiConfigSource = hdsConfig.getOrElse(io.envoyproxy.envoy.config.core.v3.ApiConfigSource.defaultInstance)
    def clearHdsConfig: Bootstrap = copy(hdsConfig = _root_.scala.None)
    def withHdsConfig(__v: io.envoyproxy.envoy.config.core.v3.ApiConfigSource): Bootstrap = copy(hdsConfig = Option(__v))
    def withFlagsPath(__v: _root_.scala.Predef.String): Bootstrap = copy(flagsPath = __v)
    def clearStatsSinks = copy(statsSinks = _root_.scala.Seq.empty)
    def addStatsSinks(__vs: io.envoyproxy.envoy.config.metrics.v3.StatsSink *): Bootstrap = addAllStatsSinks(__vs)
    def addAllStatsSinks(__vs: Iterable[io.envoyproxy.envoy.config.metrics.v3.StatsSink]): Bootstrap = copy(statsSinks = statsSinks ++ __vs)
    def withStatsSinks(__v: _root_.scala.Seq[io.envoyproxy.envoy.config.metrics.v3.StatsSink]): Bootstrap = copy(statsSinks = __v)
    def getStatsConfig: io.envoyproxy.envoy.config.metrics.v3.StatsConfig = statsConfig.getOrElse(io.envoyproxy.envoy.config.metrics.v3.StatsConfig.defaultInstance)
    def clearStatsConfig: Bootstrap = copy(statsConfig = _root_.scala.None)
    def withStatsConfig(__v: io.envoyproxy.envoy.config.metrics.v3.StatsConfig): Bootstrap = copy(statsConfig = Option(__v))
    def getStatsFlushInterval: com.google.protobuf.duration.Duration = statsFlushInterval.getOrElse(com.google.protobuf.duration.Duration.defaultInstance)
    def clearStatsFlushInterval: Bootstrap = copy(statsFlushInterval = _root_.scala.None)
    def withStatsFlushInterval(__v: com.google.protobuf.duration.Duration): Bootstrap = copy(statsFlushInterval = Option(__v))
    def getStatsFlushOnAdmin: _root_.scala.Boolean = statsFlush.statsFlushOnAdmin.getOrElse(false)
    def withStatsFlushOnAdmin(__v: _root_.scala.Boolean): Bootstrap = copy(statsFlush = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.StatsFlushOnAdmin(__v))
    def getWatchdog: io.envoyproxy.envoy.config.bootstrap.v3.Watchdog = watchdog.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.Watchdog.defaultInstance)
    def clearWatchdog: Bootstrap = copy(watchdog = _root_.scala.None)
    def withWatchdog(__v: io.envoyproxy.envoy.config.bootstrap.v3.Watchdog): Bootstrap = copy(watchdog = Option(__v))
    def getWatchdogs: io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs = watchdogs.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs.defaultInstance)
    def clearWatchdogs: Bootstrap = copy(watchdogs = _root_.scala.None)
    def withWatchdogs(__v: io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs): Bootstrap = copy(watchdogs = Option(__v))
    def getTracing: io.envoyproxy.envoy.config.trace.v3.Tracing = tracing.getOrElse(io.envoyproxy.envoy.config.trace.v3.Tracing.defaultInstance)
    def clearTracing: Bootstrap = copy(tracing = _root_.scala.None)
    def withTracing(__v: io.envoyproxy.envoy.config.trace.v3.Tracing): Bootstrap = copy(tracing = Option(__v))
    def getLayeredRuntime: io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime = layeredRuntime.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime.defaultInstance)
    def clearLayeredRuntime: Bootstrap = copy(layeredRuntime = _root_.scala.None)
    def withLayeredRuntime(__v: io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime): Bootstrap = copy(layeredRuntime = Option(__v))
    def getAdmin: io.envoyproxy.envoy.config.bootstrap.v3.Admin = admin.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.Admin.defaultInstance)
    def clearAdmin: Bootstrap = copy(admin = _root_.scala.None)
    def withAdmin(__v: io.envoyproxy.envoy.config.bootstrap.v3.Admin): Bootstrap = copy(admin = Option(__v))
    def getOverloadManager: io.envoyproxy.envoy.config.overload.v3.OverloadManager = overloadManager.getOrElse(io.envoyproxy.envoy.config.overload.v3.OverloadManager.defaultInstance)
    def clearOverloadManager: Bootstrap = copy(overloadManager = _root_.scala.None)
    def withOverloadManager(__v: io.envoyproxy.envoy.config.overload.v3.OverloadManager): Bootstrap = copy(overloadManager = Option(__v))
    def withEnableDispatcherStats(__v: _root_.scala.Boolean): Bootstrap = copy(enableDispatcherStats = __v)
    def withHeaderPrefix(__v: _root_.scala.Predef.String): Bootstrap = copy(headerPrefix = __v)
    def getStatsServerVersionOverride: _root_.scala.Long = statsServerVersionOverride.getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toCustom(com.google.protobuf.wrappers.UInt64Value.defaultInstance))
    def clearStatsServerVersionOverride: Bootstrap = copy(statsServerVersionOverride = _root_.scala.None)
    def withStatsServerVersionOverride(__v: _root_.scala.Long): Bootstrap = copy(statsServerVersionOverride = Option(__v))
    def withUseTcpForDnsLookups(__v: _root_.scala.Boolean): Bootstrap = copy(useTcpForDnsLookups = __v)
    def getDnsResolutionConfig: io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig = dnsResolutionConfig.getOrElse(io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.defaultInstance)
    def clearDnsResolutionConfig: Bootstrap = copy(dnsResolutionConfig = _root_.scala.None)
    def withDnsResolutionConfig(__v: io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig): Bootstrap = copy(dnsResolutionConfig = Option(__v))
    def getTypedDnsResolverConfig: io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig = typedDnsResolverConfig.getOrElse(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.defaultInstance)
    def clearTypedDnsResolverConfig: Bootstrap = copy(typedDnsResolverConfig = _root_.scala.None)
    def withTypedDnsResolverConfig(__v: io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig): Bootstrap = copy(typedDnsResolverConfig = Option(__v))
    def clearBootstrapExtensions = copy(bootstrapExtensions = _root_.scala.Seq.empty)
    def addBootstrapExtensions(__vs: io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig *): Bootstrap = addAllBootstrapExtensions(__vs)
    def addAllBootstrapExtensions(__vs: Iterable[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]): Bootstrap = copy(bootstrapExtensions = bootstrapExtensions ++ __vs)
    def withBootstrapExtensions(__v: _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]): Bootstrap = copy(bootstrapExtensions = __v)
    def clearFatalActions = copy(fatalActions = _root_.scala.Seq.empty)
    def addFatalActions(__vs: io.envoyproxy.envoy.config.bootstrap.v3.FatalAction *): Bootstrap = addAllFatalActions(__vs)
    def addAllFatalActions(__vs: Iterable[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction]): Bootstrap = copy(fatalActions = fatalActions ++ __vs)
    def withFatalActions(__v: _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction]): Bootstrap = copy(fatalActions = __v)
    def clearConfigSources = copy(configSources = _root_.scala.Seq.empty)
    def addConfigSources(__vs: io.envoyproxy.envoy.config.core.v3.ConfigSource *): Bootstrap = addAllConfigSources(__vs)
    def addAllConfigSources(__vs: Iterable[io.envoyproxy.envoy.config.core.v3.ConfigSource]): Bootstrap = copy(configSources = configSources ++ __vs)
    def withConfigSources(__v: _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.ConfigSource]): Bootstrap = copy(configSources = __v)
    def getDefaultConfigSource: io.envoyproxy.envoy.config.core.v3.ConfigSource = defaultConfigSource.getOrElse(io.envoyproxy.envoy.config.core.v3.ConfigSource.defaultInstance)
    def clearDefaultConfigSource: Bootstrap = copy(defaultConfigSource = _root_.scala.None)
    def withDefaultConfigSource(__v: io.envoyproxy.envoy.config.core.v3.ConfigSource): Bootstrap = copy(defaultConfigSource = Option(__v))
    def withDefaultSocketInterface(__v: _root_.scala.Predef.String): Bootstrap = copy(defaultSocketInterface = __v)
    def clearCertificateProviderInstances = copy(certificateProviderInstances = _root_.scala.collection.immutable.Map.empty)
    def addCertificateProviderInstances(__vs: (_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) *): Bootstrap = addAllCertificateProviderInstances(__vs)
    def addAllCertificateProviderInstances(__vs: Iterable[(_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig)]): Bootstrap = copy(certificateProviderInstances = certificateProviderInstances ++ __vs)
    def withCertificateProviderInstances(__v: _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]): Bootstrap = copy(certificateProviderInstances = __v)
    def clearInlineHeaders = copy(inlineHeaders = _root_.scala.Seq.empty)
    def addInlineHeaders(__vs: io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader *): Bootstrap = addAllInlineHeaders(__vs)
    def addAllInlineHeaders(__vs: Iterable[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader]): Bootstrap = copy(inlineHeaders = inlineHeaders ++ __vs)
    def withInlineHeaders(__v: _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader]): Bootstrap = copy(inlineHeaders = __v)
    def withPerfTracingFilePath(__v: _root_.scala.Predef.String): Bootstrap = copy(perfTracingFilePath = __v)
    def getDefaultRegexEngine: io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig = defaultRegexEngine.getOrElse(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.defaultInstance)
    def clearDefaultRegexEngine: Bootstrap = copy(defaultRegexEngine = _root_.scala.None)
    def withDefaultRegexEngine(__v: io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig): Bootstrap = copy(defaultRegexEngine = Option(__v))
    def clearStatsFlush: Bootstrap = copy(statsFlush = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.Empty)
    def withStatsFlush(__v: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush): Bootstrap = copy(statsFlush = __v)
    def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
    def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
    def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
      (__fieldNumber: @_root_.scala.unchecked) match {
        case 1 => node.orNull
        case 26 => nodeContextParams
        case 2 => staticResources.orNull
        case 3 => dynamicResources.orNull
        case 4 => clusterManager.orNull
        case 14 => hdsConfig.orNull
        case 5 => {
          val __t = flagsPath
          if (__t != "") __t else null
        }
        case 6 => statsSinks
        case 13 => statsConfig.orNull
        case 7 => statsFlushInterval.orNull
        case 29 => statsFlush.statsFlushOnAdmin.orNull
        case 8 => watchdog.orNull
        case 27 => watchdogs.orNull
        case 9 => tracing.orNull
        case 17 => layeredRuntime.orNull
        case 12 => admin.orNull
        case 15 => overloadManager.orNull
        case 16 => {
          val __t = enableDispatcherStats
          if (__t != false) __t else null
        }
        case 18 => {
          val __t = headerPrefix
          if (__t != "") __t else null
        }
        case 19 => statsServerVersionOverride.map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toBase(_)).orNull
        case 20 => {
          val __t = useTcpForDnsLookups
          if (__t != false) __t else null
        }
        case 30 => dnsResolutionConfig.orNull
        case 31 => typedDnsResolverConfig.orNull
        case 21 => bootstrapExtensions
        case 28 => fatalActions
        case 22 => configSources
        case 23 => defaultConfigSource.orNull
        case 24 => {
          val __t = defaultSocketInterface
          if (__t != "") __t else null
        }
        case 25 => certificateProviderInstances.iterator.map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_certificateProviderInstances.toBase(_)).toSeq
        case 32 => inlineHeaders
        case 33 => {
          val __t = perfTracingFilePath
          if (__t != "") __t else null
        }
        case 34 => defaultRegexEngine.orNull
      }
    }
    def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
      _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
      (__field.number: @_root_.scala.unchecked) match {
        case 1 => node.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 26 => _root_.scalapb.descriptors.PRepeated(nodeContextParams.iterator.map(_root_.scalapb.descriptors.PString(_)).toVector)
        case 2 => staticResources.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 3 => dynamicResources.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 4 => clusterManager.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 14 => hdsConfig.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 5 => _root_.scalapb.descriptors.PString(flagsPath)
        case 6 => _root_.scalapb.descriptors.PRepeated(statsSinks.iterator.map(_.toPMessage).toVector)
        case 13 => statsConfig.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 7 => statsFlushInterval.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 29 => statsFlush.statsFlushOnAdmin.map(_root_.scalapb.descriptors.PBoolean(_)).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 8 => watchdog.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 27 => watchdogs.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 9 => tracing.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 17 => layeredRuntime.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 12 => admin.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 15 => overloadManager.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 16 => _root_.scalapb.descriptors.PBoolean(enableDispatcherStats)
        case 18 => _root_.scalapb.descriptors.PString(headerPrefix)
        case 19 => statsServerVersionOverride.map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toBase(_).toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 20 => _root_.scalapb.descriptors.PBoolean(useTcpForDnsLookups)
        case 30 => dnsResolutionConfig.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 31 => typedDnsResolverConfig.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 21 => _root_.scalapb.descriptors.PRepeated(bootstrapExtensions.iterator.map(_.toPMessage).toVector)
        case 28 => _root_.scalapb.descriptors.PRepeated(fatalActions.iterator.map(_.toPMessage).toVector)
        case 22 => _root_.scalapb.descriptors.PRepeated(configSources.iterator.map(_.toPMessage).toVector)
        case 23 => defaultConfigSource.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 24 => _root_.scalapb.descriptors.PString(defaultSocketInterface)
        case 25 => _root_.scalapb.descriptors.PRepeated(certificateProviderInstances.iterator.map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_certificateProviderInstances.toBase(_).toPMessage).toVector)
        case 32 => _root_.scalapb.descriptors.PRepeated(inlineHeaders.iterator.map(_.toPMessage).toVector)
        case 33 => _root_.scalapb.descriptors.PString(perfTracingFilePath)
        case 34 => defaultRegexEngine.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
      }
    }
    def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
    def companion: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.type = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap
    // @@protoc_insertion_point(GeneratedMessage[envoy.config.bootstrap.v3.Bootstrap])
}

object Bootstrap extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap] {
  implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap] = this
  def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap = {
    var __node: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.Node] = _root_.scala.None
    val __nodeContextParams: _root_.scala.collection.immutable.VectorBuilder[_root_.scala.Predef.String] = new _root_.scala.collection.immutable.VectorBuilder[_root_.scala.Predef.String]
    var __staticResources: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources] = _root_.scala.None
    var __dynamicResources: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources] = _root_.scala.None
    var __clusterManager: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager] = _root_.scala.None
    var __hdsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource] = _root_.scala.None
    var __flagsPath: _root_.scala.Predef.String = ""
    val __statsSinks: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.metrics.v3.StatsSink] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.metrics.v3.StatsSink]
    var __statsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.metrics.v3.StatsConfig] = _root_.scala.None
    var __statsFlushInterval: _root_.scala.Option[com.google.protobuf.duration.Duration] = _root_.scala.None
    var __watchdog: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdog] = _root_.scala.None
    var __watchdogs: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs] = _root_.scala.None
    var __tracing: _root_.scala.Option[io.envoyproxy.envoy.config.trace.v3.Tracing] = _root_.scala.None
    var __layeredRuntime: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime] = _root_.scala.None
    var __admin: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Admin] = _root_.scala.None
    var __overloadManager: _root_.scala.Option[io.envoyproxy.envoy.config.overload.v3.OverloadManager] = _root_.scala.None
    var __enableDispatcherStats: _root_.scala.Boolean = false
    var __headerPrefix: _root_.scala.Predef.String = ""
    var __statsServerVersionOverride: _root_.scala.Option[_root_.scala.Long] = _root_.scala.None
    var __useTcpForDnsLookups: _root_.scala.Boolean = false
    var __dnsResolutionConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig] = _root_.scala.None
    var __typedDnsResolverConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.None
    val __bootstrapExtensions: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]
    val __fatalActions: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction]
    val __configSources: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.core.v3.ConfigSource] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.core.v3.ConfigSource]
    var __defaultConfigSource: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource] = _root_.scala.None
    var __defaultSocketInterface: _root_.scala.Predef.String = ""
    val __certificateProviderInstances: _root_.scala.collection.mutable.Builder[(_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig), _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]] = _root_.scala.collection.immutable.Map.newBuilder[_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]
    val __inlineHeaders: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader]
    var __perfTracingFilePath: _root_.scala.Predef.String = ""
    var __defaultRegexEngine: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.None
    var __statsFlush: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.Empty
    var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
    var _done__ = false
    while (!_done__) {
      val _tag__ = _input__.readTag()
      _tag__ match {
        case 0 => _done__ = true
        case 10 =>
          __node = Option(__node.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.Node](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 210 =>
          __nodeContextParams += _input__.readStringRequireUtf8()
        case 18 =>
          __staticResources = Option(__staticResources.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 26 =>
          __dynamicResources = Option(__dynamicResources.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 34 =>
          __clusterManager = Option(__clusterManager.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 114 =>
          __hdsConfig = Option(__hdsConfig.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.ApiConfigSource](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 42 =>
          __flagsPath = _input__.readStringRequireUtf8()
        case 50 =>
          __statsSinks += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.metrics.v3.StatsSink](_input__)
        case 106 =>
          __statsConfig = Option(__statsConfig.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.metrics.v3.StatsConfig](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 58 =>
          __statsFlushInterval = Option(__statsFlushInterval.fold(_root_.scalapb.LiteParser.readMessage[com.google.protobuf.duration.Duration](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 232 =>
          __statsFlush = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.StatsFlushOnAdmin(_input__.readBool())
        case 66 =>
          __watchdog = Option(__watchdog.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.Watchdog](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 218 =>
          __watchdogs = Option(__watchdogs.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 74 =>
          __tracing = Option(__tracing.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.trace.v3.Tracing](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 138 =>
          __layeredRuntime = Option(__layeredRuntime.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 98 =>
          __admin = Option(__admin.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.Admin](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 122 =>
          __overloadManager = Option(__overloadManager.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.overload.v3.OverloadManager](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 128 =>
          __enableDispatcherStats = _input__.readBool()
        case 146 =>
          __headerPrefix = _input__.readStringRequireUtf8()
        case 154 =>
          __statsServerVersionOverride = Option(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toCustom(__statsServerVersionOverride.map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toBase(_)).fold(_root_.scalapb.LiteParser.readMessage[com.google.protobuf.wrappers.UInt64Value](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _))))
        case 160 =>
          __useTcpForDnsLookups = _input__.readBool()
        case 242 =>
          __dnsResolutionConfig = Option(__dnsResolutionConfig.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 250 =>
          __typedDnsResolverConfig = Option(__typedDnsResolverConfig.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 170 =>
          __bootstrapExtensions += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig](_input__)
        case 226 =>
          __fatalActions += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction](_input__)
        case 178 =>
          __configSources += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.ConfigSource](_input__)
        case 186 =>
          __defaultConfigSource = Option(__defaultConfigSource.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.ConfigSource](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 194 =>
          __defaultSocketInterface = _input__.readStringRequireUtf8()
        case 202 =>
          __certificateProviderInstances += io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_certificateProviderInstances.toCustom(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry](_input__))
        case 258 =>
          __inlineHeaders += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader](_input__)
        case 266 =>
          __perfTracingFilePath = _input__.readStringRequireUtf8()
        case 274 =>
          __defaultRegexEngine = Option(__defaultRegexEngine.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case tag =>
          if (_unknownFields__ == null) {
            _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
          }
          _unknownFields__.parseField(tag, _input__)
      }
    }
    io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap(
        node = __node,
        nodeContextParams = __nodeContextParams.result(),
        staticResources = __staticResources,
        dynamicResources = __dynamicResources,
        clusterManager = __clusterManager,
        hdsConfig = __hdsConfig,
        flagsPath = __flagsPath,
        statsSinks = __statsSinks.result(),
        statsConfig = __statsConfig,
        statsFlushInterval = __statsFlushInterval,
        watchdog = __watchdog,
        watchdogs = __watchdogs,
        tracing = __tracing,
        layeredRuntime = __layeredRuntime,
        admin = __admin,
        overloadManager = __overloadManager,
        enableDispatcherStats = __enableDispatcherStats,
        headerPrefix = __headerPrefix,
        statsServerVersionOverride = __statsServerVersionOverride,
        useTcpForDnsLookups = __useTcpForDnsLookups,
        dnsResolutionConfig = __dnsResolutionConfig,
        typedDnsResolverConfig = __typedDnsResolverConfig,
        bootstrapExtensions = __bootstrapExtensions.result(),
        fatalActions = __fatalActions.result(),
        configSources = __configSources.result(),
        defaultConfigSource = __defaultConfigSource,
        defaultSocketInterface = __defaultSocketInterface,
        certificateProviderInstances = __certificateProviderInstances.result(),
        inlineHeaders = __inlineHeaders.result(),
        perfTracingFilePath = __perfTracingFilePath,
        defaultRegexEngine = __defaultRegexEngine,
        statsFlush = __statsFlush,
        unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
    )
  }
  implicit def messageReads: _root_.scalapb.descriptors.Reads[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap] = _root_.scalapb.descriptors.Reads{
    case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
      _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
      io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap(
        node = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.Node]]),
        nodeContextParams = __fieldsMap.get(scalaDescriptor.findFieldByNumber(26).get).map(_.as[_root_.scala.Seq[_root_.scala.Predef.String]]).getOrElse(_root_.scala.Seq.empty),
        staticResources = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources]]),
        dynamicResources = __fieldsMap.get(scalaDescriptor.findFieldByNumber(3).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources]]),
        clusterManager = __fieldsMap.get(scalaDescriptor.findFieldByNumber(4).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager]]),
        hdsConfig = __fieldsMap.get(scalaDescriptor.findFieldByNumber(14).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource]]),
        flagsPath = __fieldsMap.get(scalaDescriptor.findFieldByNumber(5).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
        statsSinks = __fieldsMap.get(scalaDescriptor.findFieldByNumber(6).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.metrics.v3.StatsSink]]).getOrElse(_root_.scala.Seq.empty),
        statsConfig = __fieldsMap.get(scalaDescriptor.findFieldByNumber(13).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.metrics.v3.StatsConfig]]),
        statsFlushInterval = __fieldsMap.get(scalaDescriptor.findFieldByNumber(7).get).flatMap(_.as[_root_.scala.Option[com.google.protobuf.duration.Duration]]),
        watchdog = __fieldsMap.get(scalaDescriptor.findFieldByNumber(8).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdog]]),
        watchdogs = __fieldsMap.get(scalaDescriptor.findFieldByNumber(27).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs]]),
        tracing = __fieldsMap.get(scalaDescriptor.findFieldByNumber(9).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.trace.v3.Tracing]]),
        layeredRuntime = __fieldsMap.get(scalaDescriptor.findFieldByNumber(17).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime]]),
        admin = __fieldsMap.get(scalaDescriptor.findFieldByNumber(12).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Admin]]),
        overloadManager = __fieldsMap.get(scalaDescriptor.findFieldByNumber(15).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.overload.v3.OverloadManager]]),
        enableDispatcherStats = __fieldsMap.get(scalaDescriptor.findFieldByNumber(16).get).map(_.as[_root_.scala.Boolean]).getOrElse(false),
        headerPrefix = __fieldsMap.get(scalaDescriptor.findFieldByNumber(18).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
        statsServerVersionOverride = __fieldsMap.get(scalaDescriptor.findFieldByNumber(19).get).flatMap(_.as[_root_.scala.Option[com.google.protobuf.wrappers.UInt64Value]]).map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_statsServerVersionOverride.toCustom(_)),
        useTcpForDnsLookups = __fieldsMap.get(scalaDescriptor.findFieldByNumber(20).get).map(_.as[_root_.scala.Boolean]).getOrElse(false),
        dnsResolutionConfig = __fieldsMap.get(scalaDescriptor.findFieldByNumber(30).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig]]),
        typedDnsResolverConfig = __fieldsMap.get(scalaDescriptor.findFieldByNumber(31).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]]),
        bootstrapExtensions = __fieldsMap.get(scalaDescriptor.findFieldByNumber(21).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]]).getOrElse(_root_.scala.Seq.empty),
        fatalActions = __fieldsMap.get(scalaDescriptor.findFieldByNumber(28).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction]]).getOrElse(_root_.scala.Seq.empty),
        configSources = __fieldsMap.get(scalaDescriptor.findFieldByNumber(22).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.ConfigSource]]).getOrElse(_root_.scala.Seq.empty),
        defaultConfigSource = __fieldsMap.get(scalaDescriptor.findFieldByNumber(23).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource]]),
        defaultSocketInterface = __fieldsMap.get(scalaDescriptor.findFieldByNumber(24).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
        certificateProviderInstances = __fieldsMap.get(scalaDescriptor.findFieldByNumber(25).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry]]).getOrElse(_root_.scala.Seq.empty).iterator.map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap._typemapper_certificateProviderInstances.toCustom(_)).toMap,
        inlineHeaders = __fieldsMap.get(scalaDescriptor.findFieldByNumber(32).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader]]).getOrElse(_root_.scala.Seq.empty),
        perfTracingFilePath = __fieldsMap.get(scalaDescriptor.findFieldByNumber(33).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
        defaultRegexEngine = __fieldsMap.get(scalaDescriptor.findFieldByNumber(34).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]]),
        statsFlush = __fieldsMap.get(scalaDescriptor.findFieldByNumber(29).get).flatMap(_.as[_root_.scala.Option[_root_.scala.Boolean]]).map(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.StatsFlushOnAdmin(_))
            .getOrElse(io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.Empty)
      )
    case _ => throw new RuntimeException("Expected PMessage")
  }
  def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = BootstrapProto.javaDescriptor.getMessageTypes().get(0)
  def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = BootstrapProto.scalaDescriptor.messages(0)
  def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
    var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
    (__number: @_root_.scala.unchecked) match {
      case 1 => __out = io.envoyproxy.envoy.config.core.v3.Node
      case 2 => __out = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources
      case 3 => __out = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources
      case 4 => __out = io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager
      case 14 => __out = io.envoyproxy.envoy.config.core.v3.ApiConfigSource
      case 6 => __out = io.envoyproxy.envoy.config.metrics.v3.StatsSink
      case 13 => __out = io.envoyproxy.envoy.config.metrics.v3.StatsConfig
      case 7 => __out = com.google.protobuf.duration.Duration
      case 8 => __out = io.envoyproxy.envoy.config.bootstrap.v3.Watchdog
      case 27 => __out = io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs
      case 9 => __out = io.envoyproxy.envoy.config.trace.v3.Tracing
      case 17 => __out = io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime
      case 12 => __out = io.envoyproxy.envoy.config.bootstrap.v3.Admin
      case 15 => __out = io.envoyproxy.envoy.config.overload.v3.OverloadManager
      case 19 => __out = com.google.protobuf.wrappers.UInt64Value
      case 30 => __out = io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig
      case 31 => __out = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig
      case 21 => __out = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig
      case 28 => __out = io.envoyproxy.envoy.config.bootstrap.v3.FatalAction
      case 22 => __out = io.envoyproxy.envoy.config.core.v3.ConfigSource
      case 23 => __out = io.envoyproxy.envoy.config.core.v3.ConfigSource
      case 25 => __out = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry
      case 32 => __out = io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader
      case 34 => __out = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig
    }
    __out
  }
  lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] =
    Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]](
      _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources,
      _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources,
      _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry
    )
  def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
  lazy val defaultInstance = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap(
    node = _root_.scala.None,
    nodeContextParams = _root_.scala.Seq.empty,
    staticResources = _root_.scala.None,
    dynamicResources = _root_.scala.None,
    clusterManager = _root_.scala.None,
    hdsConfig = _root_.scala.None,
    flagsPath = "",
    statsSinks = _root_.scala.Seq.empty,
    statsConfig = _root_.scala.None,
    statsFlushInterval = _root_.scala.None,
    watchdog = _root_.scala.None,
    watchdogs = _root_.scala.None,
    tracing = _root_.scala.None,
    layeredRuntime = _root_.scala.None,
    admin = _root_.scala.None,
    overloadManager = _root_.scala.None,
    enableDispatcherStats = false,
    headerPrefix = "",
    statsServerVersionOverride = _root_.scala.None,
    useTcpForDnsLookups = false,
    dnsResolutionConfig = _root_.scala.None,
    typedDnsResolverConfig = _root_.scala.None,
    bootstrapExtensions = _root_.scala.Seq.empty,
    fatalActions = _root_.scala.Seq.empty,
    configSources = _root_.scala.Seq.empty,
    defaultConfigSource = _root_.scala.None,
    defaultSocketInterface = "",
    certificateProviderInstances = _root_.scala.collection.immutable.Map.empty,
    inlineHeaders = _root_.scala.Seq.empty,
    perfTracingFilePath = "",
    defaultRegexEngine = _root_.scala.None,
    statsFlush = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.Empty
  )
  sealed trait StatsFlush extends _root_.scalapb.GeneratedOneof {
    def isEmpty: _root_.scala.Boolean = false
    def isDefined: _root_.scala.Boolean = true
    def isStatsFlushOnAdmin: _root_.scala.Boolean = false
    def statsFlushOnAdmin: _root_.scala.Option[_root_.scala.Boolean] = _root_.scala.None
  }
  object StatsFlush {
    @SerialVersionUID(0L)
    case object Empty extends io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush {
      type ValueType = _root_.scala.Nothing
      override def isEmpty: _root_.scala.Boolean = true
      override def isDefined: _root_.scala.Boolean = false
      override def number: _root_.scala.Int = 0
      override def value: _root_.scala.Nothing = throw new java.util.NoSuchElementException("Empty.value")
    }
  
    @SerialVersionUID(0L)
    final case class StatsFlushOnAdmin(value: _root_.scala.Boolean) extends io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush {
      type ValueType = _root_.scala.Boolean
      override def isStatsFlushOnAdmin: _root_.scala.Boolean = true
      override def statsFlushOnAdmin: _root_.scala.Option[_root_.scala.Boolean] = Some(value)
      override def number: _root_.scala.Int = 29
    }
  }
  /** @param listeners
    *   Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are
    *   available regardless of LDS configuration.
    * @param clusters
    *   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).
    * @param secrets
    *   These static secrets can be used by :ref:`SdsSecretConfig
    *   <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
    */
  @SerialVersionUID(0L)
  final case class StaticResources(
      listeners: _root_.scala.Seq[io.envoyproxy.envoy.config.listener.v3.Listener] = _root_.scala.Seq.empty,
      clusters: _root_.scala.Seq[io.envoyproxy.envoy.config.cluster.v3.Cluster] = _root_.scala.Seq.empty,
      secrets: _root_.scala.Seq[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret] = _root_.scala.Seq.empty,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[StaticResources] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        listeners.foreach { __item =>
          val __value = __item
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        }
        clusters.foreach { __item =>
          val __value = __item
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        }
        secrets.foreach { __item =>
          val __value = __item
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        }
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        listeners.foreach { __v =>
          val __m = __v
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        clusters.foreach { __v =>
          val __m = __v
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        secrets.foreach { __v =>
          val __m = __v
          _output__.writeTag(3, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def clearListeners = copy(listeners = _root_.scala.Seq.empty)
      def addListeners(__vs: io.envoyproxy.envoy.config.listener.v3.Listener *): StaticResources = addAllListeners(__vs)
      def addAllListeners(__vs: Iterable[io.envoyproxy.envoy.config.listener.v3.Listener]): StaticResources = copy(listeners = listeners ++ __vs)
      def withListeners(__v: _root_.scala.Seq[io.envoyproxy.envoy.config.listener.v3.Listener]): StaticResources = copy(listeners = __v)
      def clearClusters = copy(clusters = _root_.scala.Seq.empty)
      def addClusters(__vs: io.envoyproxy.envoy.config.cluster.v3.Cluster *): StaticResources = addAllClusters(__vs)
      def addAllClusters(__vs: Iterable[io.envoyproxy.envoy.config.cluster.v3.Cluster]): StaticResources = copy(clusters = clusters ++ __vs)
      def withClusters(__v: _root_.scala.Seq[io.envoyproxy.envoy.config.cluster.v3.Cluster]): StaticResources = copy(clusters = __v)
      def clearSecrets = copy(secrets = _root_.scala.Seq.empty)
      def addSecrets(__vs: io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret *): StaticResources = addAllSecrets(__vs)
      def addAllSecrets(__vs: Iterable[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret]): StaticResources = copy(secrets = secrets ++ __vs)
      def withSecrets(__v: _root_.scala.Seq[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret]): StaticResources = copy(secrets = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => listeners
          case 2 => clusters
          case 3 => secrets
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => _root_.scalapb.descriptors.PRepeated(listeners.iterator.map(_.toPMessage).toVector)
          case 2 => _root_.scalapb.descriptors.PRepeated(clusters.iterator.map(_.toPMessage).toVector)
          case 3 => _root_.scalapb.descriptors.PRepeated(secrets.iterator.map(_.toPMessage).toVector)
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources.type = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources
      // @@protoc_insertion_point(GeneratedMessage[envoy.config.bootstrap.v3.Bootstrap.StaticResources])
  }
  
  object StaticResources extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources = {
      val __listeners: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.listener.v3.Listener] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.listener.v3.Listener]
      val __clusters: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.cluster.v3.Cluster] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.config.cluster.v3.Cluster]
      val __secrets: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret]
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __listeners += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.listener.v3.Listener](_input__)
          case 18 =>
            __clusters += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.cluster.v3.Cluster](_input__)
          case 26 =>
            __secrets += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret](_input__)
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources(
          listeners = __listeners.result(),
          clusters = __clusters.result(),
          secrets = __secrets.result(),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources(
          listeners = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.listener.v3.Listener]]).getOrElse(_root_.scala.Seq.empty),
          clusters = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.config.cluster.v3.Cluster]]).getOrElse(_root_.scala.Seq.empty),
          secrets = __fieldsMap.get(scalaDescriptor.findFieldByNumber(3).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret]]).getOrElse(_root_.scala.Seq.empty)
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.javaDescriptor.getNestedTypes().get(0)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.scalaDescriptor.nestedMessages(0)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = io.envoyproxy.envoy.config.listener.v3.Listener
        case 2 => __out = io.envoyproxy.envoy.config.cluster.v3.Cluster
        case 3 => __out = io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources(
      listeners = _root_.scala.Seq.empty,
      clusters = _root_.scala.Seq.empty,
      secrets = _root_.scala.Seq.empty
    )
    implicit class StaticResourcesLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources](_l) {
      def listeners: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.config.listener.v3.Listener]] = field(_.listeners)((c_, f_) => c_.copy(listeners = f_))
      def clusters: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.config.cluster.v3.Cluster]] = field(_.clusters)((c_, f_) => c_.copy(clusters = f_))
      def secrets: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret]] = field(_.secrets)((c_, f_) => c_.copy(secrets = f_))
    }
    final val LISTENERS_FIELD_NUMBER = 1
    final val CLUSTERS_FIELD_NUMBER = 2
    final val SECRETS_FIELD_NUMBER = 3
    def of(
      listeners: _root_.scala.Seq[io.envoyproxy.envoy.config.listener.v3.Listener],
      clusters: _root_.scala.Seq[io.envoyproxy.envoy.config.cluster.v3.Cluster],
      secrets: _root_.scala.Seq[io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.Secret]
    ): _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources = _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources(
      listeners,
      clusters,
      secrets
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.config.bootstrap.v3.Bootstrap.StaticResources])
  }
  
  /** [#next-free-field: 7]
    *
    * @param ldsConfig
    *   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.
    * @param ldsResourcesLocator
    *   xdstp:// resource locator for listener collection.
    *   [#not-implemented-hide:]
    * @param cdsConfig
    *   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.
    * @param cdsResourcesLocator
    *   xdstp:// resource locator for cluster collection.
    *   [#not-implemented-hide:]
    * @param adsConfig
    *   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.
    */
  @SerialVersionUID(0L)
  final case class DynamicResources(
      ldsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource] = _root_.scala.None,
      ldsResourcesLocator: _root_.scala.Predef.String = "",
      cdsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource] = _root_.scala.None,
      cdsResourcesLocator: _root_.scala.Predef.String = "",
      adsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource] = _root_.scala.None,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[DynamicResources] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        if (ldsConfig.isDefined) {
          val __value = ldsConfig.get
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = ldsResourcesLocator
          if (!__value.isEmpty) {
            __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(5, __value)
          }
        };
        if (cdsConfig.isDefined) {
          val __value = cdsConfig.get
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = cdsResourcesLocator
          if (!__value.isEmpty) {
            __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(6, __value)
          }
        };
        if (adsConfig.isDefined) {
          val __value = adsConfig.get
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        ldsConfig.foreach { __v =>
          val __m = __v
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        cdsConfig.foreach { __v =>
          val __m = __v
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        adsConfig.foreach { __v =>
          val __m = __v
          _output__.writeTag(3, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        {
          val __v = ldsResourcesLocator
          if (!__v.isEmpty) {
            _output__.writeString(5, __v)
          }
        };
        {
          val __v = cdsResourcesLocator
          if (!__v.isEmpty) {
            _output__.writeString(6, __v)
          }
        };
        unknownFields.writeTo(_output__)
      }
      def getLdsConfig: io.envoyproxy.envoy.config.core.v3.ConfigSource = ldsConfig.getOrElse(io.envoyproxy.envoy.config.core.v3.ConfigSource.defaultInstance)
      def clearLdsConfig: DynamicResources = copy(ldsConfig = _root_.scala.None)
      def withLdsConfig(__v: io.envoyproxy.envoy.config.core.v3.ConfigSource): DynamicResources = copy(ldsConfig = Option(__v))
      def withLdsResourcesLocator(__v: _root_.scala.Predef.String): DynamicResources = copy(ldsResourcesLocator = __v)
      def getCdsConfig: io.envoyproxy.envoy.config.core.v3.ConfigSource = cdsConfig.getOrElse(io.envoyproxy.envoy.config.core.v3.ConfigSource.defaultInstance)
      def clearCdsConfig: DynamicResources = copy(cdsConfig = _root_.scala.None)
      def withCdsConfig(__v: io.envoyproxy.envoy.config.core.v3.ConfigSource): DynamicResources = copy(cdsConfig = Option(__v))
      def withCdsResourcesLocator(__v: _root_.scala.Predef.String): DynamicResources = copy(cdsResourcesLocator = __v)
      def getAdsConfig: io.envoyproxy.envoy.config.core.v3.ApiConfigSource = adsConfig.getOrElse(io.envoyproxy.envoy.config.core.v3.ApiConfigSource.defaultInstance)
      def clearAdsConfig: DynamicResources = copy(adsConfig = _root_.scala.None)
      def withAdsConfig(__v: io.envoyproxy.envoy.config.core.v3.ApiConfigSource): DynamicResources = copy(adsConfig = Option(__v))
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => ldsConfig.orNull
          case 5 => {
            val __t = ldsResourcesLocator
            if (__t != "") __t else null
          }
          case 2 => cdsConfig.orNull
          case 6 => {
            val __t = cdsResourcesLocator
            if (__t != "") __t else null
          }
          case 3 => adsConfig.orNull
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => ldsConfig.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
          case 5 => _root_.scalapb.descriptors.PString(ldsResourcesLocator)
          case 2 => cdsConfig.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
          case 6 => _root_.scalapb.descriptors.PString(cdsResourcesLocator)
          case 3 => adsConfig.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources.type = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources
      // @@protoc_insertion_point(GeneratedMessage[envoy.config.bootstrap.v3.Bootstrap.DynamicResources])
  }
  
  object DynamicResources extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources = {
      var __ldsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource] = _root_.scala.None
      var __ldsResourcesLocator: _root_.scala.Predef.String = ""
      var __cdsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource] = _root_.scala.None
      var __cdsResourcesLocator: _root_.scala.Predef.String = ""
      var __adsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __ldsConfig = Option(__ldsConfig.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.ConfigSource](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
          case 42 =>
            __ldsResourcesLocator = _input__.readStringRequireUtf8()
          case 18 =>
            __cdsConfig = Option(__cdsConfig.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.ConfigSource](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
          case 50 =>
            __cdsResourcesLocator = _input__.readStringRequireUtf8()
          case 26 =>
            __adsConfig = Option(__adsConfig.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.ApiConfigSource](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources(
          ldsConfig = __ldsConfig,
          ldsResourcesLocator = __ldsResourcesLocator,
          cdsConfig = __cdsConfig,
          cdsResourcesLocator = __cdsResourcesLocator,
          adsConfig = __adsConfig,
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources(
          ldsConfig = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource]]),
          ldsResourcesLocator = __fieldsMap.get(scalaDescriptor.findFieldByNumber(5).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
          cdsConfig = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource]]),
          cdsResourcesLocator = __fieldsMap.get(scalaDescriptor.findFieldByNumber(6).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
          adsConfig = __fieldsMap.get(scalaDescriptor.findFieldByNumber(3).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource]])
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.javaDescriptor.getNestedTypes().get(1)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.scalaDescriptor.nestedMessages(1)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = io.envoyproxy.envoy.config.core.v3.ConfigSource
        case 2 => __out = io.envoyproxy.envoy.config.core.v3.ConfigSource
        case 3 => __out = io.envoyproxy.envoy.config.core.v3.ApiConfigSource
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources(
      ldsConfig = _root_.scala.None,
      ldsResourcesLocator = "",
      cdsConfig = _root_.scala.None,
      cdsResourcesLocator = "",
      adsConfig = _root_.scala.None
    )
    implicit class DynamicResourcesLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources](_l) {
      def ldsConfig: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.ConfigSource] = field(_.getLdsConfig)((c_, f_) => c_.copy(ldsConfig = Option(f_)))
      def optionalLdsConfig: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource]] = field(_.ldsConfig)((c_, f_) => c_.copy(ldsConfig = f_))
      def ldsResourcesLocator: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.ldsResourcesLocator)((c_, f_) => c_.copy(ldsResourcesLocator = f_))
      def cdsConfig: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.ConfigSource] = field(_.getCdsConfig)((c_, f_) => c_.copy(cdsConfig = Option(f_)))
      def optionalCdsConfig: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource]] = field(_.cdsConfig)((c_, f_) => c_.copy(cdsConfig = f_))
      def cdsResourcesLocator: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.cdsResourcesLocator)((c_, f_) => c_.copy(cdsResourcesLocator = f_))
      def adsConfig: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.ApiConfigSource] = field(_.getAdsConfig)((c_, f_) => c_.copy(adsConfig = Option(f_)))
      def optionalAdsConfig: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource]] = field(_.adsConfig)((c_, f_) => c_.copy(adsConfig = f_))
    }
    final val LDS_CONFIG_FIELD_NUMBER = 1
    final val LDS_RESOURCES_LOCATOR_FIELD_NUMBER = 5
    final val CDS_CONFIG_FIELD_NUMBER = 2
    final val CDS_RESOURCES_LOCATOR_FIELD_NUMBER = 6
    final val ADS_CONFIG_FIELD_NUMBER = 3
    def of(
      ldsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource],
      ldsResourcesLocator: _root_.scala.Predef.String,
      cdsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource],
      cdsResourcesLocator: _root_.scala.Predef.String,
      adsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource]
    ): _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources = _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources(
      ldsConfig,
      ldsResourcesLocator,
      cdsConfig,
      cdsResourcesLocator,
      adsConfig
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.config.bootstrap.v3.Bootstrap.DynamicResources])
  }
  
  @SerialVersionUID(0L)
  final case class CertificateProviderInstancesEntry(
      key: _root_.scala.Predef.String = "",
      value: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.None,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[CertificateProviderInstancesEntry] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = key
          if (!__value.isEmpty) {
            __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(1, __value)
          }
        };
        if (value.isDefined) {
          val __value = value.get
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        {
          val __v = key
          if (!__v.isEmpty) {
            _output__.writeString(1, __v)
          }
        };
        value.foreach { __v =>
          val __m = __v
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withKey(__v: _root_.scala.Predef.String): CertificateProviderInstancesEntry = copy(key = __v)
      def getValue: io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig = value.getOrElse(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.defaultInstance)
      def clearValue: CertificateProviderInstancesEntry = copy(value = _root_.scala.None)
      def withValue(__v: io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig): CertificateProviderInstancesEntry = copy(value = Option(__v))
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => {
            val __t = key
            if (__t != "") __t else null
          }
          case 2 => value.orNull
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => _root_.scalapb.descriptors.PString(key)
          case 2 => value.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry.type = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry
      // @@protoc_insertion_point(GeneratedMessage[envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry])
  }
  
  object CertificateProviderInstancesEntry extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry = {
      var __key: _root_.scala.Predef.String = ""
      var __value: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __key = _input__.readStringRequireUtf8()
          case 18 =>
            __value = Option(__value.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry(
          key = __key,
          value = __value,
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry(
          key = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
          value = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]])
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.javaDescriptor.getNestedTypes().get(2)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.scalaDescriptor.nestedMessages(2)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 2 => __out = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry(
      key = "",
      value = _root_.scala.None
    )
    implicit class CertificateProviderInstancesEntryLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry](_l) {
      def key: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.key)((c_, f_) => c_.copy(key = f_))
      def value: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = field(_.getValue)((c_, f_) => c_.copy(value = Option(f_)))
      def optionalValue: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]] = field(_.value)((c_, f_) => c_.copy(value = f_))
    }
    final val KEY_FIELD_NUMBER = 1
    final val VALUE_FIELD_NUMBER = 2
    @transient
    implicit val keyValueMapper: _root_.scalapb.TypeMapper[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig)] =
      _root_.scalapb.TypeMapper[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig)](__m => (__m.key, __m.getValue))(__p => io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry(__p._1, Some(__p._2)))
    def of(
      key: _root_.scala.Predef.String,
      value: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]
    ): _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry = _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry(
      key,
      value
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry])
  }
  
  implicit class BootstrapLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap](_l) {
    def node: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.Node] = field(_.getNode)((c_, f_) => c_.copy(node = Option(f_)))
    def optionalNode: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.Node]] = field(_.node)((c_, f_) => c_.copy(node = f_))
    def nodeContextParams: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[_root_.scala.Predef.String]] = field(_.nodeContextParams)((c_, f_) => c_.copy(nodeContextParams = f_))
    def staticResources: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources] = field(_.getStaticResources)((c_, f_) => c_.copy(staticResources = Option(f_)))
    def optionalStaticResources: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources]] = field(_.staticResources)((c_, f_) => c_.copy(staticResources = f_))
    def dynamicResources: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources] = field(_.getDynamicResources)((c_, f_) => c_.copy(dynamicResources = Option(f_)))
    def optionalDynamicResources: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources]] = field(_.dynamicResources)((c_, f_) => c_.copy(dynamicResources = f_))
    def clusterManager: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager] = field(_.getClusterManager)((c_, f_) => c_.copy(clusterManager = Option(f_)))
    def optionalClusterManager: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager]] = field(_.clusterManager)((c_, f_) => c_.copy(clusterManager = f_))
    def hdsConfig: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.ApiConfigSource] = field(_.getHdsConfig)((c_, f_) => c_.copy(hdsConfig = Option(f_)))
    def optionalHdsConfig: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource]] = field(_.hdsConfig)((c_, f_) => c_.copy(hdsConfig = f_))
    def flagsPath: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.flagsPath)((c_, f_) => c_.copy(flagsPath = f_))
    def statsSinks: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.config.metrics.v3.StatsSink]] = field(_.statsSinks)((c_, f_) => c_.copy(statsSinks = f_))
    def statsConfig: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.metrics.v3.StatsConfig] = field(_.getStatsConfig)((c_, f_) => c_.copy(statsConfig = Option(f_)))
    def optionalStatsConfig: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.metrics.v3.StatsConfig]] = field(_.statsConfig)((c_, f_) => c_.copy(statsConfig = f_))
    def statsFlushInterval: _root_.scalapb.lenses.Lens[UpperPB, com.google.protobuf.duration.Duration] = field(_.getStatsFlushInterval)((c_, f_) => c_.copy(statsFlushInterval = Option(f_)))
    def optionalStatsFlushInterval: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[com.google.protobuf.duration.Duration]] = field(_.statsFlushInterval)((c_, f_) => c_.copy(statsFlushInterval = f_))
    def statsFlushOnAdmin: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Boolean] = field(_.getStatsFlushOnAdmin)((c_, f_) => c_.copy(statsFlush = io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush.StatsFlushOnAdmin(f_)))
    def watchdog: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Watchdog] = field(_.getWatchdog)((c_, f_) => c_.copy(watchdog = Option(f_)))
    def optionalWatchdog: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdog]] = field(_.watchdog)((c_, f_) => c_.copy(watchdog = f_))
    def watchdogs: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs] = field(_.getWatchdogs)((c_, f_) => c_.copy(watchdogs = Option(f_)))
    def optionalWatchdogs: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs]] = field(_.watchdogs)((c_, f_) => c_.copy(watchdogs = f_))
    def tracing: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.trace.v3.Tracing] = field(_.getTracing)((c_, f_) => c_.copy(tracing = Option(f_)))
    def optionalTracing: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.trace.v3.Tracing]] = field(_.tracing)((c_, f_) => c_.copy(tracing = f_))
    def layeredRuntime: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime] = field(_.getLayeredRuntime)((c_, f_) => c_.copy(layeredRuntime = Option(f_)))
    def optionalLayeredRuntime: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime]] = field(_.layeredRuntime)((c_, f_) => c_.copy(layeredRuntime = f_))
    def admin: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Admin] = field(_.getAdmin)((c_, f_) => c_.copy(admin = Option(f_)))
    def optionalAdmin: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Admin]] = field(_.admin)((c_, f_) => c_.copy(admin = f_))
    def overloadManager: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.overload.v3.OverloadManager] = field(_.getOverloadManager)((c_, f_) => c_.copy(overloadManager = Option(f_)))
    def optionalOverloadManager: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.overload.v3.OverloadManager]] = field(_.overloadManager)((c_, f_) => c_.copy(overloadManager = f_))
    def enableDispatcherStats: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Boolean] = field(_.enableDispatcherStats)((c_, f_) => c_.copy(enableDispatcherStats = f_))
    def headerPrefix: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.headerPrefix)((c_, f_) => c_.copy(headerPrefix = f_))
    def statsServerVersionOverride: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Long] = field(_.getStatsServerVersionOverride)((c_, f_) => c_.copy(statsServerVersionOverride = Option(f_)))
    def optionalStatsServerVersionOverride: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[_root_.scala.Long]] = field(_.statsServerVersionOverride)((c_, f_) => c_.copy(statsServerVersionOverride = f_))
    def useTcpForDnsLookups: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Boolean] = field(_.useTcpForDnsLookups)((c_, f_) => c_.copy(useTcpForDnsLookups = f_))
    def dnsResolutionConfig: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig] = field(_.getDnsResolutionConfig)((c_, f_) => c_.copy(dnsResolutionConfig = Option(f_)))
    def optionalDnsResolutionConfig: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig]] = field(_.dnsResolutionConfig)((c_, f_) => c_.copy(dnsResolutionConfig = f_))
    def typedDnsResolverConfig: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = field(_.getTypedDnsResolverConfig)((c_, f_) => c_.copy(typedDnsResolverConfig = Option(f_)))
    def optionalTypedDnsResolverConfig: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]] = field(_.typedDnsResolverConfig)((c_, f_) => c_.copy(typedDnsResolverConfig = f_))
    def bootstrapExtensions: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]] = field(_.bootstrapExtensions)((c_, f_) => c_.copy(bootstrapExtensions = f_))
    def fatalActions: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction]] = field(_.fatalActions)((c_, f_) => c_.copy(fatalActions = f_))
    def configSources: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.ConfigSource]] = field(_.configSources)((c_, f_) => c_.copy(configSources = f_))
    def defaultConfigSource: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.ConfigSource] = field(_.getDefaultConfigSource)((c_, f_) => c_.copy(defaultConfigSource = Option(f_)))
    def optionalDefaultConfigSource: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource]] = field(_.defaultConfigSource)((c_, f_) => c_.copy(defaultConfigSource = f_))
    def defaultSocketInterface: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.defaultSocketInterface)((c_, f_) => c_.copy(defaultSocketInterface = f_))
    def certificateProviderInstances: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]] = field(_.certificateProviderInstances)((c_, f_) => c_.copy(certificateProviderInstances = f_))
    def inlineHeaders: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader]] = field(_.inlineHeaders)((c_, f_) => c_.copy(inlineHeaders = f_))
    def perfTracingFilePath: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.perfTracingFilePath)((c_, f_) => c_.copy(perfTracingFilePath = f_))
    def defaultRegexEngine: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig] = field(_.getDefaultRegexEngine)((c_, f_) => c_.copy(defaultRegexEngine = Option(f_)))
    def optionalDefaultRegexEngine: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]] = field(_.defaultRegexEngine)((c_, f_) => c_.copy(defaultRegexEngine = f_))
    def statsFlush: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush] = field(_.statsFlush)((c_, f_) => c_.copy(statsFlush = f_))
  }
  final val NODE_FIELD_NUMBER = 1
  final val NODE_CONTEXT_PARAMS_FIELD_NUMBER = 26
  final val STATIC_RESOURCES_FIELD_NUMBER = 2
  final val DYNAMIC_RESOURCES_FIELD_NUMBER = 3
  final val CLUSTER_MANAGER_FIELD_NUMBER = 4
  final val HDS_CONFIG_FIELD_NUMBER = 14
  final val FLAGS_PATH_FIELD_NUMBER = 5
  final val STATS_SINKS_FIELD_NUMBER = 6
  final val STATS_CONFIG_FIELD_NUMBER = 13
  final val STATS_FLUSH_INTERVAL_FIELD_NUMBER = 7
  final val STATS_FLUSH_ON_ADMIN_FIELD_NUMBER = 29
  final val WATCHDOG_FIELD_NUMBER = 8
  final val WATCHDOGS_FIELD_NUMBER = 27
  final val TRACING_FIELD_NUMBER = 9
  final val LAYERED_RUNTIME_FIELD_NUMBER = 17
  final val ADMIN_FIELD_NUMBER = 12
  final val OVERLOAD_MANAGER_FIELD_NUMBER = 15
  final val ENABLE_DISPATCHER_STATS_FIELD_NUMBER = 16
  final val HEADER_PREFIX_FIELD_NUMBER = 18
  final val STATS_SERVER_VERSION_OVERRIDE_FIELD_NUMBER = 19
  final val USE_TCP_FOR_DNS_LOOKUPS_FIELD_NUMBER = 20
  final val DNS_RESOLUTION_CONFIG_FIELD_NUMBER = 30
  final val TYPED_DNS_RESOLVER_CONFIG_FIELD_NUMBER = 31
  final val BOOTSTRAP_EXTENSIONS_FIELD_NUMBER = 21
  final val FATAL_ACTIONS_FIELD_NUMBER = 28
  final val CONFIG_SOURCES_FIELD_NUMBER = 22
  final val DEFAULT_CONFIG_SOURCE_FIELD_NUMBER = 23
  final val DEFAULT_SOCKET_INTERFACE_FIELD_NUMBER = 24
  final val CERTIFICATE_PROVIDER_INSTANCES_FIELD_NUMBER = 25
  final val INLINE_HEADERS_FIELD_NUMBER = 32
  final val PERF_TRACING_FILE_PATH_FIELD_NUMBER = 33
  final val DEFAULT_REGEX_ENGINE_FIELD_NUMBER = 34
  @transient
  private[v3] val _typemapper_statsServerVersionOverride: _root_.scalapb.TypeMapper[com.google.protobuf.wrappers.UInt64Value, _root_.scala.Long] = implicitly[_root_.scalapb.TypeMapper[com.google.protobuf.wrappers.UInt64Value, _root_.scala.Long]]
  @transient
  private[v3] val _typemapper_certificateProviderInstances: _root_.scalapb.TypeMapper[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig)] = implicitly[_root_.scalapb.TypeMapper[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig)]]
  def of(
    node: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.Node],
    nodeContextParams: _root_.scala.Seq[_root_.scala.Predef.String],
    staticResources: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StaticResources],
    dynamicResources: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.DynamicResources],
    clusterManager: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.ClusterManager],
    hdsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ApiConfigSource],
    flagsPath: _root_.scala.Predef.String,
    statsSinks: _root_.scala.Seq[io.envoyproxy.envoy.config.metrics.v3.StatsSink],
    statsConfig: _root_.scala.Option[io.envoyproxy.envoy.config.metrics.v3.StatsConfig],
    statsFlushInterval: _root_.scala.Option[com.google.protobuf.duration.Duration],
    statsFlush: io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap.StatsFlush,
    watchdog: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdog],
    watchdogs: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Watchdogs],
    tracing: _root_.scala.Option[io.envoyproxy.envoy.config.trace.v3.Tracing],
    layeredRuntime: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.LayeredRuntime],
    admin: _root_.scala.Option[io.envoyproxy.envoy.config.bootstrap.v3.Admin],
    overloadManager: _root_.scala.Option[io.envoyproxy.envoy.config.overload.v3.OverloadManager],
    enableDispatcherStats: _root_.scala.Boolean,
    headerPrefix: _root_.scala.Predef.String,
    statsServerVersionOverride: _root_.scala.Option[_root_.scala.Long],
    useTcpForDnsLookups: _root_.scala.Boolean,
    dnsResolutionConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig],
    typedDnsResolverConfig: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig],
    bootstrapExtensions: _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig],
    fatalActions: _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.FatalAction],
    configSources: _root_.scala.Seq[io.envoyproxy.envoy.config.core.v3.ConfigSource],
    defaultConfigSource: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.ConfigSource],
    defaultSocketInterface: _root_.scala.Predef.String,
    certificateProviderInstances: _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig],
    inlineHeaders: _root_.scala.Seq[io.envoyproxy.envoy.config.bootstrap.v3.CustomInlineHeader],
    perfTracingFilePath: _root_.scala.Predef.String,
    defaultRegexEngine: _root_.scala.Option[io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig]
  ): _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap = _root_.io.envoyproxy.envoy.config.bootstrap.v3.Bootstrap(
    node,
    nodeContextParams,
    staticResources,
    dynamicResources,
    clusterManager,
    hdsConfig,
    flagsPath,
    statsSinks,
    statsConfig,
    statsFlushInterval,
    statsFlush,
    watchdog,
    watchdogs,
    tracing,
    layeredRuntime,
    admin,
    overloadManager,
    enableDispatcherStats,
    headerPrefix,
    statsServerVersionOverride,
    useTcpForDnsLookups,
    dnsResolutionConfig,
    typedDnsResolverConfig,
    bootstrapExtensions,
    fatalActions,
    configSources,
    defaultConfigSource,
    defaultSocketInterface,
    certificateProviderInstances,
    inlineHeaders,
    perfTracingFilePath,
    defaultRegexEngine
  )
  // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.config.bootstrap.v3.Bootstrap])
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy