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

com.pulumi.azurenative.migrate.kotlin.inputs.NicIpConfigurationResourceSettingsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.migrate.kotlin.inputs

import com.pulumi.azurenative.migrate.inputs.NicIpConfigurationResourceSettingsArgs.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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Defines NIC IP configuration properties.
 * @property loadBalancerBackendAddressPools Gets or sets the references of the load balancer backend address pools.
 * @property loadBalancerNatRules Gets or sets the references of the load balancer NAT rules.
 * @property name Gets or sets the IP configuration name.
 * @property primary Gets or sets a value indicating whether this IP configuration is the primary.
 * @property privateIpAddress Gets or sets the private IP address of the network interface IP Configuration.
 * @property privateIpAllocationMethod Gets or sets the private IP address allocation method.
 * @property publicIp Defines reference to a public IP.
 * @property subnet Defines reference to subnet.
 */
public data class NicIpConfigurationResourceSettingsArgs(
    public val loadBalancerBackendAddressPools: Output>? = null,
    public val loadBalancerNatRules: Output>? = null,
    public val name: Output? = null,
    public val primary: Output? = null,
    public val privateIpAddress: Output? = null,
    public val privateIpAllocationMethod: Output? = null,
    public val publicIp: Output? = null,
    public val subnet: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.migrate.inputs.NicIpConfigurationResourceSettingsArgs =
        com.pulumi.azurenative.migrate.inputs.NicIpConfigurationResourceSettingsArgs.builder()
            .loadBalancerBackendAddressPools(
                loadBalancerBackendAddressPools?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .loadBalancerNatRules(
                loadBalancerNatRules?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .primary(primary?.applyValue({ args0 -> args0 }))
            .privateIpAddress(privateIpAddress?.applyValue({ args0 -> args0 }))
            .privateIpAllocationMethod(privateIpAllocationMethod?.applyValue({ args0 -> args0 }))
            .publicIp(publicIp?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .subnet(subnet?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

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

    private var loadBalancerNatRules: Output>? = null

    private var name: Output? = null

    private var primary: Output? = null

    private var privateIpAddress: Output? = null

    private var privateIpAllocationMethod: Output? = null

    private var publicIp: Output? = null

    private var subnet: Output? = null

    /**
     * @param value Gets or sets the references of the load balancer backend address pools.
     */
    @JvmName("jkkefqferfjvphap")
    public suspend fun loadBalancerBackendAddressPools(`value`: Output>) {
        this.loadBalancerBackendAddressPools = value
    }

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

    /**
     * @param values Gets or sets the references of the load balancer backend address pools.
     */
    @JvmName("qivnufhnbikqpidd")
    public suspend fun loadBalancerBackendAddressPools(values: List>) {
        this.loadBalancerBackendAddressPools = Output.all(values)
    }

    /**
     * @param value Gets or sets the references of the load balancer NAT rules.
     */
    @JvmName("tcdohtwxqhgnqjko")
    public suspend fun loadBalancerNatRules(`value`: Output>) {
        this.loadBalancerNatRules = value
    }

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

    /**
     * @param values Gets or sets the references of the load balancer NAT rules.
     */
    @JvmName("cdnxgqxgtrfadvbp")
    public suspend fun loadBalancerNatRules(values: List>) {
        this.loadBalancerNatRules = Output.all(values)
    }

    /**
     * @param value Gets or sets the IP configuration name.
     */
    @JvmName("rnlkcwsolcopqjsp")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Gets or sets a value indicating whether this IP configuration is the primary.
     */
    @JvmName("oaqqaexrehbfgdtg")
    public suspend fun primary(`value`: Output) {
        this.primary = value
    }

    /**
     * @param value Gets or sets the private IP address of the network interface IP Configuration.
     */
    @JvmName("uinmietkxflqhlct")
    public suspend fun privateIpAddress(`value`: Output) {
        this.privateIpAddress = value
    }

    /**
     * @param value Gets or sets the private IP address allocation method.
     */
    @JvmName("ethlajixsxcjcxus")
    public suspend fun privateIpAllocationMethod(`value`: Output) {
        this.privateIpAllocationMethod = value
    }

    /**
     * @param value Defines reference to a public IP.
     */
    @JvmName("srwgcjrinwlpfimu")
    public suspend fun publicIp(`value`: Output) {
        this.publicIp = value
    }

    /**
     * @param value Defines reference to subnet.
     */
    @JvmName("mclquikbavytkfxb")
    public suspend fun subnet(`value`: Output) {
        this.subnet = value
    }

    /**
     * @param value Gets or sets the references of the load balancer backend address pools.
     */
    @JvmName("gtiwejyymadoyixc")
    public suspend fun loadBalancerBackendAddressPools(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancerBackendAddressPools = mapped
    }

    /**
     * @param argument Gets or sets the references of the load balancer backend address pools.
     */
    @JvmName("mdlhneatbitgxfjd")
    public suspend fun loadBalancerBackendAddressPools(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LoadBalancerBackendAddressPoolReferenceArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.loadBalancerBackendAddressPools = mapped
    }

    /**
     * @param argument Gets or sets the references of the load balancer backend address pools.
     */
    @JvmName("euquabsranlkkdav")
    public suspend fun loadBalancerBackendAddressPools(vararg argument: suspend LoadBalancerBackendAddressPoolReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LoadBalancerBackendAddressPoolReferenceArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.loadBalancerBackendAddressPools = mapped
    }

    /**
     * @param argument Gets or sets the references of the load balancer backend address pools.
     */
    @JvmName("twqkaggmhbouecnh")
    public suspend fun loadBalancerBackendAddressPools(argument: suspend LoadBalancerBackendAddressPoolReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            LoadBalancerBackendAddressPoolReferenceArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.loadBalancerBackendAddressPools = mapped
    }

    /**
     * @param values Gets or sets the references of the load balancer backend address pools.
     */
    @JvmName("hluweujckesmheph")
    public suspend fun loadBalancerBackendAddressPools(vararg values: LoadBalancerBackendAddressPoolReferenceArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loadBalancerBackendAddressPools = mapped
    }

    /**
     * @param value Gets or sets the references of the load balancer NAT rules.
     */
    @JvmName("fgqieouusjnsnoue")
    public suspend fun loadBalancerNatRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancerNatRules = mapped
    }

    /**
     * @param argument Gets or sets the references of the load balancer NAT rules.
     */
    @JvmName("ojqjnatlmmvenean")
    public suspend fun loadBalancerNatRules(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LoadBalancerNatRuleReferenceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.loadBalancerNatRules = mapped
    }

    /**
     * @param argument Gets or sets the references of the load balancer NAT rules.
     */
    @JvmName("pxyjjvtjeipxpvjx")
    public suspend fun loadBalancerNatRules(vararg argument: suspend LoadBalancerNatRuleReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LoadBalancerNatRuleReferenceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.loadBalancerNatRules = mapped
    }

    /**
     * @param argument Gets or sets the references of the load balancer NAT rules.
     */
    @JvmName("wncmwutaupqmvfkr")
    public suspend fun loadBalancerNatRules(argument: suspend LoadBalancerNatRuleReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            LoadBalancerNatRuleReferenceArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.loadBalancerNatRules = mapped
    }

    /**
     * @param values Gets or sets the references of the load balancer NAT rules.
     */
    @JvmName("yjinjpkqulwmxbie")
    public suspend fun loadBalancerNatRules(vararg values: LoadBalancerNatRuleReferenceArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loadBalancerNatRules = mapped
    }

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

    /**
     * @param value Gets or sets a value indicating whether this IP configuration is the primary.
     */
    @JvmName("fsbkbolhmoqvqgkq")
    public suspend fun primary(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.primary = mapped
    }

    /**
     * @param value Gets or sets the private IP address of the network interface IP Configuration.
     */
    @JvmName("khiesvestnyogrpo")
    public suspend fun privateIpAddress(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateIpAddress = mapped
    }

    /**
     * @param value Gets or sets the private IP address allocation method.
     */
    @JvmName("ibgqhusbliphjqic")
    public suspend fun privateIpAllocationMethod(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateIpAllocationMethod = mapped
    }

    /**
     * @param value Defines reference to a public IP.
     */
    @JvmName("eetlnujrxuwxqtcm")
    public suspend fun publicIp(`value`: PublicIpReferenceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicIp = mapped
    }

    /**
     * @param argument Defines reference to a public IP.
     */
    @JvmName("thqgcxwnaqnvirla")
    public suspend fun publicIp(argument: suspend PublicIpReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = PublicIpReferenceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.publicIp = mapped
    }

    /**
     * @param value Defines reference to subnet.
     */
    @JvmName("psusgncvgdqhvtaa")
    public suspend fun subnet(`value`: SubnetReferenceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnet = mapped
    }

    /**
     * @param argument Defines reference to subnet.
     */
    @JvmName("lmyiniciyumdrjrs")
    public suspend fun subnet(argument: suspend SubnetReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = SubnetReferenceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.subnet = mapped
    }

    internal fun build(): NicIpConfigurationResourceSettingsArgs =
        NicIpConfigurationResourceSettingsArgs(
            loadBalancerBackendAddressPools = loadBalancerBackendAddressPools,
            loadBalancerNatRules = loadBalancerNatRules,
            name = name,
            primary = primary,
            privateIpAddress = privateIpAddress,
            privateIpAllocationMethod = privateIpAllocationMethod,
            publicIp = publicIp,
            subnet = subnet,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy