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

com.pulumi.azure.lb.kotlin.inputs.LoadBalancerFrontendIpConfigurationArgs.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.lb.kotlin.inputs

import com.pulumi.azure.lb.inputs.LoadBalancerFrontendIpConfigurationArgs.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 kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property gatewayLoadBalancerFrontendIpConfigurationId The Frontend IP Configuration ID of a Gateway SKU Load Balancer.
 * @property id The id of the Frontend IP Configuration.
 * @property inboundNatRules The list of IDs of inbound rules that use this frontend IP.
 * @property loadBalancerRules The list of IDs of load balancing rules that use this frontend IP.
 * @property name Specifies the name of the frontend IP configuration.
 * @property outboundRules The list of IDs outbound rules that use this frontend IP.
 * @property privateIpAddress Private IP Address to assign to the Load Balancer. The last one and first four IPs in any range are reserved and cannot be manually assigned.
 * @property privateIpAddressAllocation The allocation method for the Private IP Address used by this Load Balancer. Possible values as `Dynamic` and `Static`.
 * @property privateIpAddressVersion The version of IP that the Private IP Address is. Possible values are `IPv4` or `IPv6`.
 * @property publicIpAddressId The ID of a Public IP Address which should be associated with the Load Balancer.
 * @property publicIpPrefixId The ID of a Public IP Prefix which should be associated with the Load Balancer. Public IP Prefix can only be used with outbound rules.
 * @property subnetId The ID of the Subnet which should be associated with the IP Configuration.
 * @property zones Specifies a list of Availability Zones in which the IP Address for this Load Balancer should be located.
 * > **NOTE:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/load-balancer/load-balancer-standard-availability-zones) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time.
 */
public data class LoadBalancerFrontendIpConfigurationArgs(
    public val gatewayLoadBalancerFrontendIpConfigurationId: Output? = null,
    public val id: Output? = null,
    public val inboundNatRules: Output>? = null,
    public val loadBalancerRules: Output>? = null,
    public val name: Output,
    public val outboundRules: Output>? = null,
    public val privateIpAddress: Output? = null,
    public val privateIpAddressAllocation: Output? = null,
    public val privateIpAddressVersion: Output? = null,
    public val publicIpAddressId: Output? = null,
    public val publicIpPrefixId: Output? = null,
    public val subnetId: Output? = null,
    public val zones: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.lb.inputs.LoadBalancerFrontendIpConfigurationArgs =
        com.pulumi.azure.lb.inputs.LoadBalancerFrontendIpConfigurationArgs.builder()
            .gatewayLoadBalancerFrontendIpConfigurationId(
                gatewayLoadBalancerFrontendIpConfigurationId?.applyValue({ args0 ->
                    args0
                }),
            )
            .id(id?.applyValue({ args0 -> args0 }))
            .inboundNatRules(inboundNatRules?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .loadBalancerRules(loadBalancerRules?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .name(name.applyValue({ args0 -> args0 }))
            .outboundRules(outboundRules?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .privateIpAddress(privateIpAddress?.applyValue({ args0 -> args0 }))
            .privateIpAddressAllocation(privateIpAddressAllocation?.applyValue({ args0 -> args0 }))
            .privateIpAddressVersion(privateIpAddressVersion?.applyValue({ args0 -> args0 }))
            .publicIpAddressId(publicIpAddressId?.applyValue({ args0 -> args0 }))
            .publicIpPrefixId(publicIpPrefixId?.applyValue({ args0 -> args0 }))
            .subnetId(subnetId?.applyValue({ args0 -> args0 }))
            .zones(zones?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [LoadBalancerFrontendIpConfigurationArgs].
 */
@PulumiTagMarker
public class LoadBalancerFrontendIpConfigurationArgsBuilder internal constructor() {
    private var gatewayLoadBalancerFrontendIpConfigurationId: Output? = null

    private var id: Output? = null

    private var inboundNatRules: Output>? = null

    private var loadBalancerRules: Output>? = null

    private var name: Output? = null

    private var outboundRules: Output>? = null

    private var privateIpAddress: Output? = null

    private var privateIpAddressAllocation: Output? = null

    private var privateIpAddressVersion: Output? = null

    private var publicIpAddressId: Output? = null

    private var publicIpPrefixId: Output? = null

    private var subnetId: Output? = null

    private var zones: Output>? = null

    /**
     * @param value The Frontend IP Configuration ID of a Gateway SKU Load Balancer.
     */
    @JvmName("yoffmnorunbiadtg")
    public suspend fun gatewayLoadBalancerFrontendIpConfigurationId(`value`: Output) {
        this.gatewayLoadBalancerFrontendIpConfigurationId = value
    }

    /**
     * @param value The id of the Frontend IP Configuration.
     */
    @JvmName("dbqedvacejeiuflu")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value The list of IDs of inbound rules that use this frontend IP.
     */
    @JvmName("johglqhhxratfjio")
    public suspend fun inboundNatRules(`value`: Output>) {
        this.inboundNatRules = value
    }

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

    /**
     * @param values The list of IDs of inbound rules that use this frontend IP.
     */
    @JvmName("suonhqdtjuhwnghw")
    public suspend fun inboundNatRules(values: List>) {
        this.inboundNatRules = Output.all(values)
    }

    /**
     * @param value The list of IDs of load balancing rules that use this frontend IP.
     */
    @JvmName("towcpjoywilfksdy")
    public suspend fun loadBalancerRules(`value`: Output>) {
        this.loadBalancerRules = value
    }

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

    /**
     * @param values The list of IDs of load balancing rules that use this frontend IP.
     */
    @JvmName("cmncvihdarveeyhh")
    public suspend fun loadBalancerRules(values: List>) {
        this.loadBalancerRules = Output.all(values)
    }

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

    /**
     * @param value The list of IDs outbound rules that use this frontend IP.
     */
    @JvmName("bhyvnmyjlstjpqdk")
    public suspend fun outboundRules(`value`: Output>) {
        this.outboundRules = value
    }

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

    /**
     * @param values The list of IDs outbound rules that use this frontend IP.
     */
    @JvmName("dxdduselxotxohci")
    public suspend fun outboundRules(values: List>) {
        this.outboundRules = Output.all(values)
    }

    /**
     * @param value Private IP Address to assign to the Load Balancer. The last one and first four IPs in any range are reserved and cannot be manually assigned.
     */
    @JvmName("ivgssahmejkaeffv")
    public suspend fun privateIpAddress(`value`: Output) {
        this.privateIpAddress = value
    }

    /**
     * @param value The allocation method for the Private IP Address used by this Load Balancer. Possible values as `Dynamic` and `Static`.
     */
    @JvmName("gecwsnucfjnrarmu")
    public suspend fun privateIpAddressAllocation(`value`: Output) {
        this.privateIpAddressAllocation = value
    }

    /**
     * @param value The version of IP that the Private IP Address is. Possible values are `IPv4` or `IPv6`.
     */
    @JvmName("lcskkerlmpnlmdvy")
    public suspend fun privateIpAddressVersion(`value`: Output) {
        this.privateIpAddressVersion = value
    }

    /**
     * @param value The ID of a Public IP Address which should be associated with the Load Balancer.
     */
    @JvmName("xinrshnowrkkxmys")
    public suspend fun publicIpAddressId(`value`: Output) {
        this.publicIpAddressId = value
    }

    /**
     * @param value The ID of a Public IP Prefix which should be associated with the Load Balancer. Public IP Prefix can only be used with outbound rules.
     */
    @JvmName("ennoklysonwxdixc")
    public suspend fun publicIpPrefixId(`value`: Output) {
        this.publicIpPrefixId = value
    }

    /**
     * @param value The ID of the Subnet which should be associated with the IP Configuration.
     */
    @JvmName("gdjnmbedyqewmsna")
    public suspend fun subnetId(`value`: Output) {
        this.subnetId = value
    }

    /**
     * @param value Specifies a list of Availability Zones in which the IP Address for this Load Balancer should be located.
     * > **NOTE:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/load-balancer/load-balancer-standard-availability-zones) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time.
     */
    @JvmName("bcachwvwucfcwuup")
    public suspend fun zones(`value`: Output>) {
        this.zones = value
    }

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

    /**
     * @param values Specifies a list of Availability Zones in which the IP Address for this Load Balancer should be located.
     * > **NOTE:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/load-balancer/load-balancer-standard-availability-zones) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time.
     */
    @JvmName("xwabjiiwfqwllsoo")
    public suspend fun zones(values: List>) {
        this.zones = Output.all(values)
    }

    /**
     * @param value The Frontend IP Configuration ID of a Gateway SKU Load Balancer.
     */
    @JvmName("xokpwqxmqholbnbu")
    public suspend fun gatewayLoadBalancerFrontendIpConfigurationId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gatewayLoadBalancerFrontendIpConfigurationId = mapped
    }

    /**
     * @param value The id of the Frontend IP Configuration.
     */
    @JvmName("vvpcnuhvxfscwvse")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value The list of IDs of inbound rules that use this frontend IP.
     */
    @JvmName("tblcalfmoggnthtk")
    public suspend fun inboundNatRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.inboundNatRules = mapped
    }

    /**
     * @param values The list of IDs of inbound rules that use this frontend IP.
     */
    @JvmName("oqthakfifdavivqr")
    public suspend fun inboundNatRules(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inboundNatRules = mapped
    }

    /**
     * @param value The list of IDs of load balancing rules that use this frontend IP.
     */
    @JvmName("jykryskeqvslmkhd")
    public suspend fun loadBalancerRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancerRules = mapped
    }

    /**
     * @param values The list of IDs of load balancing rules that use this frontend IP.
     */
    @JvmName("cgpfuvvfteqynknf")
    public suspend fun loadBalancerRules(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loadBalancerRules = mapped
    }

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

    /**
     * @param value The list of IDs outbound rules that use this frontend IP.
     */
    @JvmName("bsnbsqbrdlyscffa")
    public suspend fun outboundRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outboundRules = mapped
    }

    /**
     * @param values The list of IDs outbound rules that use this frontend IP.
     */
    @JvmName("wwtehifepdttqwrn")
    public suspend fun outboundRules(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outboundRules = mapped
    }

    /**
     * @param value Private IP Address to assign to the Load Balancer. The last one and first four IPs in any range are reserved and cannot be manually assigned.
     */
    @JvmName("turrxbdfbggirlqw")
    public suspend fun privateIpAddress(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateIpAddress = mapped
    }

    /**
     * @param value The allocation method for the Private IP Address used by this Load Balancer. Possible values as `Dynamic` and `Static`.
     */
    @JvmName("iehjyliwskjrvnff")
    public suspend fun privateIpAddressAllocation(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateIpAddressAllocation = mapped
    }

    /**
     * @param value The version of IP that the Private IP Address is. Possible values are `IPv4` or `IPv6`.
     */
    @JvmName("hfnjymfimhwjyyew")
    public suspend fun privateIpAddressVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateIpAddressVersion = mapped
    }

    /**
     * @param value The ID of a Public IP Address which should be associated with the Load Balancer.
     */
    @JvmName("jjakwxxfedauvswn")
    public suspend fun publicIpAddressId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicIpAddressId = mapped
    }

    /**
     * @param value The ID of a Public IP Prefix which should be associated with the Load Balancer. Public IP Prefix can only be used with outbound rules.
     */
    @JvmName("chpgrgsvifkcqjqh")
    public suspend fun publicIpPrefixId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicIpPrefixId = mapped
    }

    /**
     * @param value The ID of the Subnet which should be associated with the IP Configuration.
     */
    @JvmName("bgoialbckeuffeow")
    public suspend fun subnetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetId = mapped
    }

    /**
     * @param value Specifies a list of Availability Zones in which the IP Address for this Load Balancer should be located.
     * > **NOTE:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/load-balancer/load-balancer-standard-availability-zones) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time.
     */
    @JvmName("cisxwgigehocania")
    public suspend fun zones(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.zones = mapped
    }

    /**
     * @param values Specifies a list of Availability Zones in which the IP Address for this Load Balancer should be located.
     * > **NOTE:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/load-balancer/load-balancer-standard-availability-zones) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time.
     */
    @JvmName("lbirexelgtfellsl")
    public suspend fun zones(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.zones = mapped
    }

    internal fun build(): LoadBalancerFrontendIpConfigurationArgs =
        LoadBalancerFrontendIpConfigurationArgs(
            gatewayLoadBalancerFrontendIpConfigurationId = gatewayLoadBalancerFrontendIpConfigurationId,
            id = id,
            inboundNatRules = inboundNatRules,
            loadBalancerRules = loadBalancerRules,
            name = name ?: throw PulumiNullFieldException("name"),
            outboundRules = outboundRules,
            privateIpAddress = privateIpAddress,
            privateIpAddressAllocation = privateIpAddressAllocation,
            privateIpAddressVersion = privateIpAddressVersion,
            publicIpAddressId = publicIpAddressId,
            publicIpPrefixId = publicIpPrefixId,
            subnetId = subnetId,
            zones = zones,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy