
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