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

com.pulumi.awsnative.imagebuilder.kotlin.inputs.DistributionConfigurationDistributionArgs.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: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.imagebuilder.kotlin.inputs

import com.pulumi.awsnative.imagebuilder.inputs.DistributionConfigurationDistributionArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
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

/**
 * The distributions of the distribution configuration.
 * @property amiDistributionConfiguration The specific AMI settings, such as launch permissions and AMI tags. For details, see example schema below.
 * @property containerDistributionConfiguration Container distribution settings for encryption, licensing, and sharing in a specific Region. For details, see example schema below.
 * @property fastLaunchConfigurations The Windows faster-launching configurations to use for AMI distribution.
 * @property launchTemplateConfigurations A group of launchTemplateConfiguration settings that apply to image distribution.
 * @property licenseConfigurationArns The License Manager Configuration to associate with the AMI in the specified Region.
 * @property region region
 */
public data class DistributionConfigurationDistributionArgs(
    public val amiDistributionConfiguration: Output? = null,
    public val containerDistributionConfiguration: Output? = null,
    public val fastLaunchConfigurations: Output>? = null,
    public val launchTemplateConfigurations: Output>? = null,
    public val licenseConfigurationArns: Output>? = null,
    public val region: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.imagebuilder.inputs.DistributionConfigurationDistributionArgs =
        com.pulumi.awsnative.imagebuilder.inputs.DistributionConfigurationDistributionArgs.builder()
            .amiDistributionConfiguration(
                amiDistributionConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .containerDistributionConfiguration(
                containerDistributionConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .fastLaunchConfigurations(
                fastLaunchConfigurations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .launchTemplateConfigurations(
                launchTemplateConfigurations?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .licenseConfigurationArns(
                licenseConfigurationArns?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .region(region.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [DistributionConfigurationDistributionArgs].
 */
@PulumiTagMarker
public class DistributionConfigurationDistributionArgsBuilder internal constructor() {
    private var amiDistributionConfiguration:
        Output? = null

    private var containerDistributionConfiguration:
        Output? = null

    private var fastLaunchConfigurations:
        Output>? = null

    private var launchTemplateConfigurations:
        Output>? = null

    private var licenseConfigurationArns: Output>? = null

    private var region: Output? = null

    /**
     * @param value The specific AMI settings, such as launch permissions and AMI tags. For details, see example schema below.
     */
    @JvmName("mpljbooaisvtjhir")
    public suspend fun amiDistributionConfiguration(`value`: Output) {
        this.amiDistributionConfiguration = value
    }

    /**
     * @param value Container distribution settings for encryption, licensing, and sharing in a specific Region. For details, see example schema below.
     */
    @JvmName("xtxfwgmdgyqncaot")
    public suspend fun containerDistributionConfiguration(`value`: Output) {
        this.containerDistributionConfiguration = value
    }

    /**
     * @param value The Windows faster-launching configurations to use for AMI distribution.
     */
    @JvmName("dtssihqjxirwwvae")
    public suspend fun fastLaunchConfigurations(`value`: Output>) {
        this.fastLaunchConfigurations = value
    }

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

    /**
     * @param values The Windows faster-launching configurations to use for AMI distribution.
     */
    @JvmName("ubsfiowsjyshufcw")
    public suspend fun fastLaunchConfigurations(values: List>) {
        this.fastLaunchConfigurations = Output.all(values)
    }

    /**
     * @param value A group of launchTemplateConfiguration settings that apply to image distribution.
     */
    @JvmName("gpfapdpwddbmmgog")
    public suspend fun launchTemplateConfigurations(`value`: Output>) {
        this.launchTemplateConfigurations = value
    }

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

    /**
     * @param values A group of launchTemplateConfiguration settings that apply to image distribution.
     */
    @JvmName("eeguyefggwmeuhlh")
    public suspend fun launchTemplateConfigurations(values: List>) {
        this.launchTemplateConfigurations = Output.all(values)
    }

    /**
     * @param value The License Manager Configuration to associate with the AMI in the specified Region.
     */
    @JvmName("ltjkrbhunnwlwmmv")
    public suspend fun licenseConfigurationArns(`value`: Output>) {
        this.licenseConfigurationArns = value
    }

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

    /**
     * @param values The License Manager Configuration to associate with the AMI in the specified Region.
     */
    @JvmName("lbdcsequojhyjrbl")
    public suspend fun licenseConfigurationArns(values: List>) {
        this.licenseConfigurationArns = Output.all(values)
    }

    /**
     * @param value region
     */
    @JvmName("yvqdjsdtwgliocbf")
    public suspend fun region(`value`: Output) {
        this.region = value
    }

    /**
     * @param value The specific AMI settings, such as launch permissions and AMI tags. For details, see example schema below.
     */
    @JvmName("gtalotmedlviktgn")
    public suspend fun amiDistributionConfiguration(`value`: DistributionConfigurationAmiDistributionConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.amiDistributionConfiguration = mapped
    }

    /**
     * @param argument The specific AMI settings, such as launch permissions and AMI tags. For details, see example schema below.
     */
    @JvmName("xgbwrklfxovuyidv")
    public suspend fun amiDistributionConfiguration(argument: suspend DistributionConfigurationAmiDistributionConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            DistributionConfigurationAmiDistributionConfigurationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.amiDistributionConfiguration = mapped
    }

    /**
     * @param value Container distribution settings for encryption, licensing, and sharing in a specific Region. For details, see example schema below.
     */
    @JvmName("lnvlqrfsskgiiehu")
    public suspend fun containerDistributionConfiguration(`value`: DistributionConfigurationContainerDistributionConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.containerDistributionConfiguration = mapped
    }

    /**
     * @param argument Container distribution settings for encryption, licensing, and sharing in a specific Region. For details, see example schema below.
     */
    @JvmName("clokifchjykbpfwr")
    public suspend fun containerDistributionConfiguration(argument: suspend DistributionConfigurationContainerDistributionConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            DistributionConfigurationContainerDistributionConfigurationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.containerDistributionConfiguration = mapped
    }

    /**
     * @param value The Windows faster-launching configurations to use for AMI distribution.
     */
    @JvmName("ubjfcxmulbchblua")
    public suspend fun fastLaunchConfigurations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fastLaunchConfigurations = mapped
    }

    /**
     * @param argument The Windows faster-launching configurations to use for AMI distribution.
     */
    @JvmName("qihmgagambbfnqte")
    public suspend fun fastLaunchConfigurations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DistributionConfigurationFastLaunchConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.fastLaunchConfigurations = mapped
    }

    /**
     * @param argument The Windows faster-launching configurations to use for AMI distribution.
     */
    @JvmName("gywercmcumdtmjkp")
    public suspend fun fastLaunchConfigurations(vararg argument: suspend DistributionConfigurationFastLaunchConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DistributionConfigurationFastLaunchConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.fastLaunchConfigurations = mapped
    }

    /**
     * @param argument The Windows faster-launching configurations to use for AMI distribution.
     */
    @JvmName("skdffbkttuyvdxcg")
    public suspend fun fastLaunchConfigurations(argument: suspend DistributionConfigurationFastLaunchConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                DistributionConfigurationFastLaunchConfigurationArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.fastLaunchConfigurations = mapped
    }

    /**
     * @param values The Windows faster-launching configurations to use for AMI distribution.
     */
    @JvmName("rmibxrhscoaxrlno")
    public suspend fun fastLaunchConfigurations(vararg values: DistributionConfigurationFastLaunchConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.fastLaunchConfigurations = mapped
    }

    /**
     * @param value A group of launchTemplateConfiguration settings that apply to image distribution.
     */
    @JvmName("ueqhuyjuadncusib")
    public suspend fun launchTemplateConfigurations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.launchTemplateConfigurations = mapped
    }

    /**
     * @param argument A group of launchTemplateConfiguration settings that apply to image distribution.
     */
    @JvmName("dcevafkhljxastdu")
    public suspend fun launchTemplateConfigurations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DistributionConfigurationLaunchTemplateConfigurationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.launchTemplateConfigurations = mapped
    }

    /**
     * @param argument A group of launchTemplateConfiguration settings that apply to image distribution.
     */
    @JvmName("crajyyhivxlgpmol")
    public suspend fun launchTemplateConfigurations(vararg argument: suspend DistributionConfigurationLaunchTemplateConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DistributionConfigurationLaunchTemplateConfigurationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.launchTemplateConfigurations = mapped
    }

    /**
     * @param argument A group of launchTemplateConfiguration settings that apply to image distribution.
     */
    @JvmName("syybqjbxydkiiojs")
    public suspend fun launchTemplateConfigurations(argument: suspend DistributionConfigurationLaunchTemplateConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                DistributionConfigurationLaunchTemplateConfigurationArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.launchTemplateConfigurations = mapped
    }

    /**
     * @param values A group of launchTemplateConfiguration settings that apply to image distribution.
     */
    @JvmName("qkpvjeqsdcxbxyna")
    public suspend fun launchTemplateConfigurations(vararg values: DistributionConfigurationLaunchTemplateConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.launchTemplateConfigurations = mapped
    }

    /**
     * @param value The License Manager Configuration to associate with the AMI in the specified Region.
     */
    @JvmName("fepnieqirjkkifjt")
    public suspend fun licenseConfigurationArns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.licenseConfigurationArns = mapped
    }

    /**
     * @param values The License Manager Configuration to associate with the AMI in the specified Region.
     */
    @JvmName("tuhheqtcniyilsxp")
    public suspend fun licenseConfigurationArns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.licenseConfigurationArns = mapped
    }

    /**
     * @param value region
     */
    @JvmName("wofqmksfkftqgaih")
    public suspend fun region(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.region = mapped
    }

    internal fun build(): DistributionConfigurationDistributionArgs =
        DistributionConfigurationDistributionArgs(
            amiDistributionConfiguration = amiDistributionConfiguration,
            containerDistributionConfiguration = containerDistributionConfiguration,
            fastLaunchConfigurations = fastLaunchConfigurations,
            launchTemplateConfigurations = launchTemplateConfigurations,
            licenseConfigurationArns = licenseConfigurationArns,
            region = region ?: throw PulumiNullFieldException("region"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy