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

io.github.vigoo.zioaws.elasticloadbalancing.model.CreateLoadBalancerRequest.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 CreateLoadBalancerRequest(loadBalancerName: primitives.AccessPointName, listeners: Iterable[Listener], availabilityZones: scala.Option[Iterable[primitives.AvailabilityZone]] = None, subnets: scala.Option[Iterable[primitives.SubnetId]] = None, securityGroups: scala.Option[Iterable[primitives.SecurityGroupId]] = None, scheme: scala.Option[primitives.LoadBalancerScheme] = None, tags: scala.Option[Iterable[Tag]] = None) {
  def buildAwsValue(): software.amazon.awssdk.services.elasticloadbalancing.model.CreateLoadBalancerRequest = {
    import CreateLoadBalancerRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticloadbalancing.model.CreateLoadBalancerRequest.builder().loadBalancerName(loadBalancerName: java.lang.String).listeners(listeners.map { item => 
      item.buildAwsValue()
    }.asJavaCollection).optionallyWith(availabilityZones.map(value => value.map { item => 
      item: java.lang.String
    }.asJavaCollection))(_.availabilityZones).optionallyWith(subnets.map(value => value.map { item => 
      item: java.lang.String
    }.asJavaCollection))(_.subnets).optionallyWith(securityGroups.map(value => value.map { item => 
      item: java.lang.String
    }.asJavaCollection))(_.securityGroups).optionallyWith(scheme.map(value => value: java.lang.String))(_.scheme).optionallyWith(tags.map(value => value.map { item => 
      item.buildAwsValue()
    }.asJavaCollection))(_.tags).build()
  }
  def asReadOnly: CreateLoadBalancerRequest.ReadOnly = CreateLoadBalancerRequest.wrap(buildAwsValue())
}
object CreateLoadBalancerRequest {
  private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.elasticloadbalancing.model.CreateLoadBalancerRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
  trait ReadOnly {
    def editable: CreateLoadBalancerRequest = CreateLoadBalancerRequest(loadBalancerNameValue, listenersValue.map { item => 
      item.editable
    }, availabilityZonesValue.map(value => value), subnetsValue.map(value => value), securityGroupsValue.map(value => value), schemeValue.map(value => value), tagsValue.map(value => value.map { item => 
      item.editable
    }))
    def loadBalancerNameValue: primitives.AccessPointName
    def listenersValue: List[Listener.ReadOnly]
    def availabilityZonesValue: scala.Option[List[primitives.AvailabilityZone]]
    def subnetsValue: scala.Option[List[primitives.SubnetId]]
    def securityGroupsValue: scala.Option[List[primitives.SecurityGroupId]]
    def schemeValue: scala.Option[primitives.LoadBalancerScheme]
    def tagsValue: scala.Option[List[Tag.ReadOnly]]
    def loadBalancerName: ZIO[Any, Nothing, primitives.AccessPointName] = ZIO.succeed(loadBalancerNameValue)
    def listeners: ZIO[Any, Nothing, List[Listener.ReadOnly]] = ZIO.succeed(listenersValue)
    def availabilityZones: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[primitives.AvailabilityZone]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("availabilityZones", availabilityZonesValue)
    def subnets: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[primitives.SubnetId]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("subnets", subnetsValue)
    def securityGroups: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[primitives.SecurityGroupId]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("securityGroups", securityGroupsValue)
    def scheme: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.LoadBalancerScheme] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("scheme", schemeValue)
    def tags: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[Tag.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("tags", tagsValue)
  }
  private class Wrapper(impl: software.amazon.awssdk.services.elasticloadbalancing.model.CreateLoadBalancerRequest) extends CreateLoadBalancerRequest.ReadOnly {
    override def loadBalancerNameValue: primitives.AccessPointName = impl.loadBalancerName(): primitives.AccessPointName
    override def listenersValue: List[Listener.ReadOnly] = impl.listeners().asScala.map { item => 
      Listener.wrap(item)
    }.toList
    override def availabilityZonesValue: scala.Option[List[primitives.AvailabilityZone]] = scala.Option(impl.availabilityZones()).map(value => value.asScala.map { item => 
      item: primitives.AvailabilityZone
    }.toList)
    override def subnetsValue: scala.Option[List[primitives.SubnetId]] = scala.Option(impl.subnets()).map(value => value.asScala.map { item => 
      item: primitives.SubnetId
    }.toList)
    override def securityGroupsValue: scala.Option[List[primitives.SecurityGroupId]] = scala.Option(impl.securityGroups()).map(value => value.asScala.map { item => 
      item: primitives.SecurityGroupId
    }.toList)
    override def schemeValue: scala.Option[primitives.LoadBalancerScheme] = scala.Option(impl.scheme()).map(value => value: primitives.LoadBalancerScheme)
    override def tagsValue: scala.Option[List[Tag.ReadOnly]] = scala.Option(impl.tags()).map(value => value.asScala.map { item => 
      Tag.wrap(item)
    }.toList)
  }
  def wrap(impl: software.amazon.awssdk.services.elasticloadbalancing.model.CreateLoadBalancerRequest): ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy