
zio.aws.qbusiness.model.Subscription.scala Maven / Gradle / Ivy
package zio.aws.qbusiness.model
import zio.ZIO
import zio.aws.core.{AwsError, BuilderHelper}
import zio.prelude.data.Optional
import zio.aws.qbusiness.model.primitives.{SubscriptionArn, SubscriptionId}
import scala.jdk.CollectionConverters._
final case class Subscription(
subscriptionId: Optional[SubscriptionId] = Optional.Absent,
subscriptionArn: Optional[SubscriptionArn] = Optional.Absent,
principal: Optional[zio.aws.qbusiness.model.SubscriptionPrincipal] =
Optional.Absent,
currentSubscription: Optional[zio.aws.qbusiness.model.SubscriptionDetails] =
Optional.Absent,
nextSubscription: Optional[zio.aws.qbusiness.model.SubscriptionDetails] =
Optional.Absent
) {
def buildAwsValue()
: software.amazon.awssdk.services.qbusiness.model.Subscription = {
import Subscription.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.qbusiness.model.Subscription
.builder()
.optionallyWith(
subscriptionId.map(value =>
SubscriptionId.unwrap(value): java.lang.String
)
)(_.subscriptionId)
.optionallyWith(
subscriptionArn.map(value =>
SubscriptionArn.unwrap(value): java.lang.String
)
)(_.subscriptionArn)
.optionallyWith(principal.map(value => value.buildAwsValue()))(
_.principal
)
.optionallyWith(currentSubscription.map(value => value.buildAwsValue()))(
_.currentSubscription
)
.optionallyWith(nextSubscription.map(value => value.buildAwsValue()))(
_.nextSubscription
)
.build()
}
def asReadOnly: zio.aws.qbusiness.model.Subscription.ReadOnly =
zio.aws.qbusiness.model.Subscription.wrap(buildAwsValue())
}
object Subscription {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.qbusiness.model.Subscription
] = BuilderHelper.apply
trait ReadOnly {
def asEditable: zio.aws.qbusiness.model.Subscription =
zio.aws.qbusiness.model.Subscription(
subscriptionId.map(value => value),
subscriptionArn.map(value => value),
principal.map(value => value.asEditable),
currentSubscription.map(value => value.asEditable),
nextSubscription.map(value => value.asEditable)
)
def subscriptionId: Optional[SubscriptionId]
def subscriptionArn: Optional[SubscriptionArn]
def principal
: Optional[zio.aws.qbusiness.model.SubscriptionPrincipal.ReadOnly]
def currentSubscription
: Optional[zio.aws.qbusiness.model.SubscriptionDetails.ReadOnly]
def nextSubscription
: Optional[zio.aws.qbusiness.model.SubscriptionDetails.ReadOnly]
def getSubscriptionId: ZIO[Any, AwsError, SubscriptionId] =
AwsError.unwrapOptionField("subscriptionId", subscriptionId)
def getSubscriptionArn: ZIO[Any, AwsError, SubscriptionArn] =
AwsError.unwrapOptionField("subscriptionArn", subscriptionArn)
def getPrincipal: ZIO[
Any,
AwsError,
zio.aws.qbusiness.model.SubscriptionPrincipal.ReadOnly
] = AwsError.unwrapOptionField("principal", principal)
def getCurrentSubscription: ZIO[
Any,
AwsError,
zio.aws.qbusiness.model.SubscriptionDetails.ReadOnly
] = AwsError.unwrapOptionField("currentSubscription", currentSubscription)
def getNextSubscription: ZIO[
Any,
AwsError,
zio.aws.qbusiness.model.SubscriptionDetails.ReadOnly
] = AwsError.unwrapOptionField("nextSubscription", nextSubscription)
}
private final class Wrapper(
impl: software.amazon.awssdk.services.qbusiness.model.Subscription
) extends zio.aws.qbusiness.model.Subscription.ReadOnly {
override val subscriptionId: Optional[SubscriptionId] =
zio.aws.core.internal
.optionalFromNullable(impl.subscriptionId())
.map(value => zio.aws.qbusiness.model.primitives.SubscriptionId(value))
override val subscriptionArn: Optional[SubscriptionArn] =
zio.aws.core.internal
.optionalFromNullable(impl.subscriptionArn())
.map(value => zio.aws.qbusiness.model.primitives.SubscriptionArn(value))
override val principal
: Optional[zio.aws.qbusiness.model.SubscriptionPrincipal.ReadOnly] =
zio.aws.core.internal
.optionalFromNullable(impl.principal())
.map(value => zio.aws.qbusiness.model.SubscriptionPrincipal.wrap(value))
override val currentSubscription
: Optional[zio.aws.qbusiness.model.SubscriptionDetails.ReadOnly] =
zio.aws.core.internal
.optionalFromNullable(impl.currentSubscription())
.map(value => zio.aws.qbusiness.model.SubscriptionDetails.wrap(value))
override val nextSubscription
: Optional[zio.aws.qbusiness.model.SubscriptionDetails.ReadOnly] =
zio.aws.core.internal
.optionalFromNullable(impl.nextSubscription())
.map(value => zio.aws.qbusiness.model.SubscriptionDetails.wrap(value))
}
def wrap(
impl: software.amazon.awssdk.services.qbusiness.model.Subscription
): zio.aws.qbusiness.model.Subscription.ReadOnly = new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy