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

io.github.vigoo.zioaws.swf.model.DomainInfo.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.swf.model
import zio.ZIO
import io.github.vigoo.zioaws.swf.model.primitives.{
  Arn,
  Description,
  DomainName
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class DomainInfo(
    name: DomainName,
    status: io.github.vigoo.zioaws.swf.model.RegistrationStatus,
    description: Option[Description] = None,
    arn: Option[Arn] = None
) {
  def buildAwsValue(): software.amazon.awssdk.services.swf.model.DomainInfo = {
    import DomainInfo.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.swf.model.DomainInfo
      .builder()
      .name(name: java.lang.String)
      .status(status.unwrap)
      .optionallyWith(description.map(value => value: java.lang.String))(
        _.description
      )
      .optionallyWith(arn.map(value => value: java.lang.String))(_.arn)
      .build()
  }
  def asReadOnly: io.github.vigoo.zioaws.swf.model.DomainInfo.ReadOnly =
    io.github.vigoo.zioaws.swf.model.DomainInfo.wrap(buildAwsValue())
}
object DomainInfo {
  private lazy val zioAwsBuilderHelper
      : BuilderHelper[software.amazon.awssdk.services.swf.model.DomainInfo] =
    BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.swf.model.DomainInfo =
      io.github.vigoo.zioaws.swf.model.DomainInfo(
        nameValue,
        statusValue,
        descriptionValue.map(value => value),
        arnValue.map(value => value)
      )
    def nameValue: DomainName
    def statusValue: io.github.vigoo.zioaws.swf.model.RegistrationStatus
    def descriptionValue: Option[Description]
    def arnValue: Option[Arn]
    def name: ZIO[Any, Nothing, DomainName] = ZIO.succeed(nameValue)
    def status: ZIO[
      Any,
      Nothing,
      io.github.vigoo.zioaws.swf.model.RegistrationStatus
    ] = ZIO.succeed(statusValue)
    def description: ZIO[Any, AwsError, Description] =
      AwsError.unwrapOptionField("description", descriptionValue)
    def arn: ZIO[Any, AwsError, Arn] =
      AwsError.unwrapOptionField("arn", arnValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.swf.model.DomainInfo
  ) extends io.github.vigoo.zioaws.swf.model.DomainInfo.ReadOnly {
    override def nameValue: DomainName = impl.name(): DomainName
    override def statusValue
        : io.github.vigoo.zioaws.swf.model.RegistrationStatus =
      io.github.vigoo.zioaws.swf.model.RegistrationStatus.wrap(impl.status())
    override def descriptionValue: Option[Description] =
      scala.Option(impl.description()).map(value => value: Description)
    override def arnValue: Option[Arn] =
      scala.Option(impl.arn()).map(value => value: Arn)
  }
  def wrap(
      impl: software.amazon.awssdk.services.swf.model.DomainInfo
  ): io.github.vigoo.zioaws.swf.model.DomainInfo.ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy