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

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

package io.github.vigoo.zioaws.codepipeline.model
import zio.ZIO
import io.github.vigoo.zioaws.codepipeline.model.primitives.{
  PipelineExecutionId,
  PipelineArn,
  PipelineName
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class PipelineContext(
    pipelineName: Option[PipelineName] = None,
    stage: Option[io.github.vigoo.zioaws.codepipeline.model.StageContext] =
      None,
    action: Option[io.github.vigoo.zioaws.codepipeline.model.ActionContext] =
      None,
    pipelineArn: Option[PipelineArn] = None,
    pipelineExecutionId: Option[PipelineExecutionId] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.codepipeline.model.PipelineContext = {
    import PipelineContext.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.codepipeline.model.PipelineContext
      .builder()
      .optionallyWith(pipelineName.map(value => value: java.lang.String))(
        _.pipelineName
      )
      .optionallyWith(stage.map(value => value.buildAwsValue()))(_.stage)
      .optionallyWith(action.map(value => value.buildAwsValue()))(_.action)
      .optionallyWith(pipelineArn.map(value => value: java.lang.String))(
        _.pipelineArn
      )
      .optionallyWith(
        pipelineExecutionId.map(value => value: java.lang.String)
      )(_.pipelineExecutionId)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.codepipeline.model.PipelineContext.ReadOnly =
    io.github.vigoo.zioaws.codepipeline.model.PipelineContext
      .wrap(buildAwsValue())
}
object PipelineContext {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.codepipeline.model.PipelineContext
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.codepipeline.model.PipelineContext =
      io.github.vigoo.zioaws.codepipeline.model.PipelineContext(
        pipelineNameValue.map(value => value),
        stageValue.map(value => value.editable),
        actionValue.map(value => value.editable),
        pipelineArnValue.map(value => value),
        pipelineExecutionIdValue.map(value => value)
      )
    def pipelineNameValue: Option[PipelineName]
    def stageValue: Option[
      io.github.vigoo.zioaws.codepipeline.model.StageContext.ReadOnly
    ]
    def actionValue: Option[
      io.github.vigoo.zioaws.codepipeline.model.ActionContext.ReadOnly
    ]
    def pipelineArnValue: Option[PipelineArn]
    def pipelineExecutionIdValue: Option[PipelineExecutionId]
    def pipelineName: ZIO[Any, AwsError, PipelineName] =
      AwsError.unwrapOptionField("pipelineName", pipelineNameValue)
    def stage: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.codepipeline.model.StageContext.ReadOnly
    ] = AwsError.unwrapOptionField("stage", stageValue)
    def action: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.codepipeline.model.ActionContext.ReadOnly
    ] = AwsError.unwrapOptionField("action", actionValue)
    def pipelineArn: ZIO[Any, AwsError, PipelineArn] =
      AwsError.unwrapOptionField("pipelineArn", pipelineArnValue)
    def pipelineExecutionId: ZIO[Any, AwsError, PipelineExecutionId] = AwsError
      .unwrapOptionField("pipelineExecutionId", pipelineExecutionIdValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.codepipeline.model.PipelineContext
  ) extends io.github.vigoo.zioaws.codepipeline.model.PipelineContext.ReadOnly {
    override def pipelineNameValue: Option[PipelineName] =
      scala.Option(impl.pipelineName()).map(value => value: PipelineName)
    override def stageValue: Option[
      io.github.vigoo.zioaws.codepipeline.model.StageContext.ReadOnly
    ] = scala
      .Option(impl.stage())
      .map(value =>
        io.github.vigoo.zioaws.codepipeline.model.StageContext.wrap(value)
      )
    override def actionValue: Option[
      io.github.vigoo.zioaws.codepipeline.model.ActionContext.ReadOnly
    ] = scala
      .Option(impl.action())
      .map(value =>
        io.github.vigoo.zioaws.codepipeline.model.ActionContext.wrap(value)
      )
    override def pipelineArnValue: Option[PipelineArn] =
      scala.Option(impl.pipelineArn()).map(value => value: PipelineArn)
    override def pipelineExecutionIdValue: Option[PipelineExecutionId] = scala
      .Option(impl.pipelineExecutionId())
      .map(value => value: PipelineExecutionId)
  }
  def wrap(
      impl: software.amazon.awssdk.services.codepipeline.model.PipelineContext
  ): io.github.vigoo.zioaws.codepipeline.model.PipelineContext.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy