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

io.github.vigoo.zioaws.codepipeline.model.TransitionState.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.codepipeline.model
import zio.ZIO
import io.github.vigoo.zioaws.codepipeline.model.primitives.{
  DisabledReason,
  LastChangedAt,
  LastChangedBy,
  Enabled
}
import java.time.Instant
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class TransitionState(
    enabled: Option[Enabled] = None,
    lastChangedBy: Option[LastChangedBy] = None,
    lastChangedAt: Option[LastChangedAt] = None,
    disabledReason: Option[DisabledReason] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.codepipeline.model.TransitionState = {
    import TransitionState.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.codepipeline.model.TransitionState
      .builder()
      .optionallyWith(enabled.map(value => value: java.lang.Boolean))(_.enabled)
      .optionallyWith(lastChangedBy.map(value => value: java.lang.String))(
        _.lastChangedBy
      )
      .optionallyWith(lastChangedAt.map(value => value: Instant))(
        _.lastChangedAt
      )
      .optionallyWith(disabledReason.map(value => value: java.lang.String))(
        _.disabledReason
      )
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.codepipeline.model.TransitionState.ReadOnly =
    io.github.vigoo.zioaws.codepipeline.model.TransitionState
      .wrap(buildAwsValue())
}
object TransitionState {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.codepipeline.model.TransitionState
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.codepipeline.model.TransitionState =
      io.github.vigoo.zioaws.codepipeline.model.TransitionState(
        enabledValue.map(value => value),
        lastChangedByValue.map(value => value),
        lastChangedAtValue.map(value => value),
        disabledReasonValue.map(value => value)
      )
    def enabledValue: Option[Enabled]
    def lastChangedByValue: Option[LastChangedBy]
    def lastChangedAtValue: Option[LastChangedAt]
    def disabledReasonValue: Option[DisabledReason]
    def enabled: ZIO[Any, AwsError, Enabled] =
      AwsError.unwrapOptionField("enabled", enabledValue)
    def lastChangedBy: ZIO[Any, AwsError, LastChangedBy] =
      AwsError.unwrapOptionField("lastChangedBy", lastChangedByValue)
    def lastChangedAt: ZIO[Any, AwsError, LastChangedAt] =
      AwsError.unwrapOptionField("lastChangedAt", lastChangedAtValue)
    def disabledReason: ZIO[Any, AwsError, DisabledReason] =
      AwsError.unwrapOptionField("disabledReason", disabledReasonValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.codepipeline.model.TransitionState
  ) extends io.github.vigoo.zioaws.codepipeline.model.TransitionState.ReadOnly {
    override def enabledValue: Option[Enabled] =
      scala.Option(impl.enabled()).map(value => value: Enabled)
    override def lastChangedByValue: Option[LastChangedBy] =
      scala.Option(impl.lastChangedBy()).map(value => value: LastChangedBy)
    override def lastChangedAtValue: Option[LastChangedAt] =
      scala.Option(impl.lastChangedAt()).map(value => value: LastChangedAt)
    override def disabledReasonValue: Option[DisabledReason] =
      scala.Option(impl.disabledReason()).map(value => value: DisabledReason)
  }
  def wrap(
      impl: software.amazon.awssdk.services.codepipeline.model.TransitionState
  ): io.github.vigoo.zioaws.codepipeline.model.TransitionState.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy