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

com.pulumi.awsnative.emrserverless.kotlin.ApplicationArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 0.122.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.emrserverless.kotlin

import com.pulumi.awsnative.emrserverless.ApplicationArgs.builder
import com.pulumi.awsnative.emrserverless.kotlin.enums.ApplicationArchitecture
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationAutoStartConfigurationArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationAutoStartConfigurationArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationAutoStopConfigurationArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationAutoStopConfigurationArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationConfigurationObjectArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationConfigurationObjectArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationImageConfigurationInputArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationImageConfigurationInputArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationInitialCapacityConfigKeyValuePairArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationInitialCapacityConfigKeyValuePairArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationMaximumAllowedResourcesArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationMaximumAllowedResourcesArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationMonitoringConfigurationArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationMonitoringConfigurationArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationNetworkConfigurationArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationNetworkConfigurationArgsBuilder
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationWorkerTypeSpecificationInputArgs
import com.pulumi.awsnative.emrserverless.kotlin.inputs.ApplicationWorkerTypeSpecificationInputArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::EMRServerless::Application Type
 * @property architecture The CPU architecture of an application.
 * @property autoStartConfiguration Configuration for Auto Start of Application.
 * @property autoStopConfiguration Configuration for Auto Stop of Application.
 * @property imageConfiguration The image configuration applied to all worker types.
 * @property initialCapacity Initial capacity initialized when an Application is started.
 * @property maximumCapacity Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit.
 * @property monitoringConfiguration A configuration specification to be used when provisioning an application. A configuration consists of a classification, properties, and optional nested configurations. A classification refers to an application-specific configuration file. Properties are the settings you want to change in that file.
 * @property name User friendly Application name.
 * @property networkConfiguration Network Configuration for customer VPC connectivity.
 * @property releaseLabel EMR release label.
 * @property runtimeConfiguration The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
 * @property tags Tag map with key and value
 * @property type The type of the application
 * @property workerTypeSpecifications The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.
 */
public data class ApplicationArgs(
    public val architecture: Output? = null,
    public val autoStartConfiguration: Output? = null,
    public val autoStopConfiguration: Output? = null,
    public val imageConfiguration: Output? = null,
    public val initialCapacity: Output>? =
        null,
    public val maximumCapacity: Output? = null,
    public val monitoringConfiguration: Output? = null,
    public val name: Output? = null,
    public val networkConfiguration: Output? = null,
    public val releaseLabel: Output? = null,
    public val runtimeConfiguration: Output>? = null,
    public val tags: Output>? = null,
    public val type: Output? = null,
    public val workerTypeSpecifications: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.emrserverless.ApplicationArgs =
        com.pulumi.awsnative.emrserverless.ApplicationArgs.builder()
            .architecture(architecture?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .autoStartConfiguration(
                autoStartConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .autoStopConfiguration(
                autoStopConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .imageConfiguration(
                imageConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .initialCapacity(
                initialCapacity?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .maximumCapacity(maximumCapacity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .monitoringConfiguration(
                monitoringConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .networkConfiguration(
                networkConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .releaseLabel(releaseLabel?.applyValue({ args0 -> args0 }))
            .runtimeConfiguration(
                runtimeConfiguration?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .type(type?.applyValue({ args0 -> args0 }))
            .workerTypeSpecifications(
                workerTypeSpecifications?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
                    }).toMap()
                }),
            ).build()
}

/**
 * Builder for [ApplicationArgs].
 */
@PulumiTagMarker
public class ApplicationArgsBuilder internal constructor() {
    private var architecture: Output? = null

    private var autoStartConfiguration: Output? = null

    private var autoStopConfiguration: Output? = null

    private var imageConfiguration: Output? = null

    private var initialCapacity: Output>? =
        null

    private var maximumCapacity: Output? = null

    private var monitoringConfiguration: Output? = null

    private var name: Output? = null

    private var networkConfiguration: Output? = null

    private var releaseLabel: Output? = null

    private var runtimeConfiguration: Output>? = null

    private var tags: Output>? = null

    private var type: Output? = null

    private var workerTypeSpecifications:
        Output>? = null

    /**
     * @param value The CPU architecture of an application.
     */
    @JvmName("didqfjjugelfgapv")
    public suspend fun architecture(`value`: Output) {
        this.architecture = value
    }

    /**
     * @param value Configuration for Auto Start of Application.
     */
    @JvmName("ttpbifuafaagcmrv")
    public suspend fun autoStartConfiguration(`value`: Output) {
        this.autoStartConfiguration = value
    }

    /**
     * @param value Configuration for Auto Stop of Application.
     */
    @JvmName("wrxnsvwtoihswtgq")
    public suspend fun autoStopConfiguration(`value`: Output) {
        this.autoStopConfiguration = value
    }

    /**
     * @param value The image configuration applied to all worker types.
     */
    @JvmName("mcirchbgwjylfjki")
    public suspend fun imageConfiguration(`value`: Output) {
        this.imageConfiguration = value
    }

    /**
     * @param value Initial capacity initialized when an Application is started.
     */
    @JvmName("gkclxtndxkvhwyjc")
    public suspend fun initialCapacity(`value`: Output>) {
        this.initialCapacity = value
    }

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

    /**
     * @param values Initial capacity initialized when an Application is started.
     */
    @JvmName("bmuxydjxrqgcqwnc")
    public suspend fun initialCapacity(values: List>) {
        this.initialCapacity = Output.all(values)
    }

    /**
     * @param value Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit.
     */
    @JvmName("lsaodtovejbffshj")
    public suspend fun maximumCapacity(`value`: Output) {
        this.maximumCapacity = value
    }

    /**
     * @param value A configuration specification to be used when provisioning an application. A configuration consists of a classification, properties, and optional nested configurations. A classification refers to an application-specific configuration file. Properties are the settings you want to change in that file.
     */
    @JvmName("evnjkgpqthftlrxo")
    public suspend fun monitoringConfiguration(`value`: Output) {
        this.monitoringConfiguration = value
    }

    /**
     * @param value User friendly Application name.
     */
    @JvmName("okyvwjsryidstxab")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Network Configuration for customer VPC connectivity.
     */
    @JvmName("gyyrsbcaeivcypyt")
    public suspend fun networkConfiguration(`value`: Output) {
        this.networkConfiguration = value
    }

    /**
     * @param value EMR release label.
     */
    @JvmName("iylklxffejopwojs")
    public suspend fun releaseLabel(`value`: Output) {
        this.releaseLabel = value
    }

    /**
     * @param value The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
     */
    @JvmName("uxdinpbbpgtjdjbf")
    public suspend fun runtimeConfiguration(`value`: Output>) {
        this.runtimeConfiguration = value
    }

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

    /**
     * @param values The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
     */
    @JvmName("pbrbbbquyyfkyaww")
    public suspend fun runtimeConfiguration(values: List>) {
        this.runtimeConfiguration = Output.all(values)
    }

    /**
     * @param value Tag map with key and value
     */
    @JvmName("slmrfbcjngywbarx")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values Tag map with key and value
     */
    @JvmName("vmrmgduehsyxdwhv")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The type of the application
     */
    @JvmName("pwebtmmepqgxlxmx")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.
     */
    @JvmName("vnegljqugosrqnhj")
    public suspend fun workerTypeSpecifications(`value`: Output>) {
        this.workerTypeSpecifications = value
    }

    /**
     * @param value The CPU architecture of an application.
     */
    @JvmName("rtkgomuwrwxestfe")
    public suspend fun architecture(`value`: ApplicationArchitecture?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.architecture = mapped
    }

    /**
     * @param value Configuration for Auto Start of Application.
     */
    @JvmName("epdpegivjlmsfuiv")
    public suspend fun autoStartConfiguration(`value`: ApplicationAutoStartConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoStartConfiguration = mapped
    }

    /**
     * @param argument Configuration for Auto Start of Application.
     */
    @JvmName("powddrwukfaaqixm")
    public suspend fun autoStartConfiguration(argument: suspend ApplicationAutoStartConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = ApplicationAutoStartConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.autoStartConfiguration = mapped
    }

    /**
     * @param value Configuration for Auto Stop of Application.
     */
    @JvmName("rdmmxckeywxaifyn")
    public suspend fun autoStopConfiguration(`value`: ApplicationAutoStopConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoStopConfiguration = mapped
    }

    /**
     * @param argument Configuration for Auto Stop of Application.
     */
    @JvmName("nkfwqravvjpouvef")
    public suspend fun autoStopConfiguration(argument: suspend ApplicationAutoStopConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = ApplicationAutoStopConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.autoStopConfiguration = mapped
    }

    /**
     * @param value The image configuration applied to all worker types.
     */
    @JvmName("duelllyyrmruvhcy")
    public suspend fun imageConfiguration(`value`: ApplicationImageConfigurationInputArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.imageConfiguration = mapped
    }

    /**
     * @param argument The image configuration applied to all worker types.
     */
    @JvmName("rexhpunrgaghdcci")
    public suspend fun imageConfiguration(argument: suspend ApplicationImageConfigurationInputArgsBuilder.() -> Unit) {
        val toBeMapped = ApplicationImageConfigurationInputArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.imageConfiguration = mapped
    }

    /**
     * @param value Initial capacity initialized when an Application is started.
     */
    @JvmName("lqdhyeqdrttmrtgx")
    public suspend fun initialCapacity(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.initialCapacity = mapped
    }

    /**
     * @param argument Initial capacity initialized when an Application is started.
     */
    @JvmName("hyjgdxfvfcymeimb")
    public suspend fun initialCapacity(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ApplicationInitialCapacityConfigKeyValuePairArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.initialCapacity = mapped
    }

    /**
     * @param argument Initial capacity initialized when an Application is started.
     */
    @JvmName("nxowagkgcgihneoa")
    public suspend fun initialCapacity(vararg argument: suspend ApplicationInitialCapacityConfigKeyValuePairArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ApplicationInitialCapacityConfigKeyValuePairArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.initialCapacity = mapped
    }

    /**
     * @param argument Initial capacity initialized when an Application is started.
     */
    @JvmName("dwdakvbepvyqfjhx")
    public suspend fun initialCapacity(argument: suspend ApplicationInitialCapacityConfigKeyValuePairArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ApplicationInitialCapacityConfigKeyValuePairArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.initialCapacity = mapped
    }

    /**
     * @param values Initial capacity initialized when an Application is started.
     */
    @JvmName("itvjixdijpjbkrcc")
    public suspend fun initialCapacity(vararg values: ApplicationInitialCapacityConfigKeyValuePairArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.initialCapacity = mapped
    }

    /**
     * @param value Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit.
     */
    @JvmName("fvyyggjjgghhqhuc")
    public suspend fun maximumCapacity(`value`: ApplicationMaximumAllowedResourcesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maximumCapacity = mapped
    }

    /**
     * @param argument Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit.
     */
    @JvmName("qunpijgypyrtejnb")
    public suspend fun maximumCapacity(argument: suspend ApplicationMaximumAllowedResourcesArgsBuilder.() -> Unit) {
        val toBeMapped = ApplicationMaximumAllowedResourcesArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.maximumCapacity = mapped
    }

    /**
     * @param value A configuration specification to be used when provisioning an application. A configuration consists of a classification, properties, and optional nested configurations. A classification refers to an application-specific configuration file. Properties are the settings you want to change in that file.
     */
    @JvmName("suxecwpmdfdcbtyl")
    public suspend fun monitoringConfiguration(`value`: ApplicationMonitoringConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.monitoringConfiguration = mapped
    }

    /**
     * @param argument A configuration specification to be used when provisioning an application. A configuration consists of a classification, properties, and optional nested configurations. A classification refers to an application-specific configuration file. Properties are the settings you want to change in that file.
     */
    @JvmName("rqijftfnuapbdnnm")
    public suspend fun monitoringConfiguration(argument: suspend ApplicationMonitoringConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = ApplicationMonitoringConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.monitoringConfiguration = mapped
    }

    /**
     * @param value User friendly Application name.
     */
    @JvmName("mntbmoycosnpenda")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Network Configuration for customer VPC connectivity.
     */
    @JvmName("admtnlsxwihrquec")
    public suspend fun networkConfiguration(`value`: ApplicationNetworkConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkConfiguration = mapped
    }

    /**
     * @param argument Network Configuration for customer VPC connectivity.
     */
    @JvmName("udjiivucqtarebsj")
    public suspend fun networkConfiguration(argument: suspend ApplicationNetworkConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = ApplicationNetworkConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.networkConfiguration = mapped
    }

    /**
     * @param value EMR release label.
     */
    @JvmName("kidpohccaauacoyf")
    public suspend fun releaseLabel(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.releaseLabel = mapped
    }

    /**
     * @param value The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
     */
    @JvmName("yppbpkraagpfwpnn")
    public suspend fun runtimeConfiguration(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.runtimeConfiguration = mapped
    }

    /**
     * @param argument The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
     */
    @JvmName("kynmsljvynjfpofd")
    public suspend fun runtimeConfiguration(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ApplicationConfigurationObjectArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.runtimeConfiguration = mapped
    }

    /**
     * @param argument The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
     */
    @JvmName("afifdqgubplfhnol")
    public suspend fun runtimeConfiguration(vararg argument: suspend ApplicationConfigurationObjectArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ApplicationConfigurationObjectArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.runtimeConfiguration = mapped
    }

    /**
     * @param argument The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
     */
    @JvmName("kotyksqiiorgpwev")
    public suspend fun runtimeConfiguration(argument: suspend ApplicationConfigurationObjectArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ApplicationConfigurationObjectArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.runtimeConfiguration = mapped
    }

    /**
     * @param values The [Configuration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html) specifications of an application. Each configuration consists of a classification and properties. You use this parameter when creating or updating an application. To see the runtimeConfiguration object of an application, run the [GetApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html) API operation.
     */
    @JvmName("dfvujadnxtqhuaxs")
    public suspend fun runtimeConfiguration(vararg values: ApplicationConfigurationObjectArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.runtimeConfiguration = mapped
    }

    /**
     * @param value Tag map with key and value
     */
    @JvmName("ptxplotkywmbfkqk")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument Tag map with key and value
     */
    @JvmName("xeaimjnioblvccag")
    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 Tag map with key and value
     */
    @JvmName("nwujmqikcesritcx")
    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 Tag map with key and value
     */
    @JvmName("jsuaxliownsdhdbp")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values Tag map with key and value
     */
    @JvmName("pvgpubyahiaapfif")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The type of the application
     */
    @JvmName("iwhnpcyyqhnnobuv")
    public suspend fun type(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    /**
     * @param value The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.
     */
    @JvmName("ekpyyadexohyogun")
    public suspend fun workerTypeSpecifications(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workerTypeSpecifications = mapped
    }

    /**
     * @param argument The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.
     */
    @JvmName("lksrascjhytfiqbe")
    public suspend fun workerTypeSpecifications(vararg argument: Pair Unit>) {
        val toBeMapped = argument.toList().map { (left, right) ->
            left to
                ApplicationWorkerTypeSpecificationInputArgsBuilder().applySuspend { right() }.build()
        }.toMap()
        val mapped = of(toBeMapped)
        this.workerTypeSpecifications = mapped
    }

    /**
     * @param values The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.
     */
    @JvmName("qebfqpqulbfqekhw")
    public fun workerTypeSpecifications(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.workerTypeSpecifications = mapped
    }

    internal fun build(): ApplicationArgs = ApplicationArgs(
        architecture = architecture,
        autoStartConfiguration = autoStartConfiguration,
        autoStopConfiguration = autoStopConfiguration,
        imageConfiguration = imageConfiguration,
        initialCapacity = initialCapacity,
        maximumCapacity = maximumCapacity,
        monitoringConfiguration = monitoringConfiguration,
        name = name,
        networkConfiguration = networkConfiguration,
        releaseLabel = releaseLabel,
        runtimeConfiguration = runtimeConfiguration,
        tags = tags,
        type = type,
        workerTypeSpecifications = workerTypeSpecifications,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy