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

com.pulumi.awsnative.lambda.kotlin.FunctionArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.lambda.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.lambda.FunctionArgs.builder
import com.pulumi.awsnative.lambda.kotlin.enums.FunctionArchitecturesItem
import com.pulumi.awsnative.lambda.kotlin.enums.FunctionPackageType
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionCodeArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionCodeArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionDeadLetterConfigArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionDeadLetterConfigArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionEnvironmentArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionEnvironmentArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionEphemeralStorageArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionEphemeralStorageArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionFileSystemConfigArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionFileSystemConfigArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionImageConfigArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionImageConfigArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionLoggingConfigArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionLoggingConfigArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionRuntimeManagementConfigArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionRuntimeManagementConfigArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionSnapStartArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionSnapStartArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionTracingConfigArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionTracingConfigArgsBuilder
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionVpcConfigArgs
import com.pulumi.awsnative.lambda.kotlin.inputs.FunctionVpcConfigArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.
 *  You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties.
 *  You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. For a Python example, see [Deploy Python Lambda functions with .zip file archives](https://docs.aws.amazon.com/lambda/latest/dg/python-package.html).
 *  You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
 *  Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.
 *  For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*
 * ## Example Usage
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * ### Example
 * No Java example available.
 * @property architectures The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
 * @property code The code for the function.
 * @property codeSigningConfigArn To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
 * @property deadLetterConfig A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).
 * @property description A description of the function.
 * @property environment Environment variables that are accessible from function code during execution.
 * @property ephemeralStorage The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
 * @property fileSystemConfigs Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
 *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
 * @property functionName The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one.
 *  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
 * @property handler The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html).
 * @property imageConfig Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms).
 * @property kmsKeyArn The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
 * @property layers A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version.
 * @property loggingConfig The function's Amazon CloudWatch Logs configuration settings.
 * @property memorySize The amount of [memory available to the function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase.
 * @property packageType The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
 * @property reservedConcurrentExecutions The number of simultaneous executions to reserve for the function.
 * @property role The Amazon Resource Name (ARN) of the function's execution role.
 * @property runtime The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image.
 *  The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see [Runtime use after deprecation](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels).
 *  For a list of all currently supported runtimes, see [Supported runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported).
 * @property runtimeManagementConfig Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html).
 * @property snapStart The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting.
 * @property tags A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
 * @property timeout The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html).
 * @property tracingConfig Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
 * @property vpcConfig For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see [Configuring a Lambda function to access resources in a VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).
 */
public data class FunctionArgs(
    public val architectures: Output>? = null,
    public val code: Output? = null,
    public val codeSigningConfigArn: Output? = null,
    public val deadLetterConfig: Output? = null,
    public val description: Output? = null,
    public val environment: Output? = null,
    public val ephemeralStorage: Output? = null,
    public val fileSystemConfigs: Output>? = null,
    public val functionName: Output? = null,
    public val handler: Output? = null,
    public val imageConfig: Output? = null,
    public val kmsKeyArn: Output? = null,
    public val layers: Output>? = null,
    public val loggingConfig: Output? = null,
    public val memorySize: Output? = null,
    public val packageType: Output? = null,
    public val reservedConcurrentExecutions: Output? = null,
    public val role: Output? = null,
    public val runtime: Output? = null,
    public val runtimeManagementConfig: Output? = null,
    public val snapStart: Output? = null,
    public val tags: Output>? = null,
    public val timeout: Output? = null,
    public val tracingConfig: Output? = null,
    public val vpcConfig: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.lambda.FunctionArgs =
        com.pulumi.awsnative.lambda.FunctionArgs.builder()
            .architectures(
                architectures?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .code(code?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .codeSigningConfigArn(codeSigningConfigArn?.applyValue({ args0 -> args0 }))
            .deadLetterConfig(deadLetterConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .environment(environment?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .ephemeralStorage(ephemeralStorage?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .fileSystemConfigs(
                fileSystemConfigs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .functionName(functionName?.applyValue({ args0 -> args0 }))
            .handler(handler?.applyValue({ args0 -> args0 }))
            .imageConfig(imageConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .kmsKeyArn(kmsKeyArn?.applyValue({ args0 -> args0 }))
            .layers(layers?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .loggingConfig(loggingConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .memorySize(memorySize?.applyValue({ args0 -> args0 }))
            .packageType(packageType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .reservedConcurrentExecutions(reservedConcurrentExecutions?.applyValue({ args0 -> args0 }))
            .role(role?.applyValue({ args0 -> args0 }))
            .runtime(runtime?.applyValue({ args0 -> args0 }))
            .runtimeManagementConfig(
                runtimeManagementConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .snapStart(snapStart?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .timeout(timeout?.applyValue({ args0 -> args0 }))
            .tracingConfig(tracingConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .vpcConfig(vpcConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [FunctionArgs].
 */
@PulumiTagMarker
public class FunctionArgsBuilder internal constructor() {
    private var architectures: Output>? = null

    private var code: Output? = null

    private var codeSigningConfigArn: Output? = null

    private var deadLetterConfig: Output? = null

    private var description: Output? = null

    private var environment: Output? = null

    private var ephemeralStorage: Output? = null

    private var fileSystemConfigs: Output>? = null

    private var functionName: Output? = null

    private var handler: Output? = null

    private var imageConfig: Output? = null

    private var kmsKeyArn: Output? = null

    private var layers: Output>? = null

    private var loggingConfig: Output? = null

    private var memorySize: Output? = null

    private var packageType: Output? = null

    private var reservedConcurrentExecutions: Output? = null

    private var role: Output? = null

    private var runtime: Output? = null

    private var runtimeManagementConfig: Output? = null

    private var snapStart: Output? = null

    private var tags: Output>? = null

    private var timeout: Output? = null

    private var tracingConfig: Output? = null

    private var vpcConfig: Output? = null

    /**
     * @param value The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
     */
    @JvmName("pbxdoujybunathhc")
    public suspend fun architectures(`value`: Output>) {
        this.architectures = value
    }

    @JvmName("rnsyoliwishjspnf")
    public suspend fun architectures(vararg values: Output) {
        this.architectures = Output.all(values.asList())
    }

    /**
     * @param values The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
     */
    @JvmName("ywibqbkkrusvjmsn")
    public suspend fun architectures(values: List>) {
        this.architectures = Output.all(values)
    }

    /**
     * @param value The code for the function.
     */
    @JvmName("oijdobcbytbdjsfn")
    public suspend fun code(`value`: Output) {
        this.code = value
    }

    /**
     * @param value To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
     */
    @JvmName("aptafpkulwcpaecx")
    public suspend fun codeSigningConfigArn(`value`: Output) {
        this.codeSigningConfigArn = value
    }

    /**
     * @param value A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).
     */
    @JvmName("rmoqlhxooflwvxxx")
    public suspend fun deadLetterConfig(`value`: Output) {
        this.deadLetterConfig = value
    }

    /**
     * @param value A description of the function.
     */
    @JvmName("wgjwyebmodrvlcql")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Environment variables that are accessible from function code during execution.
     */
    @JvmName("mndqrevhlhuykwal")
    public suspend fun environment(`value`: Output) {
        this.environment = value
    }

    /**
     * @param value The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
     */
    @JvmName("eynyxclxhwwkolxd")
    public suspend fun ephemeralStorage(`value`: Output) {
        this.ephemeralStorage = value
    }

    /**
     * @param value Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
     *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
     */
    @JvmName("ncvogirkheylapng")
    public suspend fun fileSystemConfigs(`value`: Output>) {
        this.fileSystemConfigs = value
    }

    @JvmName("iwcrhlglxnmriqnw")
    public suspend fun fileSystemConfigs(vararg values: Output) {
        this.fileSystemConfigs = Output.all(values.asList())
    }

    /**
     * @param values Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
     *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
     */
    @JvmName("leafdrowmxrjmyic")
    public suspend fun fileSystemConfigs(values: List>) {
        this.fileSystemConfigs = Output.all(values)
    }

    /**
     * @param value The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one.
     *  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
     */
    @JvmName("kyhinniacqajpoxw")
    public suspend fun functionName(`value`: Output) {
        this.functionName = value
    }

    /**
     * @param value The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html).
     */
    @JvmName("xxuagridxujpptjh")
    public suspend fun handler(`value`: Output) {
        this.handler = value
    }

    /**
     * @param value Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms).
     */
    @JvmName("mukelnrcaplpdwen")
    public suspend fun imageConfig(`value`: Output) {
        this.imageConfig = value
    }

    /**
     * @param value The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
     */
    @JvmName("jpptxeclotdeeakl")
    public suspend fun kmsKeyArn(`value`: Output) {
        this.kmsKeyArn = value
    }

    /**
     * @param value A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version.
     */
    @JvmName("dbkqkxiundprebnd")
    public suspend fun layers(`value`: Output>) {
        this.layers = value
    }

    @JvmName("yjddjcbnqecpcwqd")
    public suspend fun layers(vararg values: Output) {
        this.layers = Output.all(values.asList())
    }

    /**
     * @param values A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version.
     */
    @JvmName("qmfsgoquggimcbhh")
    public suspend fun layers(values: List>) {
        this.layers = Output.all(values)
    }

    /**
     * @param value The function's Amazon CloudWatch Logs configuration settings.
     */
    @JvmName("pkkeutluemsjppmf")
    public suspend fun loggingConfig(`value`: Output) {
        this.loggingConfig = value
    }

    /**
     * @param value The amount of [memory available to the function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase.
     */
    @JvmName("jbugypqdsejoklyc")
    public suspend fun memorySize(`value`: Output) {
        this.memorySize = value
    }

    /**
     * @param value The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
     */
    @JvmName("eyvubpkxophempfr")
    public suspend fun packageType(`value`: Output) {
        this.packageType = value
    }

    /**
     * @param value The number of simultaneous executions to reserve for the function.
     */
    @JvmName("cycaurnwqxyfrdyr")
    public suspend fun reservedConcurrentExecutions(`value`: Output) {
        this.reservedConcurrentExecutions = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the function's execution role.
     */
    @JvmName("ppgphvqxqbedxqlc")
    public suspend fun role(`value`: Output) {
        this.role = value
    }

    /**
     * @param value The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image.
     *  The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see [Runtime use after deprecation](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels).
     *  For a list of all currently supported runtimes, see [Supported runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported).
     */
    @JvmName("voxstqdvlagtrwhi")
    public suspend fun runtime(`value`: Output) {
        this.runtime = value
    }

    /**
     * @param value Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html).
     */
    @JvmName("ortniogilcgivmnh")
    public suspend fun runtimeManagementConfig(`value`: Output) {
        this.runtimeManagementConfig = value
    }

    /**
     * @param value The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting.
     */
    @JvmName("buxvsoalpjkskevi")
    public suspend fun snapStart(`value`: Output) {
        this.snapStart = value
    }

    /**
     * @param value A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
     */
    @JvmName("oeqpdoptxvmgfyxe")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    @JvmName("dkjknvlocillwpgj")
    public suspend fun tags(vararg values: Output) {
        this.tags = Output.all(values.asList())
    }

    /**
     * @param values A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
     */
    @JvmName("iwwuroxbkmjlocaw")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html).
     */
    @JvmName("nqprrvlesnaxoios")
    public suspend fun timeout(`value`: Output) {
        this.timeout = value
    }

    /**
     * @param value Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
     */
    @JvmName("ueuggrmdefngrhlk")
    public suspend fun tracingConfig(`value`: Output) {
        this.tracingConfig = value
    }

    /**
     * @param value For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see [Configuring a Lambda function to access resources in a VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).
     */
    @JvmName("kviqqhkjmatixtuv")
    public suspend fun vpcConfig(`value`: Output) {
        this.vpcConfig = value
    }

    /**
     * @param value The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
     */
    @JvmName("hielysgjgiimrhcu")
    public suspend fun architectures(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.architectures = mapped
    }

    /**
     * @param values The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
     */
    @JvmName("lkpjsaqoakguhjdk")
    public suspend fun architectures(vararg values: FunctionArchitecturesItem) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.architectures = mapped
    }

    /**
     * @param value The code for the function.
     */
    @JvmName("lcpgxsvmckkoqtgw")
    public suspend fun code(`value`: FunctionCodeArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.code = mapped
    }

    /**
     * @param argument The code for the function.
     */
    @JvmName("qpcenytgcyogrdwr")
    public suspend fun code(argument: suspend FunctionCodeArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionCodeArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.code = mapped
    }

    /**
     * @param value To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
     */
    @JvmName("tgvymivwbrukfbkh")
    public suspend fun codeSigningConfigArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.codeSigningConfigArn = mapped
    }

    /**
     * @param value A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).
     */
    @JvmName("pxymbddwkhoykxke")
    public suspend fun deadLetterConfig(`value`: FunctionDeadLetterConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deadLetterConfig = mapped
    }

    /**
     * @param argument A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).
     */
    @JvmName("lpsqoifdremwcmvo")
    public suspend fun deadLetterConfig(argument: suspend FunctionDeadLetterConfigArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionDeadLetterConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.deadLetterConfig = mapped
    }

    /**
     * @param value A description of the function.
     */
    @JvmName("epqtelwklphxwjmp")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Environment variables that are accessible from function code during execution.
     */
    @JvmName("tqdtfnfwxlbptpgp")
    public suspend fun environment(`value`: FunctionEnvironmentArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.environment = mapped
    }

    /**
     * @param argument Environment variables that are accessible from function code during execution.
     */
    @JvmName("imxirmitjabygsol")
    public suspend fun environment(argument: suspend FunctionEnvironmentArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionEnvironmentArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.environment = mapped
    }

    /**
     * @param value The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
     */
    @JvmName("fqqtpiqxmrbxoipn")
    public suspend fun ephemeralStorage(`value`: FunctionEphemeralStorageArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ephemeralStorage = mapped
    }

    /**
     * @param argument The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
     */
    @JvmName("hiqkhdiifjfugcio")
    public suspend fun ephemeralStorage(argument: suspend FunctionEphemeralStorageArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionEphemeralStorageArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.ephemeralStorage = mapped
    }

    /**
     * @param value Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
     *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
     */
    @JvmName("wyjqovpokwhucxlf")
    public suspend fun fileSystemConfigs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileSystemConfigs = mapped
    }

    /**
     * @param argument Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
     *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
     */
    @JvmName("wuosgejgwgblakpv")
    public suspend fun fileSystemConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            FunctionFileSystemConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.fileSystemConfigs = mapped
    }

    /**
     * @param argument Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
     *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
     */
    @JvmName("lcgijgyjgvkspcjc")
    public suspend fun fileSystemConfigs(vararg argument: suspend FunctionFileSystemConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            FunctionFileSystemConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.fileSystemConfigs = mapped
    }

    /**
     * @param argument Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
     *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
     */
    @JvmName("gbanmplaabqxhsvw")
    public suspend fun fileSystemConfigs(argument: suspend FunctionFileSystemConfigArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            FunctionFileSystemConfigArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.fileSystemConfigs = mapped
    }

    /**
     * @param values Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
     *  For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html).
     */
    @JvmName("krfvbwcwhtplvlye")
    public suspend fun fileSystemConfigs(vararg values: FunctionFileSystemConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.fileSystemConfigs = mapped
    }

    /**
     * @param value The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one.
     *  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
     */
    @JvmName("pdhmjevhgeaxaxlf")
    public suspend fun functionName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.functionName = mapped
    }

    /**
     * @param value The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html).
     */
    @JvmName("ahcxsrkoygtglgbe")
    public suspend fun handler(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.handler = mapped
    }

    /**
     * @param value Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms).
     */
    @JvmName("hhelfwjfswucdlgs")
    public suspend fun imageConfig(`value`: FunctionImageConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.imageConfig = mapped
    }

    /**
     * @param argument Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms).
     */
    @JvmName("pxjcwkdelhaapaxn")
    public suspend fun imageConfig(argument: suspend FunctionImageConfigArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionImageConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.imageConfig = mapped
    }

    /**
     * @param value The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
     */
    @JvmName("xwyfcskehmkkrqwn")
    public suspend fun kmsKeyArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyArn = mapped
    }

    /**
     * @param value A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version.
     */
    @JvmName("oufgayrpjdmsbqii")
    public suspend fun layers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.layers = mapped
    }

    /**
     * @param values A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version.
     */
    @JvmName("pqkntoxnlysqkwdg")
    public suspend fun layers(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.layers = mapped
    }

    /**
     * @param value The function's Amazon CloudWatch Logs configuration settings.
     */
    @JvmName("ldnmnmwuemwupoeb")
    public suspend fun loggingConfig(`value`: FunctionLoggingConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loggingConfig = mapped
    }

    /**
     * @param argument The function's Amazon CloudWatch Logs configuration settings.
     */
    @JvmName("qbbbiexpvyxeoped")
    public suspend fun loggingConfig(argument: suspend FunctionLoggingConfigArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionLoggingConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.loggingConfig = mapped
    }

    /**
     * @param value The amount of [memory available to the function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase.
     */
    @JvmName("oetdeiajdyuhlinr")
    public suspend fun memorySize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.memorySize = mapped
    }

    /**
     * @param value The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
     */
    @JvmName("hajnopfkdodxjgpj")
    public suspend fun packageType(`value`: FunctionPackageType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.packageType = mapped
    }

    /**
     * @param value The number of simultaneous executions to reserve for the function.
     */
    @JvmName("uuqscoqakbedwlen")
    public suspend fun reservedConcurrentExecutions(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reservedConcurrentExecutions = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the function's execution role.
     */
    @JvmName("ikdqtfufflqnlcls")
    public suspend fun role(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.role = mapped
    }

    /**
     * @param value The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image.
     *  The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see [Runtime use after deprecation](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels).
     *  For a list of all currently supported runtimes, see [Supported runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported).
     */
    @JvmName("mqaeufifdkercpmv")
    public suspend fun runtime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.runtime = mapped
    }

    /**
     * @param value Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html).
     */
    @JvmName("jujrorjcykcuyfhs")
    public suspend fun runtimeManagementConfig(`value`: FunctionRuntimeManagementConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.runtimeManagementConfig = mapped
    }

    /**
     * @param argument Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html).
     */
    @JvmName("sardbvcvkvihwlef")
    public suspend fun runtimeManagementConfig(argument: suspend FunctionRuntimeManagementConfigArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionRuntimeManagementConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.runtimeManagementConfig = mapped
    }

    /**
     * @param value The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting.
     */
    @JvmName("hvmjknchemgwouha")
    public suspend fun snapStart(`value`: FunctionSnapStartArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.snapStart = mapped
    }

    /**
     * @param argument The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting.
     */
    @JvmName("ucuevlwasmgwsvxj")
    public suspend fun snapStart(argument: suspend FunctionSnapStartArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionSnapStartArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.snapStart = mapped
    }

    /**
     * @param value A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
     */
    @JvmName("iigtwwrrimybginw")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
     */
    @JvmName("prcvmcluoyoqalod")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
     */
    @JvmName("ffsurmhlmrkfhuxu")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
     */
    @JvmName("bcisjlmuipgbijwd")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.
     */
    @JvmName("dogllafanwoerovk")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html).
     */
    @JvmName("pxejjerovyuxeuiq")
    public suspend fun timeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeout = mapped
    }

    /**
     * @param value Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
     */
    @JvmName("jtyacivhsceujshd")
    public suspend fun tracingConfig(`value`: FunctionTracingConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tracingConfig = mapped
    }

    /**
     * @param argument Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
     */
    @JvmName("yrveayodlacfjatk")
    public suspend fun tracingConfig(argument: suspend FunctionTracingConfigArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionTracingConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.tracingConfig = mapped
    }

    /**
     * @param value For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see [Configuring a Lambda function to access resources in a VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).
     */
    @JvmName("xlauoagpdtlqgsan")
    public suspend fun vpcConfig(`value`: FunctionVpcConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcConfig = mapped
    }

    /**
     * @param argument For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see [Configuring a Lambda function to access resources in a VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).
     */
    @JvmName("hpyvyhmpluuhwvbg")
    public suspend fun vpcConfig(argument: suspend FunctionVpcConfigArgsBuilder.() -> Unit) {
        val toBeMapped = FunctionVpcConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcConfig = mapped
    }

    internal fun build(): FunctionArgs = FunctionArgs(
        architectures = architectures,
        code = code,
        codeSigningConfigArn = codeSigningConfigArn,
        deadLetterConfig = deadLetterConfig,
        description = description,
        environment = environment,
        ephemeralStorage = ephemeralStorage,
        fileSystemConfigs = fileSystemConfigs,
        functionName = functionName,
        handler = handler,
        imageConfig = imageConfig,
        kmsKeyArn = kmsKeyArn,
        layers = layers,
        loggingConfig = loggingConfig,
        memorySize = memorySize,
        packageType = packageType,
        reservedConcurrentExecutions = reservedConcurrentExecutions,
        role = role,
        runtime = runtime,
        runtimeManagementConfig = runtimeManagementConfig,
        snapStart = snapStart,
        tags = tags,
        timeout = timeout,
        tracingConfig = tracingConfig,
        vpcConfig = vpcConfig,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy