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

com.pulumi.cloudflare.kotlin.inputs.ZeroTrustGatewayPolicyRuleSettingsEgressArgs.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: 5.40.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.cloudflare.kotlin.inputs

import com.pulumi.cloudflare.inputs.ZeroTrustGatewayPolicyRuleSettingsEgressArgs.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.jvm.JvmName

/**
 *
 * @property ipv4 The IPv4 address to be used for egress.
 * @property ipv4Fallback The IPv4 address to be used for egress in the event of an error egressing with the primary IPv4. Can be '0.0.0.0' to indicate local egreass via Warp IPs.
 * @property ipv6 The IPv6 range to be used for egress.
 */
public data class ZeroTrustGatewayPolicyRuleSettingsEgressArgs(
    public val ipv4: Output,
    public val ipv4Fallback: Output? = null,
    public val ipv6: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.cloudflare.inputs.ZeroTrustGatewayPolicyRuleSettingsEgressArgs =
        com.pulumi.cloudflare.inputs.ZeroTrustGatewayPolicyRuleSettingsEgressArgs.builder()
            .ipv4(ipv4.applyValue({ args0 -> args0 }))
            .ipv4Fallback(ipv4Fallback?.applyValue({ args0 -> args0 }))
            .ipv6(ipv6.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ZeroTrustGatewayPolicyRuleSettingsEgressArgs].
 */
@PulumiTagMarker
public class ZeroTrustGatewayPolicyRuleSettingsEgressArgsBuilder internal constructor() {
    private var ipv4: Output? = null

    private var ipv4Fallback: Output? = null

    private var ipv6: Output? = null

    /**
     * @param value The IPv4 address to be used for egress.
     */
    @JvmName("uvyfyvwiemcsxrsg")
    public suspend fun ipv4(`value`: Output) {
        this.ipv4 = value
    }

    /**
     * @param value The IPv4 address to be used for egress in the event of an error egressing with the primary IPv4. Can be '0.0.0.0' to indicate local egreass via Warp IPs.
     */
    @JvmName("yfurpifravayfqkl")
    public suspend fun ipv4Fallback(`value`: Output) {
        this.ipv4Fallback = value
    }

    /**
     * @param value The IPv6 range to be used for egress.
     */
    @JvmName("cxwrqcpgbmhtsglm")
    public suspend fun ipv6(`value`: Output) {
        this.ipv6 = value
    }

    /**
     * @param value The IPv4 address to be used for egress.
     */
    @JvmName("bywwporideuctreb")
    public suspend fun ipv4(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipv4 = mapped
    }

    /**
     * @param value The IPv4 address to be used for egress in the event of an error egressing with the primary IPv4. Can be '0.0.0.0' to indicate local egreass via Warp IPs.
     */
    @JvmName("jshvdvrjvqwmsynt")
    public suspend fun ipv4Fallback(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipv4Fallback = mapped
    }

    /**
     * @param value The IPv6 range to be used for egress.
     */
    @JvmName("kpurtmqbynrhoibu")
    public suspend fun ipv6(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipv6 = mapped
    }

    internal fun build(): ZeroTrustGatewayPolicyRuleSettingsEgressArgs =
        ZeroTrustGatewayPolicyRuleSettingsEgressArgs(
            ipv4 = ipv4 ?: throw PulumiNullFieldException("ipv4"),
            ipv4Fallback = ipv4Fallback,
            ipv6 = ipv6 ?: throw PulumiNullFieldException("ipv6"),
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy