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

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

package com.pulumi.azure.compute.kotlin.inputs

import com.pulumi.azure.compute.inputs.ScaleSetNetworkProfileIpConfigurationArgs.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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property applicationGatewayBackendAddressPoolIds Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
 * @property applicationSecurityGroupIds Specifies up to `20` application security group IDs.
 * @property loadBalancerBackendAddressPoolIds Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
 * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
 * @property loadBalancerInboundNatRulesIds Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
 * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
 * @property name Specifies name of the IP configuration.
 * @property primary Specifies if this ip_configuration is the primary one.
 * @property publicIpAddressConfiguration Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The `public_ip_address_configuration` block is documented below.
 * @property subnetId Specifies the identifier of the subnet.
 */
public data class ScaleSetNetworkProfileIpConfigurationArgs(
    public val applicationGatewayBackendAddressPoolIds: Output>? = null,
    public val applicationSecurityGroupIds: Output>? = null,
    public val loadBalancerBackendAddressPoolIds: Output>? = null,
    public val loadBalancerInboundNatRulesIds: Output>? = null,
    public val name: Output,
    public val primary: Output,
    public val publicIpAddressConfiguration: Output? = null,
    public val subnetId: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.compute.inputs.ScaleSetNetworkProfileIpConfigurationArgs =
        com.pulumi.azure.compute.inputs.ScaleSetNetworkProfileIpConfigurationArgs.builder()
            .applicationGatewayBackendAddressPoolIds(
                applicationGatewayBackendAddressPoolIds?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .applicationSecurityGroupIds(
                applicationSecurityGroupIds?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .loadBalancerBackendAddressPoolIds(
                loadBalancerBackendAddressPoolIds?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .loadBalancerInboundNatRulesIds(
                loadBalancerInboundNatRulesIds?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .name(name.applyValue({ args0 -> args0 }))
            .primary(primary.applyValue({ args0 -> args0 }))
            .publicIpAddressConfiguration(
                publicIpAddressConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .subnetId(subnetId.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ScaleSetNetworkProfileIpConfigurationArgs].
 */
@PulumiTagMarker
public class ScaleSetNetworkProfileIpConfigurationArgsBuilder internal constructor() {
    private var applicationGatewayBackendAddressPoolIds: Output>? = null

    private var applicationSecurityGroupIds: Output>? = null

    private var loadBalancerBackendAddressPoolIds: Output>? = null

    private var loadBalancerInboundNatRulesIds: Output>? = null

    private var name: Output? = null

    private var primary: Output? = null

    private var publicIpAddressConfiguration:
        Output? = null

    private var subnetId: Output? = null

    /**
     * @param value Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
     */
    @JvmName("koxwffytpaclnytl")
    public suspend fun applicationGatewayBackendAddressPoolIds(`value`: Output>) {
        this.applicationGatewayBackendAddressPoolIds = value
    }

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

    /**
     * @param values Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
     */
    @JvmName("rwcwkdercrknmwuk")
    public suspend fun applicationGatewayBackendAddressPoolIds(values: List>) {
        this.applicationGatewayBackendAddressPoolIds = Output.all(values)
    }

    /**
     * @param value Specifies up to `20` application security group IDs.
     */
    @JvmName("vhbcpoiialfhwjno")
    public suspend fun applicationSecurityGroupIds(`value`: Output>) {
        this.applicationSecurityGroupIds = value
    }

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

    /**
     * @param values Specifies up to `20` application security group IDs.
     */
    @JvmName("lxwymeksntrquvlm")
    public suspend fun applicationSecurityGroupIds(values: List>) {
        this.applicationSecurityGroupIds = Output.all(values)
    }

    /**
     * @param value Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("ylefoubyynsasgfv")
    public suspend fun loadBalancerBackendAddressPoolIds(`value`: Output>) {
        this.loadBalancerBackendAddressPoolIds = value
    }

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

    /**
     * @param values Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("gglhvoyexwupbarx")
    public suspend fun loadBalancerBackendAddressPoolIds(values: List>) {
        this.loadBalancerBackendAddressPoolIds = Output.all(values)
    }

    /**
     * @param value Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("yynuvbhmqdlemqih")
    public suspend fun loadBalancerInboundNatRulesIds(`value`: Output>) {
        this.loadBalancerInboundNatRulesIds = value
    }

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

    /**
     * @param values Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("whmsiaxowssbgsyq")
    public suspend fun loadBalancerInboundNatRulesIds(values: List>) {
        this.loadBalancerInboundNatRulesIds = Output.all(values)
    }

    /**
     * @param value Specifies name of the IP configuration.
     */
    @JvmName("hkcxmtjrxjcgxqmh")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Specifies if this ip_configuration is the primary one.
     */
    @JvmName("exlmhdvwwbghpsny")
    public suspend fun primary(`value`: Output) {
        this.primary = value
    }

    /**
     * @param value Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The `public_ip_address_configuration` block is documented below.
     */
    @JvmName("tqhpnahhjimejfcl")
    public suspend fun publicIpAddressConfiguration(`value`: Output) {
        this.publicIpAddressConfiguration = value
    }

    /**
     * @param value Specifies the identifier of the subnet.
     */
    @JvmName("fxpdokeuxrvlkhum")
    public suspend fun subnetId(`value`: Output) {
        this.subnetId = value
    }

    /**
     * @param value Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
     */
    @JvmName("vfcresweqfllpipq")
    public suspend fun applicationGatewayBackendAddressPoolIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationGatewayBackendAddressPoolIds = mapped
    }

    /**
     * @param values Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
     */
    @JvmName("esfdbuibevusgvwc")
    public suspend fun applicationGatewayBackendAddressPoolIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.applicationGatewayBackendAddressPoolIds = mapped
    }

    /**
     * @param value Specifies up to `20` application security group IDs.
     */
    @JvmName("fpijcacjufndmkdh")
    public suspend fun applicationSecurityGroupIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationSecurityGroupIds = mapped
    }

    /**
     * @param values Specifies up to `20` application security group IDs.
     */
    @JvmName("jxhgcklkfbumwwss")
    public suspend fun applicationSecurityGroupIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.applicationSecurityGroupIds = mapped
    }

    /**
     * @param value Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("lfnidsaistmsubna")
    public suspend fun loadBalancerBackendAddressPoolIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancerBackendAddressPoolIds = mapped
    }

    /**
     * @param values Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("vmssmkslrbxsmtox")
    public suspend fun loadBalancerBackendAddressPoolIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loadBalancerBackendAddressPoolIds = mapped
    }

    /**
     * @param value Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("qqpfnvfodgkeoltv")
    public suspend fun loadBalancerInboundNatRulesIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancerInboundNatRulesIds = mapped
    }

    /**
     * @param values Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
     * > **NOTE:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     */
    @JvmName("gjjdbwilmtdwulmd")
    public suspend fun loadBalancerInboundNatRulesIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loadBalancerInboundNatRulesIds = mapped
    }

    /**
     * @param value Specifies name of the IP configuration.
     */
    @JvmName("dahauqiaiyogkmer")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Specifies if this ip_configuration is the primary one.
     */
    @JvmName("dsaprcehorakxlew")
    public suspend fun primary(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.primary = mapped
    }

    /**
     * @param value Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The `public_ip_address_configuration` block is documented below.
     */
    @JvmName("obvfabcufkeaqxva")
    public suspend fun publicIpAddressConfiguration(`value`: ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicIpAddressConfiguration = mapped
    }

    /**
     * @param argument Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The `public_ip_address_configuration` block is documented below.
     */
    @JvmName("qcgxhrypalgknjmm")
    public suspend fun publicIpAddressConfiguration(argument: suspend ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfigurationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.publicIpAddressConfiguration = mapped
    }

    /**
     * @param value Specifies the identifier of the subnet.
     */
    @JvmName("qjeacxsgibjlialq")
    public suspend fun subnetId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.subnetId = mapped
    }

    internal fun build(): ScaleSetNetworkProfileIpConfigurationArgs =
        ScaleSetNetworkProfileIpConfigurationArgs(
            applicationGatewayBackendAddressPoolIds = applicationGatewayBackendAddressPoolIds,
            applicationSecurityGroupIds = applicationSecurityGroupIds,
            loadBalancerBackendAddressPoolIds = loadBalancerBackendAddressPoolIds,
            loadBalancerInboundNatRulesIds = loadBalancerInboundNatRulesIds,
            name = name ?: throw PulumiNullFieldException("name"),
            primary = primary ?: throw PulumiNullFieldException("primary"),
            publicIpAddressConfiguration = publicIpAddressConfiguration,
            subnetId = subnetId ?: throw PulumiNullFieldException("subnetId"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy