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

zio.aws.cloudwatchevents.model.InputTransformer.scala Maven / Gradle / Ivy

The newest version!
package zio.aws.cloudwatchevents.model
import zio.ZIO
import zio.aws.core.{AwsError, BuilderHelper}
import zio.prelude.data.Optional
import zio.aws.cloudwatchevents.model.primitives.{
  TransformerInput,
  TargetInputPath,
  InputTransformerPathKey
}
import scala.jdk.CollectionConverters.*
final case class InputTransformer(
    inputPathsMap: Optional[Map[InputTransformerPathKey, TargetInputPath]] =
      Optional.Absent,
    inputTemplate: TransformerInput
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.cloudwatchevents.model.InputTransformer = {
    import InputTransformer.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.cloudwatchevents.model.InputTransformer
      .builder()
      .optionallyWith(
        inputPathsMap.map(value =>
          value
            .map({ case (key, value) =>
              (InputTransformerPathKey
                .unwrap(key): java.lang.String) -> (TargetInputPath
                .unwrap(value): java.lang.String)
            })
            .asJava
        )
      )(_.inputPathsMap)
      .inputTemplate(TransformerInput.unwrap(inputTemplate): java.lang.String)
      .build()
  }
  def asReadOnly: zio.aws.cloudwatchevents.model.InputTransformer.ReadOnly =
    zio.aws.cloudwatchevents.model.InputTransformer.wrap(buildAwsValue())
}
object InputTransformer {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.cloudwatchevents.model.InputTransformer
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.cloudwatchevents.model.InputTransformer =
      zio.aws.cloudwatchevents.model
        .InputTransformer(inputPathsMap.map(value => value), inputTemplate)
    def inputPathsMap: Optional[Map[InputTransformerPathKey, TargetInputPath]]
    def inputTemplate: TransformerInput
    def getInputPathsMap
        : ZIO[Any, AwsError, Map[InputTransformerPathKey, TargetInputPath]] =
      AwsError.unwrapOptionField("inputPathsMap", inputPathsMap)
    def getInputTemplate: ZIO[Any, Nothing, TransformerInput] =
      ZIO.succeed(inputTemplate)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.cloudwatchevents.model.InputTransformer
  ) extends zio.aws.cloudwatchevents.model.InputTransformer.ReadOnly {
    override val inputPathsMap
        : Optional[Map[InputTransformerPathKey, TargetInputPath]] =
      zio.aws.core.internal
        .optionalFromNullable(impl.inputPathsMap())
        .map(value =>
          value.asScala
            .map({ case (key, value) =>
              zio.aws.cloudwatchevents.model.primitives.InputTransformerPathKey(
                key
              ) -> zio.aws.cloudwatchevents.model.primitives
                .TargetInputPath(value)
            })
            .toMap
        )
    override val inputTemplate: TransformerInput =
      zio.aws.cloudwatchevents.model.primitives
        .TransformerInput(impl.inputTemplate())
  }
  def wrap(
      impl: software.amazon.awssdk.services.cloudwatchevents.model.InputTransformer
  ): zio.aws.cloudwatchevents.model.InputTransformer.ReadOnly = new Wrapper(
    impl
  )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy