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

com.pulumi.azure.containerservice.kotlin.inputs.KubernetesClusterIngressApplicationGatewayArgs.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: 6.14.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.containerservice.kotlin.inputs

import com.pulumi.azure.containerservice.inputs.KubernetesClusterIngressApplicationGatewayArgs.builder
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

/**
 *
 * @property effectiveGatewayId The ID of the Application Gateway associated with the ingress controller deployed to this Kubernetes Cluster.
 * @property gatewayId The ID of the Application Gateway to integrate with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-existing) page for further details.
 * @property gatewayName The name of the Application Gateway to be used or created in the Nodepool Resource Group, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
 * @property ingressApplicationGatewayIdentities An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
 * @property subnetCidr The subnet CIDR to be used to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
 * @property subnetId The ID of the subnet on which to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
 * > **Note:** Exactly one of `gateway_id`, `subnet_id` or `subnet_cidr` must be specified.
 * > **Note:** If specifying `ingress_application_gateway` in conjunction with `only_critical_addons_enabled`, the AGIC pod will fail to start. A separate `azure.containerservice.KubernetesClusterNodePool` is required to run the AGIC pod successfully. This is because AGIC is classed as a "non-critical addon".
 */
public data class KubernetesClusterIngressApplicationGatewayArgs(
    public val effectiveGatewayId: Output? = null,
    public val gatewayId: Output? = null,
    public val gatewayName: Output? = null,
    public val ingressApplicationGatewayIdentities:
    Output>? =
        null,
    public val subnetCidr: Output? = null,
    public val subnetId: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava():
        com.pulumi.azure.containerservice.inputs.KubernetesClusterIngressApplicationGatewayArgs =
        com.pulumi.azure.containerservice.inputs.KubernetesClusterIngressApplicationGatewayArgs.builder()
            .effectiveGatewayId(effectiveGatewayId?.applyValue({ args0 -> args0 }))
            .gatewayId(gatewayId?.applyValue({ args0 -> args0 }))
            .gatewayName(gatewayName?.applyValue({ args0 -> args0 }))
            .ingressApplicationGatewayIdentities(
                ingressApplicationGatewayIdentities?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .subnetCidr(subnetCidr?.applyValue({ args0 -> args0 }))
            .subnetId(subnetId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [KubernetesClusterIngressApplicationGatewayArgs].
 */
@PulumiTagMarker
public class KubernetesClusterIngressApplicationGatewayArgsBuilder internal constructor() {
    private var effectiveGatewayId: Output? = null

    private var gatewayId: Output? = null

    private var gatewayName: Output? = null

    private var ingressApplicationGatewayIdentities:
        Output>? =
        null

    private var subnetCidr: Output? = null

    private var subnetId: Output? = null

    /**
     * @param value The ID of the Application Gateway associated with the ingress controller deployed to this Kubernetes Cluster.
     */
    @JvmName("opoyjhnckkqspunx")
    public suspend fun effectiveGatewayId(`value`: Output) {
        this.effectiveGatewayId = value
    }

    /**
     * @param value The ID of the Application Gateway to integrate with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-existing) page for further details.
     */
    @JvmName("vhyxwfwuhbbkfxby")
    public suspend fun gatewayId(`value`: Output) {
        this.gatewayId = value
    }

    /**
     * @param value The name of the Application Gateway to be used or created in the Nodepool Resource Group, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
     */
    @JvmName("bltrvhdkhywcyksw")
    public suspend fun gatewayName(`value`: Output) {
        this.gatewayName = value
    }

    /**
     * @param value An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
     */
    @JvmName("bcgmbmfrdmlhuafr")
    public suspend
    fun ingressApplicationGatewayIdentities(`value`: Output>) {
        this.ingressApplicationGatewayIdentities = value
    }

    @JvmName("kvkesojyoxkhymgu")
    public suspend fun ingressApplicationGatewayIdentities(
        vararg
        values: Output,
    ) {
        this.ingressApplicationGatewayIdentities = Output.all(values.asList())
    }

    /**
     * @param values An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
     */
    @JvmName("cwjaslnncvvbfkuy")
    public suspend
    fun ingressApplicationGatewayIdentities(values: List>) {
        this.ingressApplicationGatewayIdentities = Output.all(values)
    }

    /**
     * @param value The subnet CIDR to be used to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
     */
    @JvmName("mcwgxrcfuvluldbc")
    public suspend fun subnetCidr(`value`: Output) {
        this.subnetCidr = value
    }

    /**
     * @param value The ID of the subnet on which to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
     * > **Note:** Exactly one of `gateway_id`, `subnet_id` or `subnet_cidr` must be specified.
     * > **Note:** If specifying `ingress_application_gateway` in conjunction with `only_critical_addons_enabled`, the AGIC pod will fail to start. A separate `azure.containerservice.KubernetesClusterNodePool` is required to run the AGIC pod successfully. This is because AGIC is classed as a "non-critical addon".
     */
    @JvmName("iqrqsfpiefykkqex")
    public suspend fun subnetId(`value`: Output) {
        this.subnetId = value
    }

    /**
     * @param value The ID of the Application Gateway associated with the ingress controller deployed to this Kubernetes Cluster.
     */
    @JvmName("krvsacrvtjnfkgjb")
    public suspend fun effectiveGatewayId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.effectiveGatewayId = mapped
    }

    /**
     * @param value The ID of the Application Gateway to integrate with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-existing) page for further details.
     */
    @JvmName("uctcakpctjfyaasq")
    public suspend fun gatewayId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gatewayId = mapped
    }

    /**
     * @param value The name of the Application Gateway to be used or created in the Nodepool Resource Group, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
     */
    @JvmName("qhqmthnepwbdywqs")
    public suspend fun gatewayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gatewayName = mapped
    }

    /**
     * @param value An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
     */
    @JvmName("dtgdunxhncfcflco")
    public suspend
    fun ingressApplicationGatewayIdentities(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ingressApplicationGatewayIdentities = mapped
    }

    /**
     * @param argument An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
     */
    @JvmName("gbccjlcnrfvlohub")
    public suspend
    fun ingressApplicationGatewayIdentities(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            KubernetesClusterIngressApplicationGatewayIngressApplicationGatewayIdentityArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.ingressApplicationGatewayIdentities = mapped
    }

    /**
     * @param argument An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
     */
    @JvmName("uibwlwfxceumaghu")
    public suspend fun ingressApplicationGatewayIdentities(
        vararg
        argument: suspend KubernetesClusterIngressApplicationGatewayIngressApplicationGatewayIdentityArgsBuilder.() -> Unit,
    ) {
        val toBeMapped = argument.toList().map {
            KubernetesClusterIngressApplicationGatewayIngressApplicationGatewayIdentityArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.ingressApplicationGatewayIdentities = mapped
    }

    /**
     * @param argument An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
     */
    @JvmName("ldvxbkcwqkjebnab")
    public suspend
    fun ingressApplicationGatewayIdentities(argument: suspend KubernetesClusterIngressApplicationGatewayIngressApplicationGatewayIdentityArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                KubernetesClusterIngressApplicationGatewayIngressApplicationGatewayIdentityArgsBuilder().applySuspend
                    { argument() }.build(),
            )
        val mapped = of(toBeMapped)
        this.ingressApplicationGatewayIdentities = mapped
    }

    /**
     * @param values An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.
     */
    @JvmName("jjiktkwedqqyeusp")
    public suspend fun ingressApplicationGatewayIdentities(
        vararg
        values: KubernetesClusterIngressApplicationGatewayIngressApplicationGatewayIdentityArgs,
    ) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ingressApplicationGatewayIdentities = mapped
    }

    /**
     * @param value The subnet CIDR to be used to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
     */
    @JvmName("bncssrwlkpfmeugt")
    public suspend fun subnetCidr(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetCidr = mapped
    }

    /**
     * @param value The ID of the subnet on which to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.
     * > **Note:** Exactly one of `gateway_id`, `subnet_id` or `subnet_cidr` must be specified.
     * > **Note:** If specifying `ingress_application_gateway` in conjunction with `only_critical_addons_enabled`, the AGIC pod will fail to start. A separate `azure.containerservice.KubernetesClusterNodePool` is required to run the AGIC pod successfully. This is because AGIC is classed as a "non-critical addon".
     */
    @JvmName("vquwvomdsnucelul")
    public suspend fun subnetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetId = mapped
    }

    internal fun build(): KubernetesClusterIngressApplicationGatewayArgs =
        KubernetesClusterIngressApplicationGatewayArgs(
            effectiveGatewayId = effectiveGatewayId,
            gatewayId = gatewayId,
            gatewayName = gatewayName,
            ingressApplicationGatewayIdentities = ingressApplicationGatewayIdentities,
            subnetCidr = subnetCidr,
            subnetId = subnetId,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy