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

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

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

package com.pulumi.awsnative.elasticbeanstalk.kotlin

import com.pulumi.awsnative.elasticbeanstalk.ConfigurationTemplateArgs.builder
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.ConfigurationTemplateConfigurationOptionSettingArgs
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.ConfigurationTemplateConfigurationOptionSettingArgsBuilder
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.ConfigurationTemplateSourceConfigurationArgs
import com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.ConfigurationTemplateSourceConfigurationArgsBuilder
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::ConfigurationTemplate
 * @property applicationName The name of the Elastic Beanstalk application to associate with this configuration template.
 * @property description An optional description for this configuration.
 * @property environmentId The ID of an environment whose settings you want to use to create the configuration template. You must specify EnvironmentId if you don't specify PlatformArn, SolutionStackName, or SourceConfiguration.
 * @property optionSettings Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
 * @property platformArn The Amazon Resource Name (ARN) of the custom platform. For more information, see [Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the AWS Elastic Beanstalk Developer Guide.
 * @property solutionStackName The name of an Elastic Beanstalk solution stack (platform version) that this configuration uses. For example, 64bit Amazon Linux 2013.09 running Tomcat 7 Java 7. A solution stack specifies the operating system, runtime, and application server for a configuration template. It also determines the set of configuration options as well as the possible and default values. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the AWS Elastic Beanstalk Developer Guide.
 *  You must specify SolutionStackName if you don't specify PlatformArn, EnvironmentId, or SourceConfiguration.
 *  Use the ListAvailableSolutionStacks API to obtain a list of available solution stacks.
 * @property sourceConfiguration An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.
 * Values specified in OptionSettings override any values obtained from the SourceConfiguration.
 * You must specify SourceConfiguration if you don't specify PlatformArn, EnvironmentId, or SolutionStackName.
 * Constraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name.
 */
public data class ConfigurationTemplateArgs(
    public val applicationName: Output? = null,
    public val description: Output? = null,
    public val environmentId: Output? = null,
    public val optionSettings: Output>? =
        null,
    public val platformArn: Output? = null,
    public val solutionStackName: Output? = null,
    public val sourceConfiguration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.elasticbeanstalk.ConfigurationTemplateArgs =
        com.pulumi.awsnative.elasticbeanstalk.ConfigurationTemplateArgs.builder()
            .applicationName(applicationName?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .environmentId(environmentId?.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 }))
            .sourceConfiguration(
                sourceConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

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

    private var description: Output? = null

    private var environmentId: Output? = null

    private var optionSettings: Output>? =
        null

    private var platformArn: Output? = null

    private var solutionStackName: Output? = null

    private var sourceConfiguration: Output? = null

    /**
     * @param value The name of the Elastic Beanstalk application to associate with this configuration template.
     */
    @JvmName("lvgqtlhlbkxusscj")
    public suspend fun applicationName(`value`: Output) {
        this.applicationName = value
    }

    /**
     * @param value An optional description for this configuration.
     */
    @JvmName("syuxxdaswaxcfkpu")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The ID of an environment whose settings you want to use to create the configuration template. You must specify EnvironmentId if you don't specify PlatformArn, SolutionStackName, or SourceConfiguration.
     */
    @JvmName("rpqcmrdpmtbhysex")
    public suspend fun environmentId(`value`: Output) {
        this.environmentId = value
    }

    /**
     * @param value Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("hknobbysqekytdas")
    public suspend fun optionSettings(`value`: Output>) {
        this.optionSettings = value
    }

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

    /**
     * @param values Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("jesyacsbbuoncwbd")
    public suspend fun optionSettings(values: List>) {
        this.optionSettings = Output.all(values)
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the custom platform. For more information, see [Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("futisyxscfkuxijd")
    public suspend fun platformArn(`value`: Output) {
        this.platformArn = value
    }

    /**
     * @param value The name of an Elastic Beanstalk solution stack (platform version) that this configuration uses. For example, 64bit Amazon Linux 2013.09 running Tomcat 7 Java 7. A solution stack specifies the operating system, runtime, and application server for a configuration template. It also determines the set of configuration options as well as the possible and default values. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the AWS Elastic Beanstalk Developer Guide.
     *  You must specify SolutionStackName if you don't specify PlatformArn, EnvironmentId, or SourceConfiguration.
     *  Use the ListAvailableSolutionStacks API to obtain a list of available solution stacks.
     */
    @JvmName("baaeonuelnulmeyn")
    public suspend fun solutionStackName(`value`: Output) {
        this.solutionStackName = value
    }

    /**
     * @param value An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.
     * Values specified in OptionSettings override any values obtained from the SourceConfiguration.
     * You must specify SourceConfiguration if you don't specify PlatformArn, EnvironmentId, or SolutionStackName.
     * Constraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name.
     */
    @JvmName("vgednunqlxiylvlc")
    public suspend fun sourceConfiguration(`value`: Output) {
        this.sourceConfiguration = value
    }

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

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

    /**
     * @param value The ID of an environment whose settings you want to use to create the configuration template. You must specify EnvironmentId if you don't specify PlatformArn, SolutionStackName, or SourceConfiguration.
     */
    @JvmName("rycprojehsrakoeh")
    public suspend fun environmentId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.environmentId = mapped
    }

    /**
     * @param value Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("losmodiikingtxpu")
    public suspend fun optionSettings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.optionSettings = mapped
    }

    /**
     * @param argument Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("jrrdvjeomwewslmk")
    public suspend fun optionSettings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ConfigurationTemplateConfigurationOptionSettingArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.optionSettings = mapped
    }

    /**
     * @param argument Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("idbmviefufxyqdkj")
    public suspend fun optionSettings(vararg argument: suspend ConfigurationTemplateConfigurationOptionSettingArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ConfigurationTemplateConfigurationOptionSettingArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.optionSettings = mapped
    }

    /**
     * @param argument Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("xsxaylmfiiybdcni")
    public suspend fun optionSettings(argument: suspend ConfigurationTemplateConfigurationOptionSettingArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                ConfigurationTemplateConfigurationOptionSettingArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.optionSettings = mapped
    }

    /**
     * @param values Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("ecckctduqutiqrhu")
    public suspend fun optionSettings(vararg values: ConfigurationTemplateConfigurationOptionSettingArgs) {
        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. For more information, see [Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the AWS Elastic Beanstalk Developer Guide.
     */
    @JvmName("unpjkaipevbtdxwm")
    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) that this configuration uses. For example, 64bit Amazon Linux 2013.09 running Tomcat 7 Java 7. A solution stack specifies the operating system, runtime, and application server for a configuration template. It also determines the set of configuration options as well as the possible and default values. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the AWS Elastic Beanstalk Developer Guide.
     *  You must specify SolutionStackName if you don't specify PlatformArn, EnvironmentId, or SourceConfiguration.
     *  Use the ListAvailableSolutionStacks API to obtain a list of available solution stacks.
     */
    @JvmName("rcvtasjvjfjgooef")
    public suspend fun solutionStackName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.solutionStackName = mapped
    }

    /**
     * @param value An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.
     * Values specified in OptionSettings override any values obtained from the SourceConfiguration.
     * You must specify SourceConfiguration if you don't specify PlatformArn, EnvironmentId, or SolutionStackName.
     * Constraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name.
     */
    @JvmName("xafgldbymofspenu")
    public suspend fun sourceConfiguration(`value`: ConfigurationTemplateSourceConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceConfiguration = mapped
    }

    /**
     * @param argument An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.
     * Values specified in OptionSettings override any values obtained from the SourceConfiguration.
     * You must specify SourceConfiguration if you don't specify PlatformArn, EnvironmentId, or SolutionStackName.
     * Constraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name.
     */
    @JvmName("cxrvmsaytryrdbfr")
    public suspend fun sourceConfiguration(argument: suspend ConfigurationTemplateSourceConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = ConfigurationTemplateSourceConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.sourceConfiguration = mapped
    }

    internal fun build(): ConfigurationTemplateArgs = ConfigurationTemplateArgs(
        applicationName = applicationName,
        description = description,
        environmentId = environmentId,
        optionSettings = optionSettings,
        platformArn = platformArn,
        solutionStackName = solutionStackName,
        sourceConfiguration = sourceConfiguration,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy