
io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerDescription.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.elasticloadbalancing.model
import zio.ZIO
import java.time.Instant
import io.github.vigoo.zioaws.elasticloadbalancing.model.primitives.{
SubnetId,
DNSName,
AccessPointName,
SecurityGroupId,
LoadBalancerScheme,
VPCId,
AvailabilityZone,
CreatedTime
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class LoadBalancerDescription(
loadBalancerName: Option[AccessPointName] = None,
dnsName: Option[DNSName] = None,
canonicalHostedZoneName: Option[DNSName] = None,
canonicalHostedZoneNameID: Option[DNSName] = None,
listenerDescriptions: Option[Iterable[
io.github.vigoo.zioaws.elasticloadbalancing.model.ListenerDescription
]] = None,
policies: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.Policies
] = None,
backendServerDescriptions: Option[Iterable[
io.github.vigoo.zioaws.elasticloadbalancing.model.BackendServerDescription
]] = None,
availabilityZones: Option[Iterable[AvailabilityZone]] = None,
subnets: Option[Iterable[SubnetId]] = None,
vpcId: Option[VPCId] = None,
instances: Option[
Iterable[io.github.vigoo.zioaws.elasticloadbalancing.model.Instance]
] = None,
healthCheck: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.HealthCheck
] = None,
sourceSecurityGroup: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.SourceSecurityGroup
] = None,
securityGroups: Option[Iterable[SecurityGroupId]] = None,
createdTime: Option[CreatedTime] = None,
scheme: Option[LoadBalancerScheme] = None
) {
def buildAwsValue()
: software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerDescription = {
import LoadBalancerDescription.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerDescription
.builder()
.optionallyWith(loadBalancerName.map(value => value: java.lang.String))(
_.loadBalancerName
)
.optionallyWith(dnsName.map(value => value: java.lang.String))(_.dnsName)
.optionallyWith(
canonicalHostedZoneName.map(value => value: java.lang.String)
)(_.canonicalHostedZoneName)
.optionallyWith(
canonicalHostedZoneNameID.map(value => value: java.lang.String)
)(_.canonicalHostedZoneNameID)
.optionallyWith(
listenerDescriptions.map(value =>
value.map { item =>
item.buildAwsValue()
}.asJavaCollection
)
)(_.listenerDescriptions)
.optionallyWith(policies.map(value => value.buildAwsValue()))(_.policies)
.optionallyWith(
backendServerDescriptions.map(value =>
value.map { item =>
item.buildAwsValue()
}.asJavaCollection
)
)(_.backendServerDescriptions)
.optionallyWith(
availabilityZones.map(value =>
value.map { item =>
item: java.lang.String
}.asJavaCollection
)
)(_.availabilityZones)
.optionallyWith(
subnets.map(value =>
value.map { item =>
item: java.lang.String
}.asJavaCollection
)
)(_.subnets)
.optionallyWith(vpcId.map(value => value: java.lang.String))(_.vpcId)
.optionallyWith(
instances.map(value =>
value.map { item =>
item.buildAwsValue()
}.asJavaCollection
)
)(_.instances)
.optionallyWith(healthCheck.map(value => value.buildAwsValue()))(
_.healthCheck
)
.optionallyWith(sourceSecurityGroup.map(value => value.buildAwsValue()))(
_.sourceSecurityGroup
)
.optionallyWith(
securityGroups.map(value =>
value.map { item =>
item: java.lang.String
}.asJavaCollection
)
)(_.securityGroups)
.optionallyWith(createdTime.map(value => value: Instant))(_.createdTime)
.optionallyWith(scheme.map(value => value: java.lang.String))(_.scheme)
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerDescription.ReadOnly =
io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerDescription
.wrap(buildAwsValue())
}
object LoadBalancerDescription {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerDescription
] = BuilderHelper.apply
trait ReadOnly {
def editable
: io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerDescription =
io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerDescription(
loadBalancerNameValue.map(value => value),
dnsNameValue.map(value => value),
canonicalHostedZoneNameValue.map(value => value),
canonicalHostedZoneNameIDValue.map(value => value),
listenerDescriptionsValue.map(value =>
value.map { item =>
item.editable
}
),
policiesValue.map(value => value.editable),
backendServerDescriptionsValue.map(value =>
value.map { item =>
item.editable
}
),
availabilityZonesValue.map(value => value),
subnetsValue.map(value => value),
vpcIdValue.map(value => value),
instancesValue.map(value =>
value.map { item =>
item.editable
}
),
healthCheckValue.map(value => value.editable),
sourceSecurityGroupValue.map(value => value.editable),
securityGroupsValue.map(value => value),
createdTimeValue.map(value => value),
schemeValue.map(value => value)
)
def loadBalancerNameValue: Option[AccessPointName]
def dnsNameValue: Option[DNSName]
def canonicalHostedZoneNameValue: Option[DNSName]
def canonicalHostedZoneNameIDValue: Option[DNSName]
def listenerDescriptionsValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.ListenerDescription.ReadOnly
]]
def policiesValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.Policies.ReadOnly
]
def backendServerDescriptionsValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.BackendServerDescription.ReadOnly
]]
def availabilityZonesValue: Option[List[AvailabilityZone]]
def subnetsValue: Option[List[SubnetId]]
def vpcIdValue: Option[VPCId]
def instancesValue: Option[
List[io.github.vigoo.zioaws.elasticloadbalancing.model.Instance.ReadOnly]
]
def healthCheckValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.HealthCheck.ReadOnly
]
def sourceSecurityGroupValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.SourceSecurityGroup.ReadOnly
]
def securityGroupsValue: Option[List[SecurityGroupId]]
def createdTimeValue: Option[CreatedTime]
def schemeValue: Option[LoadBalancerScheme]
def loadBalancerName: ZIO[Any, AwsError, AccessPointName] =
AwsError.unwrapOptionField("loadBalancerName", loadBalancerNameValue)
def dnsName: ZIO[Any, AwsError, DNSName] =
AwsError.unwrapOptionField("dnsName", dnsNameValue)
def canonicalHostedZoneName: ZIO[Any, AwsError, DNSName] =
AwsError.unwrapOptionField(
"canonicalHostedZoneName",
canonicalHostedZoneNameValue
)
def canonicalHostedZoneNameID: ZIO[Any, AwsError, DNSName] =
AwsError.unwrapOptionField(
"canonicalHostedZoneNameID",
canonicalHostedZoneNameIDValue
)
def listenerDescriptions: ZIO[Any, AwsError, List[
io.github.vigoo.zioaws.elasticloadbalancing.model.ListenerDescription.ReadOnly
]] = AwsError.unwrapOptionField(
"listenerDescriptions",
listenerDescriptionsValue
)
def policies: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.elasticloadbalancing.model.Policies.ReadOnly
] = AwsError.unwrapOptionField("policies", policiesValue)
def backendServerDescriptions: ZIO[Any, AwsError, List[
io.github.vigoo.zioaws.elasticloadbalancing.model.BackendServerDescription.ReadOnly
]] = AwsError.unwrapOptionField(
"backendServerDescriptions",
backendServerDescriptionsValue
)
def availabilityZones: ZIO[Any, AwsError, List[AvailabilityZone]] =
AwsError.unwrapOptionField("availabilityZones", availabilityZonesValue)
def subnets: ZIO[Any, AwsError, List[SubnetId]] =
AwsError.unwrapOptionField("subnets", subnetsValue)
def vpcId: ZIO[Any, AwsError, VPCId] =
AwsError.unwrapOptionField("vpcId", vpcIdValue)
def instances: ZIO[Any, AwsError, List[
io.github.vigoo.zioaws.elasticloadbalancing.model.Instance.ReadOnly
]] = AwsError.unwrapOptionField("instances", instancesValue)
def healthCheck: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.elasticloadbalancing.model.HealthCheck.ReadOnly
] = AwsError.unwrapOptionField("healthCheck", healthCheckValue)
def sourceSecurityGroup: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.elasticloadbalancing.model.SourceSecurityGroup.ReadOnly
] = AwsError.unwrapOptionField(
"sourceSecurityGroup",
sourceSecurityGroupValue
)
def securityGroups: ZIO[Any, AwsError, List[SecurityGroupId]] =
AwsError.unwrapOptionField("securityGroups", securityGroupsValue)
def createdTime: ZIO[Any, AwsError, CreatedTime] =
AwsError.unwrapOptionField("createdTime", createdTimeValue)
def scheme: ZIO[Any, AwsError, LoadBalancerScheme] =
AwsError.unwrapOptionField("scheme", schemeValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerDescription
) extends io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerDescription.ReadOnly {
override def loadBalancerNameValue: Option[AccessPointName] =
scala.Option(impl.loadBalancerName()).map(value => value: AccessPointName)
override def dnsNameValue: Option[DNSName] =
scala.Option(impl.dnsName()).map(value => value: DNSName)
override def canonicalHostedZoneNameValue: Option[DNSName] =
scala.Option(impl.canonicalHostedZoneName()).map(value => value: DNSName)
override def canonicalHostedZoneNameIDValue: Option[DNSName] = scala
.Option(impl.canonicalHostedZoneNameID())
.map(value => value: DNSName)
override def listenerDescriptionsValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.ListenerDescription.ReadOnly
]] = scala
.Option(impl.listenerDescriptions())
.map(value =>
value.asScala.map { item =>
io.github.vigoo.zioaws.elasticloadbalancing.model.ListenerDescription
.wrap(item)
}.toList
)
override def policiesValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.Policies.ReadOnly
] = scala
.Option(impl.policies())
.map(value =>
io.github.vigoo.zioaws.elasticloadbalancing.model.Policies.wrap(value)
)
override def backendServerDescriptionsValue: Option[List[
io.github.vigoo.zioaws.elasticloadbalancing.model.BackendServerDescription.ReadOnly
]] = scala
.Option(impl.backendServerDescriptions())
.map(value =>
value.asScala.map { item =>
io.github.vigoo.zioaws.elasticloadbalancing.model.BackendServerDescription
.wrap(item)
}.toList
)
override def availabilityZonesValue: Option[List[AvailabilityZone]] = scala
.Option(impl.availabilityZones())
.map(value =>
value.asScala.map { item =>
item: AvailabilityZone
}.toList
)
override def subnetsValue: Option[List[SubnetId]] = scala
.Option(impl.subnets())
.map(value =>
value.asScala.map { item =>
item: SubnetId
}.toList
)
override def vpcIdValue: Option[VPCId] =
scala.Option(impl.vpcId()).map(value => value: VPCId)
override def instancesValue: Option[
List[io.github.vigoo.zioaws.elasticloadbalancing.model.Instance.ReadOnly]
] = scala
.Option(impl.instances())
.map(value =>
value.asScala.map { item =>
io.github.vigoo.zioaws.elasticloadbalancing.model.Instance.wrap(item)
}.toList
)
override def healthCheckValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.HealthCheck.ReadOnly
] = scala
.Option(impl.healthCheck())
.map(value =>
io.github.vigoo.zioaws.elasticloadbalancing.model.HealthCheck
.wrap(value)
)
override def sourceSecurityGroupValue: Option[
io.github.vigoo.zioaws.elasticloadbalancing.model.SourceSecurityGroup.ReadOnly
] = scala
.Option(impl.sourceSecurityGroup())
.map(value =>
io.github.vigoo.zioaws.elasticloadbalancing.model.SourceSecurityGroup
.wrap(value)
)
override def securityGroupsValue: Option[List[SecurityGroupId]] = scala
.Option(impl.securityGroups())
.map(value =>
value.asScala.map { item =>
item: SecurityGroupId
}.toList
)
override def createdTimeValue: Option[CreatedTime] =
scala.Option(impl.createdTime()).map(value => value: CreatedTime)
override def schemeValue: Option[LoadBalancerScheme] =
scala.Option(impl.scheme()).map(value => value: LoadBalancerScheme)
}
def wrap(
impl: software.amazon.awssdk.services.elasticloadbalancing.model.LoadBalancerDescription
): io.github.vigoo.zioaws.elasticloadbalancing.model.LoadBalancerDescription.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy