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

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

package io.github.vigoo.zioaws.codepipeline.model
import java.lang.Integer
import zio.ZIO
import io.github.vigoo.zioaws.codepipeline.model.primitives.{
  PipelineExecutionStatusSummary,
  PipelineExecutionId,
  PipelineVersion,
  PipelineName
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class PipelineExecution(
    pipelineName: Option[PipelineName] = None,
    pipelineVersion: Option[PipelineVersion] = None,
    pipelineExecutionId: Option[PipelineExecutionId] = None,
    status: Option[
      io.github.vigoo.zioaws.codepipeline.model.PipelineExecutionStatus
    ] = None,
    statusSummary: Option[PipelineExecutionStatusSummary] = None,
    artifactRevisions: Option[
      Iterable[io.github.vigoo.zioaws.codepipeline.model.ArtifactRevision]
    ] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.codepipeline.model.PipelineExecution = {
    import PipelineExecution.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.codepipeline.model.PipelineExecution
      .builder()
      .optionallyWith(pipelineName.map(value => value: java.lang.String))(
        _.pipelineName
      )
      .optionallyWith(pipelineVersion.map(value => value: Integer))(
        _.pipelineVersion
      )
      .optionallyWith(
        pipelineExecutionId.map(value => value: java.lang.String)
      )(_.pipelineExecutionId)
      .optionallyWith(status.map(value => value.unwrap))(_.status)
      .optionallyWith(statusSummary.map(value => value: java.lang.String))(
        _.statusSummary
      )
      .optionallyWith(
        artifactRevisions.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.artifactRevisions)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.codepipeline.model.PipelineExecution.ReadOnly =
    io.github.vigoo.zioaws.codepipeline.model.PipelineExecution
      .wrap(buildAwsValue())
}
object PipelineExecution {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.codepipeline.model.PipelineExecution
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable: io.github.vigoo.zioaws.codepipeline.model.PipelineExecution =
      io.github.vigoo.zioaws.codepipeline.model.PipelineExecution(
        pipelineNameValue.map(value => value),
        pipelineVersionValue.map(value => value),
        pipelineExecutionIdValue.map(value => value),
        statusValue.map(value => value),
        statusSummaryValue.map(value => value),
        artifactRevisionsValue.map(value =>
          value.map { item =>
            item.editable
          }
        )
      )
    def pipelineNameValue: Option[PipelineName]
    def pipelineVersionValue: Option[PipelineVersion]
    def pipelineExecutionIdValue: Option[PipelineExecutionId]
    def statusValue: Option[
      io.github.vigoo.zioaws.codepipeline.model.PipelineExecutionStatus
    ]
    def statusSummaryValue: Option[PipelineExecutionStatusSummary]
    def artifactRevisionsValue: Option[
      List[io.github.vigoo.zioaws.codepipeline.model.ArtifactRevision.ReadOnly]
    ]
    def pipelineName: ZIO[Any, AwsError, PipelineName] =
      AwsError.unwrapOptionField("pipelineName", pipelineNameValue)
    def pipelineVersion: ZIO[Any, AwsError, PipelineVersion] =
      AwsError.unwrapOptionField("pipelineVersion", pipelineVersionValue)
    def pipelineExecutionId: ZIO[Any, AwsError, PipelineExecutionId] = AwsError
      .unwrapOptionField("pipelineExecutionId", pipelineExecutionIdValue)
    def status: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.codepipeline.model.PipelineExecutionStatus
    ] = AwsError.unwrapOptionField("status", statusValue)
    def statusSummary: ZIO[Any, AwsError, PipelineExecutionStatusSummary] =
      AwsError.unwrapOptionField("statusSummary", statusSummaryValue)
    def artifactRevisions: ZIO[Any, AwsError, List[
      io.github.vigoo.zioaws.codepipeline.model.ArtifactRevision.ReadOnly
    ]] = AwsError.unwrapOptionField("artifactRevisions", artifactRevisionsValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.codepipeline.model.PipelineExecution
  ) extends io.github.vigoo.zioaws.codepipeline.model.PipelineExecution.ReadOnly {
    override def pipelineNameValue: Option[PipelineName] =
      scala.Option(impl.pipelineName()).map(value => value: PipelineName)
    override def pipelineVersionValue: Option[PipelineVersion] =
      scala.Option(impl.pipelineVersion()).map(value => value: PipelineVersion)
    override def pipelineExecutionIdValue: Option[PipelineExecutionId] = scala
      .Option(impl.pipelineExecutionId())
      .map(value => value: PipelineExecutionId)
    override def statusValue: Option[
      io.github.vigoo.zioaws.codepipeline.model.PipelineExecutionStatus
    ] = scala
      .Option(impl.status())
      .map(value =>
        io.github.vigoo.zioaws.codepipeline.model.PipelineExecutionStatus
          .wrap(value)
      )
    override def statusSummaryValue: Option[PipelineExecutionStatusSummary] =
      scala
        .Option(impl.statusSummary())
        .map(value => value: PipelineExecutionStatusSummary)
    override def artifactRevisionsValue: Option[
      List[io.github.vigoo.zioaws.codepipeline.model.ArtifactRevision.ReadOnly]
    ] = scala
      .Option(impl.artifactRevisions())
      .map(value =>
        value.asScala.map { item =>
          io.github.vigoo.zioaws.codepipeline.model.ArtifactRevision.wrap(item)
        }.toList
      )
  }
  def wrap(
      impl: software.amazon.awssdk.services.codepipeline.model.PipelineExecution
  ): io.github.vigoo.zioaws.codepipeline.model.PipelineExecution.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy