
io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerAttributes.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.elasticloadbalancing.model
import zio.ZIO
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class LoadBalancerAttributes(
crossZoneLoadBalancing: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.CrossZoneLoadBalancing
] = None,
accessLog: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog
] = None,
connectionDraining: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionDraining
] = None,
connectionSettings: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionSettings
] = None,
additionalAttributes: Option[Iterable[
io.github.vigoo.zioaws.elasticloadbalancing.model.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
: io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerAttributes.ReadOnly =
io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerAttributes
.wrap(buildAwsValue())
}
object LoadBalancerAttributes {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes
] = BuilderHelper.apply
trait ReadOnly {
def editable
: io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerAttributes =
io.github.vigoo.zioaws.elasticloadbalancing.model.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: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.CrossZoneLoadBalancing.ReadOnly
]
def accessLogValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.ReadOnly
]
def connectionDrainingValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionDraining.ReadOnly
]
def connectionSettingsValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionSettings.ReadOnly
]
def additionalAttributesValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.AdditionalAttribute.ReadOnly
]]
def crossZoneLoadBalancing: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.elasticloadbalancing.model.CrossZoneLoadBalancing.ReadOnly
] = AwsError.unwrapOptionField(
"crossZoneLoadBalancing",
crossZoneLoadBalancingValue
)
def accessLog: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.ReadOnly
] = AwsError.unwrapOptionField("accessLog", accessLogValue)
def connectionDraining: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionDraining.ReadOnly
] =
AwsError.unwrapOptionField("connectionDraining", connectionDrainingValue)
def connectionSettings: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionSettings.ReadOnly
] =
AwsError.unwrapOptionField("connectionSettings", connectionSettingsValue)
def additionalAttributes: ZIO[Any, AwsError, List[
io.github.vigoo.zioaws.elasticloadbalancing.model.AdditionalAttribute.ReadOnly
]] = AwsError.unwrapOptionField(
"additionalAttributes",
additionalAttributesValue
)
}
private class Wrapper(
impl: software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes
) extends io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerAttributes.ReadOnly {
override def crossZoneLoadBalancingValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.CrossZoneLoadBalancing.ReadOnly
] = scala
.Option(impl.crossZoneLoadBalancing())
.map(value =>
io.github.vigoo.zioaws.elasticloadbalancing.model.CrossZoneLoadBalancing
.wrap(value)
)
override def accessLogValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.ReadOnly
] = scala
.Option(impl.accessLog())
.map(value =>
io.github.vigoo.zioaws.elasticloadbalancing.model.AccessLog.wrap(value)
)
override def connectionDrainingValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionDraining.ReadOnly
] = scala
.Option(impl.connectionDraining())
.map(value =>
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionDraining
.wrap(value)
)
override def connectionSettingsValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionSettings.ReadOnly
] = scala
.Option(impl.connectionSettings())
.map(value =>
io.github.vigoo.zioaws.elasticloadbalancing.model.ConnectionSettings
.wrap(value)
)
override def additionalAttributesValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.AdditionalAttribute.ReadOnly
]] = scala
.Option(impl.additionalAttributes())
.map(value =>
value.asScala.map { item =>
io.github.vigoo.zioaws.elasticloadbalancing.model.AdditionalAttribute
.wrap(item)
}.toList
)
}
def wrap(
impl: software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerAttributes
): io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerAttributes.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy