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

com.pulumi.awsnative.eks.kotlin.AddonArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.eks.kotlin

import com.pulumi.awsnative.eks.AddonArgs.builder
import com.pulumi.awsnative.eks.kotlin.enums.AddonResolveConflicts
import com.pulumi.awsnative.eks.kotlin.inputs.AddonPodIdentityAssociationArgs
import com.pulumi.awsnative.eks.kotlin.inputs.AddonPodIdentityAssociationArgsBuilder
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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource Schema for AWS::EKS::Addon
 * @property addonName Name of Addon
 * @property addonVersion Version of Addon
 * @property clusterName Name of Cluster
 * @property configurationValues The configuration values to use with the add-on
 * @property podIdentityAssociations An array of pod identities to apply to this add-on.
 * @property preserveOnDelete PreserveOnDelete parameter value
 * @property resolveConflicts Resolve parameter value conflicts
 * @property serviceAccountRoleArn IAM role to bind to the add-on's service account
 * @property tags An array of key-value pairs to apply to this resource.
 */
public data class AddonArgs(
    public val addonName: Output? = null,
    public val addonVersion: Output? = null,
    public val clusterName: Output? = null,
    public val configurationValues: Output? = null,
    public val podIdentityAssociations: Output>? = null,
    public val preserveOnDelete: Output? = null,
    public val resolveConflicts: Output? = null,
    public val serviceAccountRoleArn: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.eks.AddonArgs =
        com.pulumi.awsnative.eks.AddonArgs.builder()
            .addonName(addonName?.applyValue({ args0 -> args0 }))
            .addonVersion(addonVersion?.applyValue({ args0 -> args0 }))
            .clusterName(clusterName?.applyValue({ args0 -> args0 }))
            .configurationValues(configurationValues?.applyValue({ args0 -> args0 }))
            .podIdentityAssociations(
                podIdentityAssociations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .preserveOnDelete(preserveOnDelete?.applyValue({ args0 -> args0 }))
            .resolveConflicts(resolveConflicts?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .serviceAccountRoleArn(serviceAccountRoleArn?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [AddonArgs].
 */
@PulumiTagMarker
public class AddonArgsBuilder internal constructor() {
    private var addonName: Output? = null

    private var addonVersion: Output? = null

    private var clusterName: Output? = null

    private var configurationValues: Output? = null

    private var podIdentityAssociations: Output>? = null

    private var preserveOnDelete: Output? = null

    private var resolveConflicts: Output? = null

    private var serviceAccountRoleArn: Output? = null

    private var tags: Output>? = null

    /**
     * @param value Name of Addon
     */
    @JvmName("rnuaigrchonisitw")
    public suspend fun addonName(`value`: Output) {
        this.addonName = value
    }

    /**
     * @param value Version of Addon
     */
    @JvmName("bdknyipyvaixriek")
    public suspend fun addonVersion(`value`: Output) {
        this.addonVersion = value
    }

    /**
     * @param value Name of Cluster
     */
    @JvmName("cmblfjkdcydnorku")
    public suspend fun clusterName(`value`: Output) {
        this.clusterName = value
    }

    /**
     * @param value The configuration values to use with the add-on
     */
    @JvmName("rbwtprsscgxtkjfd")
    public suspend fun configurationValues(`value`: Output) {
        this.configurationValues = value
    }

    /**
     * @param value An array of pod identities to apply to this add-on.
     */
    @JvmName("aultdrsmktkesbmr")
    public suspend fun podIdentityAssociations(`value`: Output>) {
        this.podIdentityAssociations = value
    }

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

    /**
     * @param values An array of pod identities to apply to this add-on.
     */
    @JvmName("uarhlmjuxlfdfnik")
    public suspend fun podIdentityAssociations(values: List>) {
        this.podIdentityAssociations = Output.all(values)
    }

    /**
     * @param value PreserveOnDelete parameter value
     */
    @JvmName("dvbnqcxasnscksiu")
    public suspend fun preserveOnDelete(`value`: Output) {
        this.preserveOnDelete = value
    }

    /**
     * @param value Resolve parameter value conflicts
     */
    @JvmName("oyvxggfrpyyykibl")
    public suspend fun resolveConflicts(`value`: Output) {
        this.resolveConflicts = value
    }

    /**
     * @param value IAM role to bind to the add-on's service account
     */
    @JvmName("jjlarylbavgauxka")
    public suspend fun serviceAccountRoleArn(`value`: Output) {
        this.serviceAccountRoleArn = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("olnpswmpxyjtmfhr")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("qdxanhvnspygoegp")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

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

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

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

    /**
     * @param value The configuration values to use with the add-on
     */
    @JvmName("lwdkmaagpwlufiss")
    public suspend fun configurationValues(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configurationValues = mapped
    }

    /**
     * @param value An array of pod identities to apply to this add-on.
     */
    @JvmName("jtawrdhgmkjdqmsk")
    public suspend fun podIdentityAssociations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.podIdentityAssociations = mapped
    }

    /**
     * @param argument An array of pod identities to apply to this add-on.
     */
    @JvmName("nbpvxuevviuudlde")
    public suspend fun podIdentityAssociations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AddonPodIdentityAssociationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.podIdentityAssociations = mapped
    }

    /**
     * @param argument An array of pod identities to apply to this add-on.
     */
    @JvmName("xhunxpvkpdvtytbw")
    public suspend fun podIdentityAssociations(vararg argument: suspend AddonPodIdentityAssociationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AddonPodIdentityAssociationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.podIdentityAssociations = mapped
    }

    /**
     * @param argument An array of pod identities to apply to this add-on.
     */
    @JvmName("sfcmrdkomefpagha")
    public suspend fun podIdentityAssociations(argument: suspend AddonPodIdentityAssociationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            AddonPodIdentityAssociationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.podIdentityAssociations = mapped
    }

    /**
     * @param values An array of pod identities to apply to this add-on.
     */
    @JvmName("uiicckgduultgshu")
    public suspend fun podIdentityAssociations(vararg values: AddonPodIdentityAssociationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.podIdentityAssociations = mapped
    }

    /**
     * @param value PreserveOnDelete parameter value
     */
    @JvmName("snsmiltlbsemabng")
    public suspend fun preserveOnDelete(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preserveOnDelete = mapped
    }

    /**
     * @param value Resolve parameter value conflicts
     */
    @JvmName("aayyttdakfjqwigq")
    public suspend fun resolveConflicts(`value`: AddonResolveConflicts?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resolveConflicts = mapped
    }

    /**
     * @param value IAM role to bind to the add-on's service account
     */
    @JvmName("cirkisknpkphobit")
    public suspend fun serviceAccountRoleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceAccountRoleArn = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("vmgjvqmxxnpqbytb")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("mwkhuubdjxhdvgje")
    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 An array of key-value pairs to apply to this resource.
     */
    @JvmName("jrgvyjceawmtlgqg")
    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 An array of key-value pairs to apply to this resource.
     */
    @JvmName("wfnivcrkgtngxysf")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("lbljfmmjslloeqia")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): AddonArgs = AddonArgs(
        addonName = addonName,
        addonVersion = addonVersion,
        clusterName = clusterName,
        configurationValues = configurationValues,
        podIdentityAssociations = podIdentityAssociations,
        preserveOnDelete = preserveOnDelete,
        resolveConflicts = resolveConflicts,
        serviceAccountRoleArn = serviceAccountRoleArn,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy