
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationProperty.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.codepipeline.model
import zio.ZIO
import io.github.vigoo.zioaws.codepipeline.model.primitives.{
Description,
ActionConfigurationKey
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class ActionConfigurationProperty(
name: ActionConfigurationKey,
required: Boolean,
key: Boolean,
secret: Boolean,
queryable: Option[Boolean] = None,
description: Option[Description] = None,
`type`: Option[
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationPropertyType
] = None
) {
def buildAwsValue()
: software.amazon.awssdk.services.codepipeline.model.ActionConfigurationProperty = {
import ActionConfigurationProperty.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.codepipeline.model.ActionConfigurationProperty
.builder()
.name(name: java.lang.String)
.required(required: java.lang.Boolean)
.key(key: java.lang.Boolean)
.secret(secret: java.lang.Boolean)
.optionallyWith(queryable.map(value => value: java.lang.Boolean))(
_.queryable
)
.optionallyWith(description.map(value => value: java.lang.String))(
_.description
)
.optionallyWith(`type`.map(value => value.unwrap))(_.`type`)
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationProperty.ReadOnly =
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationProperty
.wrap(buildAwsValue())
}
object ActionConfigurationProperty {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.codepipeline.model.ActionConfigurationProperty
] = BuilderHelper.apply
trait ReadOnly {
def editable
: io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationProperty =
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationProperty(
nameValue,
requiredValue,
keyValue,
secretValue,
queryableValue.map(value => value),
descriptionValue.map(value => value),
typeValue.map(value => value)
)
def nameValue: ActionConfigurationKey
def requiredValue: Boolean
def keyValue: Boolean
def secretValue: Boolean
def queryableValue: Option[Boolean]
def descriptionValue: Option[Description]
def typeValue: Option[
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationPropertyType
]
def name: ZIO[Any, Nothing, ActionConfigurationKey] = ZIO.succeed(nameValue)
def required: ZIO[Any, Nothing, Boolean] = ZIO.succeed(requiredValue)
def key: ZIO[Any, Nothing, Boolean] = ZIO.succeed(keyValue)
def secret: ZIO[Any, Nothing, Boolean] = ZIO.succeed(secretValue)
def queryable: ZIO[Any, AwsError, Boolean] =
AwsError.unwrapOptionField("queryable", queryableValue)
def description: ZIO[Any, AwsError, Description] =
AwsError.unwrapOptionField("description", descriptionValue)
def `type`: ZIO[
Any,
AwsError,
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationPropertyType
] = AwsError.unwrapOptionField("type", typeValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.codepipeline.model.ActionConfigurationProperty
) extends io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationProperty.ReadOnly {
override def nameValue: ActionConfigurationKey =
impl.name(): ActionConfigurationKey
override def requiredValue: Boolean = impl.required(): Boolean
override def keyValue: Boolean = impl.key(): Boolean
override def secretValue: Boolean = impl.secret(): Boolean
override def queryableValue: Option[Boolean] =
scala.Option(impl.queryable()).map(value => value: Boolean)
override def descriptionValue: Option[Description] =
scala.Option(impl.description()).map(value => value: Description)
override def typeValue: Option[
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationPropertyType
] = scala
.Option(impl.`type`())
.map(value =>
io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationPropertyType
.wrap(value)
)
}
def wrap(
impl: software.amazon.awssdk.services.codepipeline.model.ActionConfigurationProperty
): io.github.vigoo.zioaws.codepipeline.model.ActionConfigurationProperty.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy