All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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