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

io.github.vigoo.zioaws.lambda.model.CreateFunctionRequest.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.lambda.model
import scala.jdk.CollectionConverters.*
import java.time.Instant
import zio.{ Chunk, ZIO }
import software.amazon.awssdk.core.SdkBytes
final case class CreateFunctionRequest(functionName: primitives.FunctionName, runtime: scala.Option[Runtime] = None, role: primitives.RoleArn, handler: scala.Option[primitives.Handler] = None, code: FunctionCode, description: scala.Option[primitives.Description] = None, timeout: scala.Option[primitives.Timeout] = None, memorySize: scala.Option[primitives.MemorySize] = None, publish: scala.Option[Boolean] = None, vpcConfig: scala.Option[VpcConfig] = None, packageType: scala.Option[PackageType] = None, deadLetterConfig: scala.Option[DeadLetterConfig] = None, environment: scala.Option[Environment] = None, kmsKeyArn: scala.Option[primitives.KMSKeyArn] = None, tracingConfig: scala.Option[TracingConfig] = None, tags: scala.Option[Map[primitives.TagKey, primitives.TagValue]] = None, layers: scala.Option[Iterable[primitives.LayerVersionArn]] = None, fileSystemConfigs: scala.Option[Iterable[FileSystemConfig]] = None, imageConfig: scala.Option[ImageConfig] = None, codeSigningConfigArn: scala.Option[primitives.CodeSigningConfigArn] = None) {
  def buildAwsValue(): software.amazon.awssdk.services.lambda.model.CreateFunctionRequest = {
    import CreateFunctionRequest.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.lambda.model.CreateFunctionRequest.builder().functionName(functionName: java.lang.String).optionallyWith(runtime.map(value => value.unwrap))(_.runtime).role(role: java.lang.String).optionallyWith(handler.map(value => value: java.lang.String))(_.handler).code(code.buildAwsValue()).optionallyWith(description.map(value => value: java.lang.String))(_.description).optionallyWith(timeout.map(value => value: java.lang.Integer))(_.timeout).optionallyWith(memorySize.map(value => value: java.lang.Integer))(_.memorySize).optionallyWith(publish.map(value => value: java.lang.Boolean))(_.publish).optionallyWith(vpcConfig.map(value => value.buildAwsValue()))(_.vpcConfig).optionallyWith(packageType.map(value => value.unwrap))(_.packageType).optionallyWith(deadLetterConfig.map(value => value.buildAwsValue()))(_.deadLetterConfig).optionallyWith(environment.map(value => value.buildAwsValue()))(_.environment).optionallyWith(kmsKeyArn.map(value => value: java.lang.String))(_.kmsKeyArn).optionallyWith(tracingConfig.map(value => value.buildAwsValue()))(_.tracingConfig).optionallyWith(tags.map(value => value.map({
      case (key, value) =>
        (key: java.lang.String) -> (value: java.lang.String)
    }).asJava))(_.tags).optionallyWith(layers.map(value => value.map { item => 
      item: java.lang.String
    }.asJavaCollection))(_.layers).optionallyWith(fileSystemConfigs.map(value => value.map { item => 
      item.buildAwsValue()
    }.asJavaCollection))(_.fileSystemConfigs).optionallyWith(imageConfig.map(value => value.buildAwsValue()))(_.imageConfig).optionallyWith(codeSigningConfigArn.map(value => value: java.lang.String))(_.codeSigningConfigArn).build()
  }
  def asReadOnly: CreateFunctionRequest.ReadOnly = CreateFunctionRequest.wrap(buildAwsValue())
}
object CreateFunctionRequest {
  private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.lambda.model.CreateFunctionRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
  trait ReadOnly {
    def editable: CreateFunctionRequest = CreateFunctionRequest(functionNameValue, runtimeValue.map(value => value), roleValue, handlerValue.map(value => value), codeValue.editable, descriptionValue.map(value => value), timeoutValue.map(value => value), memorySizeValue.map(value => value), publishValue.map(value => value), vpcConfigValue.map(value => value.editable), packageTypeValue.map(value => value), deadLetterConfigValue.map(value => value.editable), environmentValue.map(value => value.editable), kmsKeyArnValue.map(value => value), tracingConfigValue.map(value => value.editable), tagsValue.map(value => value), layersValue.map(value => value), fileSystemConfigsValue.map(value => value.map { item => 
      item.editable
    }), imageConfigValue.map(value => value.editable), codeSigningConfigArnValue.map(value => value))
    def functionNameValue: primitives.FunctionName
    def runtimeValue: scala.Option[Runtime]
    def roleValue: primitives.RoleArn
    def handlerValue: scala.Option[primitives.Handler]
    def codeValue: FunctionCode.ReadOnly
    def descriptionValue: scala.Option[primitives.Description]
    def timeoutValue: scala.Option[primitives.Timeout]
    def memorySizeValue: scala.Option[primitives.MemorySize]
    def publishValue: scala.Option[Boolean]
    def vpcConfigValue: scala.Option[VpcConfig.ReadOnly]
    def packageTypeValue: scala.Option[PackageType]
    def deadLetterConfigValue: scala.Option[DeadLetterConfig.ReadOnly]
    def environmentValue: scala.Option[Environment.ReadOnly]
    def kmsKeyArnValue: scala.Option[primitives.KMSKeyArn]
    def tracingConfigValue: scala.Option[TracingConfig.ReadOnly]
    def tagsValue: scala.Option[Map[primitives.TagKey, primitives.TagValue]]
    def layersValue: scala.Option[List[primitives.LayerVersionArn]]
    def fileSystemConfigsValue: scala.Option[List[FileSystemConfig.ReadOnly]]
    def imageConfigValue: scala.Option[ImageConfig.ReadOnly]
    def codeSigningConfigArnValue: scala.Option[primitives.CodeSigningConfigArn]
    def functionName: ZIO[Any, Nothing, primitives.FunctionName] = ZIO.succeed(functionNameValue)
    def runtime: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Runtime] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("runtime", runtimeValue)
    def role: ZIO[Any, Nothing, primitives.RoleArn] = ZIO.succeed(roleValue)
    def handler: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Handler] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("handler", handlerValue)
    def code: ZIO[Any, Nothing, FunctionCode.ReadOnly] = ZIO.succeed(codeValue)
    def description: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Description] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("description", descriptionValue)
    def timeout: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Timeout] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("timeout", timeoutValue)
    def memorySize: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.MemorySize] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("memorySize", memorySizeValue)
    def publish: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Boolean] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("publish", publishValue)
    def vpcConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, VpcConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("vpcConfig", vpcConfigValue)
    def packageType: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, PackageType] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("packageType", packageTypeValue)
    def deadLetterConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, DeadLetterConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("deadLetterConfig", deadLetterConfigValue)
    def environment: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Environment.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("environment", environmentValue)
    def kmsKeyArn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.KMSKeyArn] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("kmsKeyArn", kmsKeyArnValue)
    def tracingConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, TracingConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("tracingConfig", tracingConfigValue)
    def tags: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, Map[primitives.TagKey, primitives.TagValue]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("tags", tagsValue)
    def layers: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[primitives.LayerVersionArn]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("layers", layersValue)
    def fileSystemConfigs: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, List[FileSystemConfig.ReadOnly]] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("fileSystemConfigs", fileSystemConfigsValue)
    def imageConfig: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, ImageConfig.ReadOnly] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("imageConfig", imageConfigValue)
    def codeSigningConfigArn: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.CodeSigningConfigArn] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("codeSigningConfigArn", codeSigningConfigArnValue)
  }
  private class Wrapper(impl: software.amazon.awssdk.services.lambda.model.CreateFunctionRequest) extends CreateFunctionRequest.ReadOnly {
    override def functionNameValue: primitives.FunctionName = impl.functionName(): primitives.FunctionName
    override def runtimeValue: scala.Option[Runtime] = scala.Option(impl.runtime()).map(value => Runtime.wrap(value))
    override def roleValue: primitives.RoleArn = impl.role(): primitives.RoleArn
    override def handlerValue: scala.Option[primitives.Handler] = scala.Option(impl.handler()).map(value => value: primitives.Handler)
    override def codeValue: FunctionCode.ReadOnly = FunctionCode.wrap(impl.code())
    override def descriptionValue: scala.Option[primitives.Description] = scala.Option(impl.description()).map(value => value: primitives.Description)
    override def timeoutValue: scala.Option[primitives.Timeout] = scala.Option(impl.timeout()).map(value => value: primitives.Timeout)
    override def memorySizeValue: scala.Option[primitives.MemorySize] = scala.Option(impl.memorySize()).map(value => value: primitives.MemorySize)
    override def publishValue: scala.Option[Boolean] = scala.Option(impl.publish()).map(value => value: Boolean)
    override def vpcConfigValue: scala.Option[VpcConfig.ReadOnly] = scala.Option(impl.vpcConfig()).map(value => VpcConfig.wrap(value))
    override def packageTypeValue: scala.Option[PackageType] = scala.Option(impl.packageType()).map(value => PackageType.wrap(value))
    override def deadLetterConfigValue: scala.Option[DeadLetterConfig.ReadOnly] = scala.Option(impl.deadLetterConfig()).map(value => DeadLetterConfig.wrap(value))
    override def environmentValue: scala.Option[Environment.ReadOnly] = scala.Option(impl.environment()).map(value => Environment.wrap(value))
    override def kmsKeyArnValue: scala.Option[primitives.KMSKeyArn] = scala.Option(impl.kmsKeyArn()).map(value => value: primitives.KMSKeyArn)
    override def tracingConfigValue: scala.Option[TracingConfig.ReadOnly] = scala.Option(impl.tracingConfig()).map(value => TracingConfig.wrap(value))
    override def tagsValue: scala.Option[Map[primitives.TagKey, primitives.TagValue]] = scala.Option(impl.tags()).map(value => value.asScala.map({
      case (key, value) =>
        (key: primitives.TagKey) -> (value: primitives.TagValue)
    }).toMap)
    override def layersValue: scala.Option[List[primitives.LayerVersionArn]] = scala.Option(impl.layers()).map(value => value.asScala.map { item => 
      item: primitives.LayerVersionArn
    }.toList)
    override def fileSystemConfigsValue: scala.Option[List[FileSystemConfig.ReadOnly]] = scala.Option(impl.fileSystemConfigs()).map(value => value.asScala.map { item => 
      FileSystemConfig.wrap(item)
    }.toList)
    override def imageConfigValue: scala.Option[ImageConfig.ReadOnly] = scala.Option(impl.imageConfig()).map(value => ImageConfig.wrap(value))
    override def codeSigningConfigArnValue: scala.Option[primitives.CodeSigningConfigArn] = scala.Option(impl.codeSigningConfigArn()).map(value => value: primitives.CodeSigningConfigArn)
  }
  def wrap(impl: software.amazon.awssdk.services.lambda.model.CreateFunctionRequest): ReadOnly = new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy