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

io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerAttributes.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.elasticloadbalancing.model
import scala.jdk.CollectionConverters.*
import java.time.Instant
import zio.{ Chunk, ZIO }
import software.amazon.awssdk.core.SdkBytes
final case class LoadBalancerAttributes(crossZoneLoadBalancing: scala.Option[CrossZoneLoadBalancing] = None, accessLog: scala.Option[AccessLog] = None, connectionDraining: scala.Option[ConnectionDraining] = None, connectionSettings: scala.Option[ConnectionSettings] = None, additionalAttributes: scala.Option[Iterable[AdditionalAttribute]] = None) {
  def buildAwsValue(): software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes = {
    import LoadBalancerAttributes.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes.builder().optionallyWith(crossZoneLoadBalancing.map(value => value.buildAwsValue()))(_.crossZoneLoadBalancing).optionallyWith(accessLog.map(value => value.buildAwsValue()))(_.accessLog).optionallyWith(connectionDraining.map(value => value.buildAwsValue()))(_.connectionDraining).optionallyWith(connectionSettings.map(value => value.buildAwsValue()))(_.connectionSettings).optionallyWith(additionalAttributes.map(value => value.map { item => 
      item.buildAwsValue()
    }.asJavaCollection))(_.additionalAttributes).build()
  }
  def asReadOnly: LoadBalancerAttributes.ReadOnly = LoadBalancerAttributes.wrap(buildAwsValue())
}
object LoadBalancerAttributes {
  private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes] = io.github.vigoo.zioaws.core.BuilderHelper.apply
  trait ReadOnly {
    def editable: LoadBalancerAttributes = LoadBalancerAttributes(crossZoneLoadBalancingValue.map(value => value.editable), accessLogValue.map(value => value.editable), connectionDrainingValue.map(value => value.editable), connectionSettingsValue.map(value => value.editable), additionalAttributesValue.map(value => value.map { item => 
      item.editable
    }))
    def crossZoneLoadBalancingValue: scala.Option[CrossZoneLoadBalancing.ReadOnly]
    def accessLogValue: scala.Option[AccessLog.ReadOnly]
    def connectionDrainingValue: scala.Option[ConnectionDraining.ReadOnly]
    def connectionSettingsValue: scala.Option[ConnectionSettings.ReadOnly]
    def additionalAttributesValue: scala.Option[List[AdditionalAttribute.ReadOnly]]
    def crossZoneLoadBalancing: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, CrossZoneLoadBalancing.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("crossZoneLoadBalancing", crossZoneLoadBalancingValue)
    def accessLog: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, AccessLog.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("accessLog", accessLogValue)
    def connectionDraining: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, ConnectionDraining.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("connectionDraining", connectionDrainingValue)
    def connectionSettings: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, ConnectionSettings.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("connectionSettings", connectionSettingsValue)
    def additionalAttributes: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[AdditionalAttribute.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("additionalAttributes", additionalAttributesValue)
  }
  private class Wrapper(impl: software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes) extends LoadBalancerAttributes.ReadOnly {
    override def crossZoneLoadBalancingValue: scala.Option[CrossZoneLoadBalancing.ReadOnly] = scala.Option(impl.crossZoneLoadBalancing()).map(value => CrossZoneLoadBalancing.wrap(value))
    override def accessLogValue: scala.Option[AccessLog.ReadOnly] = scala.Option(impl.accessLog()).map(value => AccessLog.wrap(value))
    override def connectionDrainingValue: scala.Option[ConnectionDraining.ReadOnly] = scala.Option(impl.connectionDraining()).map(value => ConnectionDraining.wrap(value))
    override def connectionSettingsValue: scala.Option[ConnectionSettings.ReadOnly] = scala.Option(impl.connectionSettings()).map(value => ConnectionSettings.wrap(value))
    override def additionalAttributesValue: scala.Option[List[AdditionalAttribute.ReadOnly]] = scala.Option(impl.additionalAttributes()).map(value => value.asScala.map { item => 
      AdditionalAttribute.wrap(item)
    }.toList)
  }
  def wrap(impl: software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes): ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy