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

io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.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.api.v2

/** Each route from RDS will map to a single cluster or traffic split across
  * clusters using weights expressed in the RDS WeightedCluster.
  *
  * With EDS, each cluster is treated independently from a LB perspective, with
  * LB taking place between the Localities within a cluster and at a finer
  * granularity between the hosts within a locality. The percentage of traffic
  * for each endpoint is determined by both its load_balancing_weight, and the
  * load_balancing_weight of its locality. First, a locality will be selected,
  * then an endpoint within that locality will be chose based on its weight.
  * [#next-free-field: 6]
  *
  * @param clusterName
  *   Name of the cluster. This will be the :ref:`service_name
  *   <envoy_api_field_Cluster.EdsClusterConfig.service_name>` value if specified
  *   in the cluster :ref:`EdsClusterConfig
  *   <envoy_api_msg_Cluster.EdsClusterConfig>`.
  * @param endpoints
  *   List of endpoints to load balance to.
  * @param namedEndpoints
  *   Map of named endpoints that can be referenced in LocalityLbEndpoints.
  *   [#not-implemented-hide:]
  * @param policy
  *   Load balancing policy settings.
  */
@SerialVersionUID(0L)
final case class ClusterLoadAssignment(
    clusterName: _root_.scala.Predef.String = "",
    endpoints: _root_.scala.Seq[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints] = _root_.scala.Seq.empty,
    namedEndpoints: _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint] = _root_.scala.collection.immutable.Map.empty,
    policy: _root_.scala.Option[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy] = _root_.scala.None,
    unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
    ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[ClusterLoadAssignment] {
    @transient
    private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
    private[this] def __computeSerializedSize(): _root_.scala.Int = {
      var __size = 0
      
      {
        val __value = clusterName
        if (!__value.isEmpty) {
          __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(1, __value)
        }
      };
      endpoints.foreach { __item =>
        val __value = __item
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      namedEndpoints.foreach { __item =>
        val __value = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment._typemapper_namedEndpoints.toBase(__item)
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      }
      if (policy.isDefined) {
        val __value = policy.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 = clusterName
        if (!__v.isEmpty) {
          _output__.writeString(1, __v)
        }
      };
      endpoints.foreach { __v =>
        val __m = __v
        _output__.writeTag(2, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      policy.foreach { __v =>
        val __m = __v
        _output__.writeTag(4, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      namedEndpoints.foreach { __v =>
        val __m = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment._typemapper_namedEndpoints.toBase(__v)
        _output__.writeTag(5, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      unknownFields.writeTo(_output__)
    }
    def withClusterName(__v: _root_.scala.Predef.String): ClusterLoadAssignment = copy(clusterName = __v)
    def clearEndpoints = copy(endpoints = _root_.scala.Seq.empty)
    def addEndpoints(__vs: io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints *): ClusterLoadAssignment = addAllEndpoints(__vs)
    def addAllEndpoints(__vs: Iterable[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints]): ClusterLoadAssignment = copy(endpoints = endpoints ++ __vs)
    def withEndpoints(__v: _root_.scala.Seq[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints]): ClusterLoadAssignment = copy(endpoints = __v)
    def clearNamedEndpoints = copy(namedEndpoints = _root_.scala.collection.immutable.Map.empty)
    def addNamedEndpoints(__vs: (_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint) *): ClusterLoadAssignment = addAllNamedEndpoints(__vs)
    def addAllNamedEndpoints(__vs: Iterable[(_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint)]): ClusterLoadAssignment = copy(namedEndpoints = namedEndpoints ++ __vs)
    def withNamedEndpoints(__v: _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint]): ClusterLoadAssignment = copy(namedEndpoints = __v)
    def getPolicy: io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy = policy.getOrElse(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.defaultInstance)
    def clearPolicy: ClusterLoadAssignment = copy(policy = _root_.scala.None)
    def withPolicy(__v: io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy): ClusterLoadAssignment = copy(policy = 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 = clusterName
          if (__t != "") __t else null
        }
        case 2 => endpoints
        case 5 => namedEndpoints.iterator.map(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment._typemapper_namedEndpoints.toBase(_)).toSeq
        case 4 => policy.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(clusterName)
        case 2 => _root_.scalapb.descriptors.PRepeated(endpoints.iterator.map(_.toPMessage).toVector)
        case 5 => _root_.scalapb.descriptors.PRepeated(namedEndpoints.iterator.map(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment._typemapper_namedEndpoints.toBase(_).toPMessage).toVector)
        case 4 => policy.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
      }
    }
    def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
    def companion: io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.type = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment
    // @@protoc_insertion_point(GeneratedMessage[envoy.api.v2.ClusterLoadAssignment])
}

object ClusterLoadAssignment extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment] {
  implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment] = this
  def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.api.v2.ClusterLoadAssignment = {
    var __clusterName: _root_.scala.Predef.String = ""
    val __endpoints: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints]
    val __namedEndpoints: _root_.scala.collection.mutable.Builder[(_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint), _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint]] = _root_.scala.collection.immutable.Map.newBuilder[_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint]
    var __policy: _root_.scala.Option[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy] = _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 =>
          __clusterName = _input__.readStringRequireUtf8()
        case 18 =>
          __endpoints += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints](_input__)
        case 42 =>
          __namedEndpoints += io.envoyproxy.envoy.api.v2.ClusterLoadAssignment._typemapper_namedEndpoints.toCustom(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry](_input__))
        case 34 =>
          __policy = Option(__policy.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case tag =>
          if (_unknownFields__ == null) {
            _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
          }
          _unknownFields__.parseField(tag, _input__)
      }
    }
    io.envoyproxy.envoy.api.v2.ClusterLoadAssignment(
        clusterName = __clusterName,
        endpoints = __endpoints.result(),
        namedEndpoints = __namedEndpoints.result(),
        policy = __policy,
        unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
    )
  }
  implicit def messageReads: _root_.scalapb.descriptors.Reads[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment] = _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.api.v2.ClusterLoadAssignment(
        clusterName = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
        endpoints = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints]]).getOrElse(_root_.scala.Seq.empty),
        namedEndpoints = __fieldsMap.get(scalaDescriptor.findFieldByNumber(5).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry]]).getOrElse(_root_.scala.Seq.empty).iterator.map(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment._typemapper_namedEndpoints.toCustom(_)).toMap,
        policy = __fieldsMap.get(scalaDescriptor.findFieldByNumber(4).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy]])
      )
    case _ => throw new RuntimeException("Expected PMessage")
  }
  def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = EndpointProto.javaDescriptor.getMessageTypes().get(0)
  def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = EndpointProto.scalaDescriptor.messages(0)
  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.api.v2.endpoint.LocalityLbEndpoints
      case 5 => __out = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry
      case 4 => __out = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy
    }
    __out
  }
  lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] =
    Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]](
      _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy,
      _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry
    )
  def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
  lazy val defaultInstance = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment(
    clusterName = "",
    endpoints = _root_.scala.Seq.empty,
    namedEndpoints = _root_.scala.collection.immutable.Map.empty,
    policy = _root_.scala.None
  )
  /** Load balancing policy settings.
    * [#next-free-field: 6]
    *
    * @param dropOverloads
    *   Action to trim the overall incoming traffic to protect the upstream
    *   hosts. This action allows protection in case the hosts are unable to
    *   recover from an outage, or unable to autoscale or unable to handle
    *   incoming traffic volume for any reason.
    *  
    *   At the client each category is applied one after the other to generate
    *   the 'actual' drop percentage on all outgoing traffic. For example:
    *  
    *   .. code-block:: json
    *  
    *    { "drop_overloads": [
    *        { "category": "throttle", "drop_percentage": 60 }
    *        { "category": "lb", "drop_percentage": 50 }
    *    ]}
    *  
    *   The actual drop percentages applied to the traffic at the clients will be
    *      "throttle"_drop = 60%
    *      "lb"_drop = 20%  // 50% of the remaining 'actual' load, which is 40%.
    *      actual_outgoing_load = 20% // remaining after applying all categories.
    *   [#not-implemented-hide:]
    * @param overprovisioningFactor
    *   Priority levels and localities are considered overprovisioned with this
    *   factor (in percentage). This means that we don't consider a priority
    *   level or locality unhealthy until the percentage of healthy hosts
    *   multiplied by the overprovisioning factor drops below 100.
    *   With the default value 140(1.4), Envoy doesn't consider a priority level
    *   or a locality unhealthy until their percentage of healthy hosts drops
    *   below 72%. For example:
    *  
    *   .. code-block:: json
    *  
    *    { "overprovisioning_factor": 100 }
    *  
    *   Read more at :ref:`priority levels <arch_overview_load_balancing_priority_levels>` and
    *   :ref:`localities <arch_overview_load_balancing_locality_weighted_lb>`.
    * @param endpointStaleAfter
    *   The max time until which the endpoints from this assignment can be used.
    *   If no new assignments are received before this time expires the endpoints
    *   are considered stale and should be marked unhealthy.
    *   Defaults to 0 which means endpoints never go stale.
    * @param disableOverprovisioning
    *   The flag to disable overprovisioning. If it is set to true,
    *   :ref:`overprovisioning factor
    *   <arch_overview_load_balancing_overprovisioning_factor>` will be ignored
    *   and Envoy will not perform graceful failover between priority levels or
    *   localities as endpoints become unhealthy. Otherwise Envoy will perform
    *   graceful failover as :ref:`overprovisioning factor
    *   <arch_overview_load_balancing_overprovisioning_factor>` suggests.
    *   [#not-implemented-hide:]
    */
  @SerialVersionUID(0L)
  final case class Policy(
      dropOverloads: _root_.scala.Seq[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload] = _root_.scala.Seq.empty,
      overprovisioningFactor: _root_.scala.Option[_root_.scala.Int] = _root_.scala.None,
      endpointStaleAfter: _root_.scala.Option[com.google.protobuf.duration.Duration] = _root_.scala.None,
      @scala.deprecated(message="Marked as deprecated in proto file", "") disableOverprovisioning: _root_.scala.Boolean = false,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Policy] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        dropOverloads.foreach { __item =>
          val __value = __item
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        }
        if (overprovisioningFactor.isDefined) {
          val __value = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toBase(overprovisioningFactor.get)
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        if (endpointStaleAfter.isDefined) {
          val __value = endpointStaleAfter.get
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = disableOverprovisioning
          if (__value != false) {
            __size += _root_.com.google.protobuf.CodedOutputStream.computeBoolSize(5, __value)
          }
        };
        __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 = {
        dropOverloads.foreach { __v =>
          val __m = __v
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        overprovisioningFactor.foreach { __v =>
          val __m = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toBase(__v)
          _output__.writeTag(3, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        endpointStaleAfter.foreach { __v =>
          val __m = __v
          _output__.writeTag(4, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        {
          val __v = disableOverprovisioning
          if (__v != false) {
            _output__.writeBool(5, __v)
          }
        };
        unknownFields.writeTo(_output__)
      }
      def clearDropOverloads = copy(dropOverloads = _root_.scala.Seq.empty)
      def addDropOverloads(__vs: io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload *): Policy = addAllDropOverloads(__vs)
      def addAllDropOverloads(__vs: Iterable[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload]): Policy = copy(dropOverloads = dropOverloads ++ __vs)
      def withDropOverloads(__v: _root_.scala.Seq[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload]): Policy = copy(dropOverloads = __v)
      def getOverprovisioningFactor: _root_.scala.Int = overprovisioningFactor.getOrElse(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toCustom(com.google.protobuf.wrappers.UInt32Value.defaultInstance))
      def clearOverprovisioningFactor: Policy = copy(overprovisioningFactor = _root_.scala.None)
      def withOverprovisioningFactor(__v: _root_.scala.Int): Policy = copy(overprovisioningFactor = Option(__v))
      def getEndpointStaleAfter: com.google.protobuf.duration.Duration = endpointStaleAfter.getOrElse(com.google.protobuf.duration.Duration.defaultInstance)
      def clearEndpointStaleAfter: Policy = copy(endpointStaleAfter = _root_.scala.None)
      def withEndpointStaleAfter(__v: com.google.protobuf.duration.Duration): Policy = copy(endpointStaleAfter = Option(__v))
      def withDisableOverprovisioning(__v: _root_.scala.Boolean): Policy = copy(disableOverprovisioning = __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 2 => dropOverloads
          case 3 => overprovisioningFactor.map(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toBase(_)).orNull
          case 4 => endpointStaleAfter.orNull
          case 5 => {
            val __t = disableOverprovisioning
            if (__t != false) __t else null
          }
        }
      }
      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 2 => _root_.scalapb.descriptors.PRepeated(dropOverloads.iterator.map(_.toPMessage).toVector)
          case 3 => overprovisioningFactor.map(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toBase(_).toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
          case 4 => endpointStaleAfter.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
          case 5 => _root_.scalapb.descriptors.PBoolean(disableOverprovisioning)
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.type = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy
      // @@protoc_insertion_point(GeneratedMessage[envoy.api.v2.ClusterLoadAssignment.Policy])
  }
  
  object Policy extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy = {
      val __dropOverloads: _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload] = new _root_.scala.collection.immutable.VectorBuilder[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload]
      var __overprovisioningFactor: _root_.scala.Option[_root_.scala.Int] = _root_.scala.None
      var __endpointStaleAfter: _root_.scala.Option[com.google.protobuf.duration.Duration] = _root_.scala.None
      var __disableOverprovisioning: _root_.scala.Boolean = false
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 18 =>
            __dropOverloads += _root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload](_input__)
          case 26 =>
            __overprovisioningFactor = Option(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toCustom(__overprovisioningFactor.map(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toBase(_)).fold(_root_.scalapb.LiteParser.readMessage[com.google.protobuf.wrappers.UInt32Value](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _))))
          case 34 =>
            __endpointStaleAfter = Option(__endpointStaleAfter.fold(_root_.scalapb.LiteParser.readMessage[com.google.protobuf.duration.Duration](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
          case 40 =>
            __disableOverprovisioning = _input__.readBool()
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy(
          dropOverloads = __dropOverloads.result(),
          overprovisioningFactor = __overprovisioningFactor,
          endpointStaleAfter = __endpointStaleAfter,
          disableOverprovisioning = __disableOverprovisioning,
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy] = _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.api.v2.ClusterLoadAssignment.Policy(
          dropOverloads = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).map(_.as[_root_.scala.Seq[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload]]).getOrElse(_root_.scala.Seq.empty),
          overprovisioningFactor = __fieldsMap.get(scalaDescriptor.findFieldByNumber(3).get).flatMap(_.as[_root_.scala.Option[com.google.protobuf.wrappers.UInt32Value]]).map(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy._typemapper_overprovisioningFactor.toCustom(_)),
          endpointStaleAfter = __fieldsMap.get(scalaDescriptor.findFieldByNumber(4).get).flatMap(_.as[_root_.scala.Option[com.google.protobuf.duration.Duration]]),
          disableOverprovisioning = __fieldsMap.get(scalaDescriptor.findFieldByNumber(5).get).map(_.as[_root_.scala.Boolean]).getOrElse(false)
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.javaDescriptor.getNestedTypes().get(0)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.scalaDescriptor.nestedMessages(0)
    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.api.v2.ClusterLoadAssignment.Policy.DropOverload
        case 3 => __out = com.google.protobuf.wrappers.UInt32Value
        case 4 => __out = com.google.protobuf.duration.Duration
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] =
      Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]](
        _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload
      )
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy(
      dropOverloads = _root_.scala.Seq.empty,
      overprovisioningFactor = _root_.scala.None,
      endpointStaleAfter = _root_.scala.None,
      disableOverprovisioning = false
    )
    /** [#not-implemented-hide:]
      *
      * @param category
      *   Identifier for the policy specifying the drop.
      * @param dropPercentage
      *   Percentage of traffic that should be dropped for the category.
      */
    @SerialVersionUID(0L)
    final case class DropOverload(
        category: _root_.scala.Predef.String = "",
        dropPercentage: _root_.scala.Option[io.envoyproxy.envoy.`type`.FractionalPercent] = _root_.scala.None,
        unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
        ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[DropOverload] {
        @transient
        private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
        private[this] def __computeSerializedSize(): _root_.scala.Int = {
          var __size = 0
          
          {
            val __value = category
            if (!__value.isEmpty) {
              __size += _root_.com.google.protobuf.CodedOutputStream.computeStringSize(1, __value)
            }
          };
          if (dropPercentage.isDefined) {
            val __value = dropPercentage.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 = category
            if (!__v.isEmpty) {
              _output__.writeString(1, __v)
            }
          };
          dropPercentage.foreach { __v =>
            val __m = __v
            _output__.writeTag(2, 2)
            _output__.writeUInt32NoTag(__m.serializedSize)
            __m.writeTo(_output__)
          };
          unknownFields.writeTo(_output__)
        }
        def withCategory(__v: _root_.scala.Predef.String): DropOverload = copy(category = __v)
        def getDropPercentage: io.envoyproxy.envoy.`type`.FractionalPercent = dropPercentage.getOrElse(io.envoyproxy.envoy.`type`.FractionalPercent.defaultInstance)
        def clearDropPercentage: DropOverload = copy(dropPercentage = _root_.scala.None)
        def withDropPercentage(__v: io.envoyproxy.envoy.`type`.FractionalPercent): DropOverload = copy(dropPercentage = 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 = category
              if (__t != "") __t else null
            }
            case 2 => dropPercentage.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(category)
            case 2 => dropPercentage.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
          }
        }
        def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
        def companion: io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload.type = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload
        // @@protoc_insertion_point(GeneratedMessage[envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload])
    }
    
    object DropOverload extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload] {
      implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload] = this
      def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload = {
        var __category: _root_.scala.Predef.String = ""
        var __dropPercentage: _root_.scala.Option[io.envoyproxy.envoy.`type`.FractionalPercent] = _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 =>
              __category = _input__.readStringRequireUtf8()
            case 18 =>
              __dropPercentage = Option(__dropPercentage.fold(_root_.scalapb.LiteParser.readMessage[io.envoyproxy.envoy.`type`.FractionalPercent](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            case tag =>
              if (_unknownFields__ == null) {
                _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
              }
              _unknownFields__.parseField(tag, _input__)
          }
        }
        io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload(
            category = __category,
            dropPercentage = __dropPercentage,
            unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
        )
      }
      implicit def messageReads: _root_.scalapb.descriptors.Reads[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload] = _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.api.v2.ClusterLoadAssignment.Policy.DropOverload(
            category = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).map(_.as[_root_.scala.Predef.String]).getOrElse(""),
            dropPercentage = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).flatMap(_.as[_root_.scala.Option[io.envoyproxy.envoy.`type`.FractionalPercent]])
          )
        case _ => throw new RuntimeException("Expected PMessage")
      }
      def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.javaDescriptor.getNestedTypes().get(0)
      def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.scalaDescriptor.nestedMessages(0)
      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.`type`.FractionalPercent
        }
        __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.api.v2.ClusterLoadAssignment.Policy.DropOverload(
        category = "",
        dropPercentage = _root_.scala.None
      )
      implicit class DropOverloadLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload](_l) {
        def category: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.category)((c_, f_) => c_.copy(category = f_))
        def dropPercentage: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.`type`.FractionalPercent] = field(_.getDropPercentage)((c_, f_) => c_.copy(dropPercentage = Option(f_)))
        def optionalDropPercentage: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.`type`.FractionalPercent]] = field(_.dropPercentage)((c_, f_) => c_.copy(dropPercentage = f_))
      }
      final val CATEGORY_FIELD_NUMBER = 1
      final val DROP_PERCENTAGE_FIELD_NUMBER = 2
      def of(
        category: _root_.scala.Predef.String,
        dropPercentage: _root_.scala.Option[io.envoyproxy.envoy.`type`.FractionalPercent]
      ): _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload = _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload(
        category,
        dropPercentage
      )
      // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload])
    }
    
    implicit class PolicyLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy](_l) {
      def dropOverloads: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload]] = field(_.dropOverloads)((c_, f_) => c_.copy(dropOverloads = f_))
      def overprovisioningFactor: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Int] = field(_.getOverprovisioningFactor)((c_, f_) => c_.copy(overprovisioningFactor = Option(f_)))
      def optionalOverprovisioningFactor: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[_root_.scala.Int]] = field(_.overprovisioningFactor)((c_, f_) => c_.copy(overprovisioningFactor = f_))
      def endpointStaleAfter: _root_.scalapb.lenses.Lens[UpperPB, com.google.protobuf.duration.Duration] = field(_.getEndpointStaleAfter)((c_, f_) => c_.copy(endpointStaleAfter = Option(f_)))
      def optionalEndpointStaleAfter: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[com.google.protobuf.duration.Duration]] = field(_.endpointStaleAfter)((c_, f_) => c_.copy(endpointStaleAfter = f_))
      def disableOverprovisioning: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Boolean] = field(_.disableOverprovisioning)((c_, f_) => c_.copy(disableOverprovisioning = f_))
    }
    final val DROP_OVERLOADS_FIELD_NUMBER = 2
    final val OVERPROVISIONING_FACTOR_FIELD_NUMBER = 3
    final val ENDPOINT_STALE_AFTER_FIELD_NUMBER = 4
    final val DISABLE_OVERPROVISIONING_FIELD_NUMBER = 5
    @transient
    private[v2] val _typemapper_overprovisioningFactor: _root_.scalapb.TypeMapper[com.google.protobuf.wrappers.UInt32Value, _root_.scala.Int] = implicitly[_root_.scalapb.TypeMapper[com.google.protobuf.wrappers.UInt32Value, _root_.scala.Int]]
    def of(
      dropOverloads: _root_.scala.Seq[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy.DropOverload],
      overprovisioningFactor: _root_.scala.Option[_root_.scala.Int],
      endpointStaleAfter: _root_.scala.Option[com.google.protobuf.duration.Duration],
      disableOverprovisioning: _root_.scala.Boolean
    ): _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy = _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy(
      dropOverloads,
      overprovisioningFactor,
      endpointStaleAfter,
      disableOverprovisioning
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.api.v2.ClusterLoadAssignment.Policy])
  }
  
  @SerialVersionUID(0L)
  final case class NamedEndpointsEntry(
      key: _root_.scala.Predef.String = "",
      value: _root_.scala.Option[io.envoyproxy.envoy.api.v2.endpoint.Endpoint] = _root_.scala.None,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[NamedEndpointsEntry] {
      @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): NamedEndpointsEntry = copy(key = __v)
      def getValue: io.envoyproxy.envoy.api.v2.endpoint.Endpoint = value.getOrElse(io.envoyproxy.envoy.api.v2.endpoint.Endpoint.defaultInstance)
      def clearValue: NamedEndpointsEntry = copy(value = _root_.scala.None)
      def withValue(__v: io.envoyproxy.envoy.api.v2.endpoint.Endpoint): NamedEndpointsEntry = 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.api.v2.ClusterLoadAssignment.NamedEndpointsEntry.type = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry
      // @@protoc_insertion_point(GeneratedMessage[envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry])
  }
  
  object NamedEndpointsEntry extends scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry = {
      var __key: _root_.scala.Predef.String = ""
      var __value: _root_.scala.Option[io.envoyproxy.envoy.api.v2.endpoint.Endpoint] = _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.api.v2.endpoint.Endpoint](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry(
          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.api.v2.ClusterLoadAssignment.NamedEndpointsEntry] = _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.api.v2.ClusterLoadAssignment.NamedEndpointsEntry(
          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.api.v2.endpoint.Endpoint]])
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.javaDescriptor.getNestedTypes().get(1)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.scalaDescriptor.nestedMessages(1)
    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.api.v2.endpoint.Endpoint
      }
      __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.api.v2.ClusterLoadAssignment.NamedEndpointsEntry(
      key = "",
      value = _root_.scala.None
    )
    implicit class NamedEndpointsEntryLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry](_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.api.v2.endpoint.Endpoint] = field(_.getValue)((c_, f_) => c_.copy(value = Option(f_)))
      def optionalValue: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.api.v2.endpoint.Endpoint]] = 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.api.v2.ClusterLoadAssignment.NamedEndpointsEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint)] =
      _root_.scalapb.TypeMapper[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint)](__m => (__m.key, __m.getValue))(__p => io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry(__p._1, Some(__p._2)))
    def of(
      key: _root_.scala.Predef.String,
      value: _root_.scala.Option[io.envoyproxy.envoy.api.v2.endpoint.Endpoint]
    ): _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry = _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry(
      key,
      value
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry])
  }
  
  implicit class ClusterLoadAssignmentLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment](_l) {
    def clusterName: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Predef.String] = field(_.clusterName)((c_, f_) => c_.copy(clusterName = f_))
    def endpoints: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints]] = field(_.endpoints)((c_, f_) => c_.copy(endpoints = f_))
    def namedEndpoints: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint]] = field(_.namedEndpoints)((c_, f_) => c_.copy(namedEndpoints = f_))
    def policy: _root_.scalapb.lenses.Lens[UpperPB, io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy] = field(_.getPolicy)((c_, f_) => c_.copy(policy = Option(f_)))
    def optionalPolicy: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Option[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy]] = field(_.policy)((c_, f_) => c_.copy(policy = f_))
  }
  final val CLUSTER_NAME_FIELD_NUMBER = 1
  final val ENDPOINTS_FIELD_NUMBER = 2
  final val NAMED_ENDPOINTS_FIELD_NUMBER = 5
  final val POLICY_FIELD_NUMBER = 4
  @transient
  private[v2] val _typemapper_namedEndpoints: _root_.scalapb.TypeMapper[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint)] = implicitly[_root_.scalapb.TypeMapper[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.NamedEndpointsEntry, (_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint)]]
  def of(
    clusterName: _root_.scala.Predef.String,
    endpoints: _root_.scala.Seq[io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints],
    namedEndpoints: _root_.scala.collection.immutable.Map[_root_.scala.Predef.String, io.envoyproxy.envoy.api.v2.endpoint.Endpoint],
    policy: _root_.scala.Option[io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.Policy]
  ): _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment = _root_.io.envoyproxy.envoy.api.v2.ClusterLoadAssignment(
    clusterName,
    endpoints,
    namedEndpoints,
    policy
  )
  // @@protoc_insertion_point(GeneratedMessageCompanion[envoy.api.v2.ClusterLoadAssignment])
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy