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