
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyDescription.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.elasticloadbalancing.model
import zio.ZIO
import io.github.vigoo.zioaws.elasticloadbalancing.model.primitives.{
PolicyTypeName,
PolicyName
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class PolicyDescription(
policyName: Option[PolicyName] = None,
policyTypeName: Option[PolicyTypeName] = None,
policyAttributeDescriptions: Option[Iterable[
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyAttributeDescription
]] = None
) {
def buildAwsValue()
: software.amazon.awssdk.services.elasticloadbalancing.model.PolicyDescription = {
import PolicyDescription.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.elasticloadbalancing.model.PolicyDescription
.builder()
.optionallyWith(policyName.map(value => value: java.lang.String))(
_.policyName
)
.optionallyWith(policyTypeName.map(value => value: java.lang.String))(
_.policyTypeName
)
.optionallyWith(
policyAttributeDescriptions.map(value =>
value.map { item =>
item.buildAwsValue()
}.asJavaCollection
)
)(_.policyAttributeDescriptions)
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyDescription.ReadOnly =
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyDescription
.wrap(buildAwsValue())
}
object PolicyDescription {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.elasticloadbalancing.model.PolicyDescription
] = BuilderHelper.apply
trait ReadOnly {
def editable
: io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyDescription =
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyDescription(
policyNameValue.map(value => value),
policyTypeNameValue.map(value => value),
policyAttributeDescriptionsValue.map(value =>
value.map { item =>
item.editable
}
)
)
def policyNameValue: Option[PolicyName]
def policyTypeNameValue: Option[PolicyTypeName]
def policyAttributeDescriptionsValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyAttributeDescription.ReadOnly
]]
def policyName: ZIO[Any, AwsError, PolicyName] =
AwsError.unwrapOptionField("policyName", policyNameValue)
def policyTypeName: ZIO[Any, AwsError, PolicyTypeName] =
AwsError.unwrapOptionField("policyTypeName", policyTypeNameValue)
def policyAttributeDescriptions: ZIO[Any, AwsError, List[
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyAttributeDescription.ReadOnly
]] = AwsError.unwrapOptionField(
"policyAttributeDescriptions",
policyAttributeDescriptionsValue
)
}
private class Wrapper(
impl: software.amazon.awssdk.services.elasticloadbalancing.model.PolicyDescription
) extends io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyDescription.ReadOnly {
override def policyNameValue: Option[PolicyName] =
scala.Option(impl.policyName()).map(value => value: PolicyName)
override def policyTypeNameValue: Option[PolicyTypeName] =
scala.Option(impl.policyTypeName()).map(value => value: PolicyTypeName)
override def policyAttributeDescriptionsValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyAttributeDescription.ReadOnly
]] = scala
.Option(impl.policyAttributeDescriptions())
.map(value =>
value.asScala.map { item =>
io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyAttributeDescription
.wrap(item)
}.toList
)
}
def wrap(
impl: software.amazon.awssdk.services.elasticloadbalancing.model.PolicyDescription
): io.github.vigoo.zioaws.elasticloadbalancing.model.PolicyDescription.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy