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

com.pulumi.awsnative.elasticbeanstalk.kotlin.EnvironmentArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.elasticbeanstalk.kotlin

import com.pulumi.awsnative.elasticbeanstalk.EnvironmentArgs.builder
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.EnvironmentOptionSettingArgs
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.EnvironmentOptionSettingArgsBuilder
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.EnvironmentTierArgs
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.EnvironmentTierArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::ElasticBeanstalk::Environment
 * @property applicationName The name of the application that is associated with this environment.
 * @property cnamePrefix If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.
 * @property description Your description for this environment.
 * @property environmentName A unique name for the environment.
 * @property operationsRole The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role.
 * @property optionSettings Key-value pairs defining configuration options for this environment, such as the instance type.
 * @property platformArn The Amazon Resource Name (ARN) of the custom platform to use with the environment.
 * @property solutionStackName The name of an Elastic Beanstalk solution stack (platform version) to use with the environment.
 * @property tags Specifies the tags applied to resources in the environment.
 * @property templateName The name of the Elastic Beanstalk configuration template to use with the environment.
 * @property tier Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.
 * @property versionLabel The name of the application version to deploy.
 */
public data class EnvironmentArgs(
    public val applicationName: Output? = null,
    public val cnamePrefix: Output? = null,
    public val description: Output? = null,
    public val environmentName: Output? = null,
    public val operationsRole: Output? = null,
    public val optionSettings: Output>? = null,
    public val platformArn: Output? = null,
    public val solutionStackName: Output? = null,
    public val tags: Output>? = null,
    public val templateName: Output? = null,
    public val tier: Output? = null,
    public val versionLabel: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.elasticbeanstalk.EnvironmentArgs =
        com.pulumi.awsnative.elasticbeanstalk.EnvironmentArgs.builder()
            .applicationName(applicationName?.applyValue({ args0 -> args0 }))
            .cnamePrefix(cnamePrefix?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .environmentName(environmentName?.applyValue({ args0 -> args0 }))
            .operationsRole(operationsRole?.applyValue({ args0 -> args0 }))
            .optionSettings(
                optionSettings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .platformArn(platformArn?.applyValue({ args0 -> args0 }))
            .solutionStackName(solutionStackName?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .templateName(templateName?.applyValue({ args0 -> args0 }))
            .tier(tier?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .versionLabel(versionLabel?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [EnvironmentArgs].
 */
@PulumiTagMarker
public class EnvironmentArgsBuilder internal constructor() {
    private var applicationName: Output? = null

    private var cnamePrefix: Output? = null

    private var description: Output? = null

    private var environmentName: Output? = null

    private var operationsRole: Output? = null

    private var optionSettings: Output>? = null

    private var platformArn: Output? = null

    private var solutionStackName: Output? = null

    private var tags: Output>? = null

    private var templateName: Output? = null

    private var tier: Output? = null

    private var versionLabel: Output? = null

    /**
     * @param value The name of the application that is associated with this environment.
     */
    @JvmName("yeotnekkenhykneh")
    public suspend fun applicationName(`value`: Output) {
        this.applicationName = value
    }

    /**
     * @param value If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.
     */
    @JvmName("dypeailwrtpxxqul")
    public suspend fun cnamePrefix(`value`: Output) {
        this.cnamePrefix = value
    }

    /**
     * @param value Your description for this environment.
     */
    @JvmName("qmpgkrbnehnscnvw")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value A unique name for the environment.
     */
    @JvmName("hyurnwhowkyuvuek")
    public suspend fun environmentName(`value`: Output) {
        this.environmentName = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role.
     */
    @JvmName("svylrogmducexjgd")
    public suspend fun operationsRole(`value`: Output) {
        this.operationsRole = value
    }

    /**
     * @param value Key-value pairs defining configuration options for this environment, such as the instance type.
     */
    @JvmName("chrborhjmvyjyyst")
    public suspend fun optionSettings(`value`: Output>) {
        this.optionSettings = value
    }

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

    /**
     * @param values Key-value pairs defining configuration options for this environment, such as the instance type.
     */
    @JvmName("oqqqsruaxwsieguc")
    public suspend fun optionSettings(values: List>) {
        this.optionSettings = Output.all(values)
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the custom platform to use with the environment.
     */
    @JvmName("jmnfupmyoxxcxrhn")
    public suspend fun platformArn(`value`: Output) {
        this.platformArn = value
    }

    /**
     * @param value The name of an Elastic Beanstalk solution stack (platform version) to use with the environment.
     */
    @JvmName("vagvwyhqtfoesdvj")
    public suspend fun solutionStackName(`value`: Output) {
        this.solutionStackName = value
    }

    /**
     * @param value Specifies the tags applied to resources in the environment.
     */
    @JvmName("tplrqvripqaltdoo")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values Specifies the tags applied to resources in the environment.
     */
    @JvmName("wpdaldiukkocnbqn")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The name of the Elastic Beanstalk configuration template to use with the environment.
     */
    @JvmName("hslltqqwaonmuaso")
    public suspend fun templateName(`value`: Output) {
        this.templateName = value
    }

    /**
     * @param value Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.
     */
    @JvmName("yebvisbpdjbydsec")
    public suspend fun tier(`value`: Output) {
        this.tier = value
    }

    /**
     * @param value The name of the application version to deploy.
     */
    @JvmName("mmwofpqcaleyouwr")
    public suspend fun versionLabel(`value`: Output) {
        this.versionLabel = value
    }

    /**
     * @param value The name of the application that is associated with this environment.
     */
    @JvmName("pgkagboqtjcbkdag")
    public suspend fun applicationName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationName = mapped
    }

    /**
     * @param value If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.
     */
    @JvmName("dhaqoosewynffudm")
    public suspend fun cnamePrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cnamePrefix = mapped
    }

    /**
     * @param value Your description for this environment.
     */
    @JvmName("iydkswvxrntrtqmq")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value A unique name for the environment.
     */
    @JvmName("deqklgbylxftgkhs")
    public suspend fun environmentName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.environmentName = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role.
     */
    @JvmName("wxrqbimgqcowdqlw")
    public suspend fun operationsRole(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.operationsRole = mapped
    }

    /**
     * @param value Key-value pairs defining configuration options for this environment, such as the instance type.
     */
    @JvmName("aomjkdcksfgicdax")
    public suspend fun optionSettings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.optionSettings = mapped
    }

    /**
     * @param argument Key-value pairs defining configuration options for this environment, such as the instance type.
     */
    @JvmName("eivoaspidhgvfaec")
    public suspend fun optionSettings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            EnvironmentOptionSettingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.optionSettings = mapped
    }

    /**
     * @param argument Key-value pairs defining configuration options for this environment, such as the instance type.
     */
    @JvmName("ceeuwqktkdongpyp")
    public suspend fun optionSettings(vararg argument: suspend EnvironmentOptionSettingArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            EnvironmentOptionSettingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.optionSettings = mapped
    }

    /**
     * @param argument Key-value pairs defining configuration options for this environment, such as the instance type.
     */
    @JvmName("keutfbbspmeittov")
    public suspend fun optionSettings(argument: suspend EnvironmentOptionSettingArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            EnvironmentOptionSettingArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.optionSettings = mapped
    }

    /**
     * @param values Key-value pairs defining configuration options for this environment, such as the instance type.
     */
    @JvmName("dlqqspxlynodqxfw")
    public suspend fun optionSettings(vararg values: EnvironmentOptionSettingArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.optionSettings = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the custom platform to use with the environment.
     */
    @JvmName("vscmoqkebbmgnadm")
    public suspend fun platformArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.platformArn = mapped
    }

    /**
     * @param value The name of an Elastic Beanstalk solution stack (platform version) to use with the environment.
     */
    @JvmName("csvyvdnhwcxluciy")
    public suspend fun solutionStackName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.solutionStackName = mapped
    }

    /**
     * @param value Specifies the tags applied to resources in the environment.
     */
    @JvmName("hfhtisvcmtfimfke")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument Specifies the tags applied to resources in the environment.
     */
    @JvmName("pflrjjgcffyxlmhu")
    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 Specifies the tags applied to resources in the environment.
     */
    @JvmName("mbugkkmvifsvntdy")
    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 Specifies the tags applied to resources in the environment.
     */
    @JvmName("yktavxscyyjngogl")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values Specifies the tags applied to resources in the environment.
     */
    @JvmName("ykwndeljuwfwwown")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The name of the Elastic Beanstalk configuration template to use with the environment.
     */
    @JvmName("eyblgfjnplxnjlon")
    public suspend fun templateName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.templateName = mapped
    }

    /**
     * @param value Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.
     */
    @JvmName("uywhgsmrwueobbwj")
    public suspend fun tier(`value`: EnvironmentTierArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tier = mapped
    }

    /**
     * @param argument Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.
     */
    @JvmName("flvkqyrusxcoulwi")
    public suspend fun tier(argument: suspend EnvironmentTierArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentTierArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.tier = mapped
    }

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

    internal fun build(): EnvironmentArgs = EnvironmentArgs(
        applicationName = applicationName,
        cnamePrefix = cnamePrefix,
        description = description,
        environmentName = environmentName,
        operationsRole = operationsRole,
        optionSettings = optionSettings,
        platformArn = platformArn,
        solutionStackName = solutionStackName,
        tags = tags,
        templateName = templateName,
        tier = tier,
        versionLabel = versionLabel,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy