
io.github.vigoo.zioaws.datasync.model.Ec2Config.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.datasync.model
import zio.ZIO
import io.github.vigoo.zioaws.core.BuilderHelper
import io.github.vigoo.zioaws.datasync.model.primitives.{
Ec2SecurityGroupArn,
Ec2SubnetArn
}
import scala.jdk.CollectionConverters._
final case class Ec2Config(
subnetArn: Ec2SubnetArn,
securityGroupArns: Iterable[Ec2SecurityGroupArn]
) {
def buildAwsValue()
: software.amazon.awssdk.services.datasync.model.Ec2Config = {
import Ec2Config.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.datasync.model.Ec2Config
.builder()
.subnetArn(subnetArn: java.lang.String)
.securityGroupArns(securityGroupArns.map { item =>
item: java.lang.String
}.asJavaCollection)
.build()
}
def asReadOnly: io.github.vigoo.zioaws.datasync.model.Ec2Config.ReadOnly =
io.github.vigoo.zioaws.datasync.model.Ec2Config.wrap(buildAwsValue())
}
object Ec2Config {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.datasync.model.Ec2Config
] = BuilderHelper.apply
trait ReadOnly {
def editable: io.github.vigoo.zioaws.datasync.model.Ec2Config =
io.github.vigoo.zioaws.datasync.model
.Ec2Config(subnetArnValue, securityGroupArnsValue)
def subnetArnValue: Ec2SubnetArn
def securityGroupArnsValue: List[Ec2SecurityGroupArn]
def subnetArn: ZIO[Any, Nothing, Ec2SubnetArn] = ZIO.succeed(subnetArnValue)
def securityGroupArns: ZIO[Any, Nothing, List[Ec2SecurityGroupArn]] =
ZIO.succeed(securityGroupArnsValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.datasync.model.Ec2Config
) extends io.github.vigoo.zioaws.datasync.model.Ec2Config.ReadOnly {
override def subnetArnValue: Ec2SubnetArn = impl.subnetArn(): Ec2SubnetArn
override def securityGroupArnsValue: List[Ec2SecurityGroupArn] = impl
.securityGroupArns()
.asScala
.map { item =>
item: Ec2SecurityGroupArn
}
.toList
}
def wrap(
impl: software.amazon.awssdk.services.datasync.model.Ec2Config
): io.github.vigoo.zioaws.datasync.model.Ec2Config.ReadOnly = new Wrapper(
impl
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy