
io.github.vigoo.zioaws.codepipeline.model.PipelineDeclaration.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.{
PipelineVersion,
AWSRegionName,
RoleArn,
PipelineName
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class PipelineDeclaration(
name: PipelineName,
roleArn: RoleArn,
artifactStore: Option[
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore
] = None,
artifactStores: Option[Map[
AWSRegionName,
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore
]] = None,
stages: Iterable[
io.github.vigoo.zioaws.codepipeline.model.StageDeclaration
],
version: Option[PipelineVersion] = None
) {
def buildAwsValue()
: software.amazon.awssdk.services.codepipeline.model.PipelineDeclaration = {
import PipelineDeclaration.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.codepipeline.model.PipelineDeclaration
.builder()
.name(name: java.lang.String)
.roleArn(roleArn: java.lang.String)
.optionallyWith(artifactStore.map(value => value.buildAwsValue()))(
_.artifactStore
)
.optionallyWith(
artifactStores.map(value =>
value
.map({ case (key, value) =>
(key: java.lang.String) -> value.buildAwsValue()
})
.asJava
)
)(_.artifactStores)
.stages(stages.map { item =>
item.buildAwsValue()
}.asJavaCollection)
.optionallyWith(version.map(value => value: Integer))(_.version)
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.codepipeline.model.PipelineDeclaration.ReadOnly =
io.github.vigoo.zioaws.codepipeline.model.PipelineDeclaration
.wrap(buildAwsValue())
}
object PipelineDeclaration {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.codepipeline.model.PipelineDeclaration
] = BuilderHelper.apply
trait ReadOnly {
def editable
: io.github.vigoo.zioaws.codepipeline.model.PipelineDeclaration =
io.github.vigoo.zioaws.codepipeline.model.PipelineDeclaration(
nameValue,
roleArnValue,
artifactStoreValue.map(value => value.editable),
artifactStoresValue.map(value =>
value.map({ case (key, value) =>
key -> value.editable
})
),
stagesValue.map { item =>
item.editable
},
versionValue.map(value => value)
)
def nameValue: PipelineName
def roleArnValue: RoleArn
def artifactStoreValue: Option[
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore.ReadOnly
]
def artifactStoresValue: Option[Map[
AWSRegionName,
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore.ReadOnly
]]
def stagesValue: List[
io.github.vigoo.zioaws.codepipeline.model.StageDeclaration.ReadOnly
]
def versionValue: Option[PipelineVersion]
def name: ZIO[Any, Nothing, PipelineName] = ZIO.succeed(nameValue)
def roleArn: ZIO[Any, Nothing, RoleArn] = ZIO.succeed(roleArnValue)
def artifactStore: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore.ReadOnly
] = AwsError.unwrapOptionField("artifactStore", artifactStoreValue)
def artifactStores: ZIO[Any, AwsError, Map[
AWSRegionName,
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore.ReadOnly
]] = AwsError.unwrapOptionField("artifactStores", artifactStoresValue)
def stages: ZIO[Any, Nothing, List[
io.github.vigoo.zioaws.codepipeline.model.StageDeclaration.ReadOnly
]] = ZIO.succeed(stagesValue)
def version: ZIO[Any, AwsError, PipelineVersion] =
AwsError.unwrapOptionField("version", versionValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.codepipeline.model.PipelineDeclaration
) extends io.github.vigoo.zioaws.codepipeline.model.PipelineDeclaration.ReadOnly {
override def nameValue: PipelineName = impl.name(): PipelineName
override def roleArnValue: RoleArn = impl.roleArn(): RoleArn
override def artifactStoreValue: Option[
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore.ReadOnly
] = scala
.Option(impl.artifactStore())
.map(value =>
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore.wrap(value)
)
override def artifactStoresValue: Option[Map[
AWSRegionName,
io.github.vigoo.zioaws.codepipeline.model.ArtifactStore.ReadOnly
]] = scala
.Option(impl.artifactStores())
.map(value =>
value.asScala
.map({ case (key, value) =>
(key: AWSRegionName) -> io.github.vigoo.zioaws.codepipeline.model.ArtifactStore
.wrap(value)
})
.toMap
)
override def stagesValue: List[
io.github.vigoo.zioaws.codepipeline.model.StageDeclaration.ReadOnly
] = impl
.stages()
.asScala
.map { item =>
io.github.vigoo.zioaws.codepipeline.model.StageDeclaration.wrap(item)
}
.toList
override def versionValue: Option[PipelineVersion] =
scala.Option(impl.version()).map(value => value: PipelineVersion)
}
def wrap(
impl: software.amazon.awssdk.services.codepipeline.model.PipelineDeclaration
): io.github.vigoo.zioaws.codepipeline.model.PipelineDeclaration.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy