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

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