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

com.pulumi.googlenative.compute.v1.kotlin.inputs.RouterNatRuleActionArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.googlenative.compute.v1.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.compute.v1.inputs.RouterNatRuleActionArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property sourceNatActiveIps A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.
 * @property sourceNatDrainIps A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.
 */
public data class RouterNatRuleActionArgs(
    public val sourceNatActiveIps: Output>? = null,
    public val sourceNatDrainIps: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.compute.v1.inputs.RouterNatRuleActionArgs =
        com.pulumi.googlenative.compute.v1.inputs.RouterNatRuleActionArgs.builder()
            .sourceNatActiveIps(sourceNatActiveIps?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .sourceNatDrainIps(sourceNatDrainIps?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

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

    private var sourceNatDrainIps: Output>? = null

    /**
     * @param value A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.
     */
    @JvmName("yxpcfgjafxhqcrxn")
    public suspend fun sourceNatActiveIps(`value`: Output>) {
        this.sourceNatActiveIps = value
    }

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

    /**
     * @param values A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.
     */
    @JvmName("fnhrpusmylhcebnc")
    public suspend fun sourceNatActiveIps(values: List>) {
        this.sourceNatActiveIps = Output.all(values)
    }

    /**
     * @param value A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.
     */
    @JvmName("yfylnrbteardfykt")
    public suspend fun sourceNatDrainIps(`value`: Output>) {
        this.sourceNatDrainIps = value
    }

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

    /**
     * @param values A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.
     */
    @JvmName("qqsmpasqkmgurast")
    public suspend fun sourceNatDrainIps(values: List>) {
        this.sourceNatDrainIps = Output.all(values)
    }

    /**
     * @param value A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.
     */
    @JvmName("peawngafmkunmxrb")
    public suspend fun sourceNatActiveIps(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceNatActiveIps = mapped
    }

    /**
     * @param values A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.
     */
    @JvmName("xawlifxjuslohoim")
    public suspend fun sourceNatActiveIps(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sourceNatActiveIps = mapped
    }

    /**
     * @param value A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.
     */
    @JvmName("wcxhtvsoftpnhpno")
    public suspend fun sourceNatDrainIps(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceNatDrainIps = mapped
    }

    /**
     * @param values A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.
     */
    @JvmName("fgyxhshdfggeydhf")
    public suspend fun sourceNatDrainIps(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sourceNatDrainIps = mapped
    }

    internal fun build(): RouterNatRuleActionArgs = RouterNatRuleActionArgs(
        sourceNatActiveIps = sourceNatActiveIps,
        sourceNatDrainIps = sourceNatDrainIps,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy