
io.github.vigoo.zioaws.route53resolver.model.CreateResolverEndpointRequest.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.route53resolver.model
import zio.ZIO
import io.github.vigoo.zioaws.route53resolver.model.primitives.{
ResourceId,
Name,
CreatorRequestId
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class CreateResolverEndpointRequest(
creatorRequestId: CreatorRequestId,
name: Option[Name] = None,
securityGroupIds: Iterable[ResourceId],
direction: io.github.vigoo.zioaws.route53resolver.model.ResolverEndpointDirection,
ipAddresses: Iterable[
io.github.vigoo.zioaws.route53resolver.model.IpAddressRequest
],
tags: Option[Iterable[io.github.vigoo.zioaws.route53resolver.model.Tag]] =
None
) {
def buildAwsValue()
: software.amazon.awssdk.services.route53resolver.model.CreateResolverEndpointRequest = {
import CreateResolverEndpointRequest.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.route53resolver.model.CreateResolverEndpointRequest
.builder()
.creatorRequestId(creatorRequestId: java.lang.String)
.optionallyWith(name.map(value => value: java.lang.String))(_.name)
.securityGroupIds(securityGroupIds.map { item =>
item: java.lang.String
}.asJavaCollection)
.direction(direction.unwrap)
.ipAddresses(ipAddresses.map { item =>
item.buildAwsValue()
}.asJavaCollection)
.optionallyWith(
tags.map(value =>
value.map { item =>
item.buildAwsValue()
}.asJavaCollection
)
)(_.tags)
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.route53resolver.model.CreateResolverEndpointRequest.ReadOnly =
io.github.vigoo.zioaws.route53resolver.model.CreateResolverEndpointRequest
.wrap(buildAwsValue())
}
object CreateResolverEndpointRequest {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.route53resolver.model.CreateResolverEndpointRequest
] = BuilderHelper.apply
trait ReadOnly {
def editable
: io.github.vigoo.zioaws.route53resolver.model.CreateResolverEndpointRequest =
io.github.vigoo.zioaws.route53resolver.model
.CreateResolverEndpointRequest(
creatorRequestIdValue,
nameValue.map(value => value),
securityGroupIdsValue,
directionValue,
ipAddressesValue.map { item =>
item.editable
},
tagsValue.map(value =>
value.map { item =>
item.editable
}
)
)
def creatorRequestIdValue: CreatorRequestId
def nameValue: Option[Name]
def securityGroupIdsValue: List[ResourceId]
def directionValue
: io.github.vigoo.zioaws.route53resolver.model.ResolverEndpointDirection
def ipAddressesValue: List[
io.github.vigoo.zioaws.route53resolver.model.IpAddressRequest.ReadOnly
]
def tagsValue: Option[
List[io.github.vigoo.zioaws.route53resolver.model.Tag.ReadOnly]
]
def creatorRequestId: ZIO[Any, Nothing, CreatorRequestId] =
ZIO.succeed(creatorRequestIdValue)
def name: ZIO[Any, AwsError, Name] =
AwsError.unwrapOptionField("name", nameValue)
def securityGroupIds: ZIO[Any, Nothing, List[ResourceId]] =
ZIO.succeed(securityGroupIdsValue)
def direction: ZIO[
Any,
Nothing,
io.github.vigoo.zioaws.route53resolver.model.ResolverEndpointDirection
] = ZIO.succeed(directionValue)
def ipAddresses: ZIO[Any, Nothing, List[
io.github.vigoo.zioaws.route53resolver.model.IpAddressRequest.ReadOnly
]] = ZIO.succeed(ipAddressesValue)
def tags: ZIO[Any, AwsError, List[
io.github.vigoo.zioaws.route53resolver.model.Tag.ReadOnly
]] = AwsError.unwrapOptionField("tags", tagsValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.route53resolver.model.CreateResolverEndpointRequest
) extends io.github.vigoo.zioaws.route53resolver.model.CreateResolverEndpointRequest.ReadOnly {
override def creatorRequestIdValue: CreatorRequestId =
impl.creatorRequestId(): CreatorRequestId
override def nameValue: Option[Name] =
scala.Option(impl.name()).map(value => value: Name)
override def securityGroupIdsValue: List[ResourceId] = impl
.securityGroupIds()
.asScala
.map { item =>
item: ResourceId
}
.toList
override def directionValue
: io.github.vigoo.zioaws.route53resolver.model.ResolverEndpointDirection =
io.github.vigoo.zioaws.route53resolver.model.ResolverEndpointDirection
.wrap(impl.direction())
override def ipAddressesValue: List[
io.github.vigoo.zioaws.route53resolver.model.IpAddressRequest.ReadOnly
] = impl
.ipAddresses()
.asScala
.map { item =>
io.github.vigoo.zioaws.route53resolver.model.IpAddressRequest.wrap(item)
}
.toList
override def tagsValue: Option[
List[io.github.vigoo.zioaws.route53resolver.model.Tag.ReadOnly]
] = scala
.Option(impl.tags())
.map(value =>
value.asScala.map { item =>
io.github.vigoo.zioaws.route53resolver.model.Tag.wrap(item)
}.toList
)
}
def wrap(
impl: software.amazon.awssdk.services.route53resolver.model.CreateResolverEndpointRequest
): io.github.vigoo.zioaws.route53resolver.model.CreateResolverEndpointRequest.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy