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

com.pulumi.azurenative.network.kotlin.inputs.IpsecPolicyArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.network.kotlin.inputs

import com.pulumi.azurenative.network.inputs.IpsecPolicyArgs.builder
import com.pulumi.azurenative.network.kotlin.enums.DhGroup
import com.pulumi.azurenative.network.kotlin.enums.IkeEncryption
import com.pulumi.azurenative.network.kotlin.enums.IkeIntegrity
import com.pulumi.azurenative.network.kotlin.enums.IpsecEncryption
import com.pulumi.azurenative.network.kotlin.enums.IpsecIntegrity
import com.pulumi.azurenative.network.kotlin.enums.PfsGroup
import com.pulumi.core.Either
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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * An IPSec Policy configuration for a virtual network gateway connection.
 * @property dhGroup The DH Group used in IKE Phase 1 for initial SA.
 * @property ikeEncryption The IKE encryption algorithm (IKE phase 2).
 * @property ikeIntegrity The IKE integrity algorithm (IKE phase 2).
 * @property ipsecEncryption The IPSec encryption algorithm (IKE phase 1).
 * @property ipsecIntegrity The IPSec integrity algorithm (IKE phase 1).
 * @property pfsGroup The Pfs Group used in IKE Phase 2 for new child SA.
 * @property saDataSizeKilobytes The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel.
 * @property saLifeTimeSeconds The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel.
 */
public data class IpsecPolicyArgs(
    public val dhGroup: Output>,
    public val ikeEncryption: Output>,
    public val ikeIntegrity: Output>,
    public val ipsecEncryption: Output>,
    public val ipsecIntegrity: Output>,
    public val pfsGroup: Output>,
    public val saDataSizeKilobytes: Output,
    public val saLifeTimeSeconds: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.network.inputs.IpsecPolicyArgs =
        com.pulumi.azurenative.network.inputs.IpsecPolicyArgs.builder()
            .dhGroup(
                dhGroup.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .ikeEncryption(
                ikeEncryption.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .ikeIntegrity(
                ikeIntegrity.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .ipsecEncryption(
                ipsecEncryption.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .ipsecIntegrity(
                ipsecIntegrity.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .pfsGroup(
                pfsGroup.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .saDataSizeKilobytes(saDataSizeKilobytes.applyValue({ args0 -> args0 }))
            .saLifeTimeSeconds(saLifeTimeSeconds.applyValue({ args0 -> args0 })).build()
}

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

    private var ikeEncryption: Output>? = null

    private var ikeIntegrity: Output>? = null

    private var ipsecEncryption: Output>? = null

    private var ipsecIntegrity: Output>? = null

    private var pfsGroup: Output>? = null

    private var saDataSizeKilobytes: Output? = null

    private var saLifeTimeSeconds: Output? = null

    /**
     * @param value The DH Group used in IKE Phase 1 for initial SA.
     */
    @JvmName("bgcjeoevcxgjdyhc")
    public suspend fun dhGroup(`value`: Output>) {
        this.dhGroup = value
    }

    /**
     * @param value The IKE encryption algorithm (IKE phase 2).
     */
    @JvmName("hdsblctqxkbbovjk")
    public suspend fun ikeEncryption(`value`: Output>) {
        this.ikeEncryption = value
    }

    /**
     * @param value The IKE integrity algorithm (IKE phase 2).
     */
    @JvmName("eegwbbxvnhjjypko")
    public suspend fun ikeIntegrity(`value`: Output>) {
        this.ikeIntegrity = value
    }

    /**
     * @param value The IPSec encryption algorithm (IKE phase 1).
     */
    @JvmName("aplpyhiioddiswlg")
    public suspend fun ipsecEncryption(`value`: Output>) {
        this.ipsecEncryption = value
    }

    /**
     * @param value The IPSec integrity algorithm (IKE phase 1).
     */
    @JvmName("nwjrxbfulxbfthui")
    public suspend fun ipsecIntegrity(`value`: Output>) {
        this.ipsecIntegrity = value
    }

    /**
     * @param value The Pfs Group used in IKE Phase 2 for new child SA.
     */
    @JvmName("hqwjegqwfkbhesvc")
    public suspend fun pfsGroup(`value`: Output>) {
        this.pfsGroup = value
    }

    /**
     * @param value The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel.
     */
    @JvmName("hinkxbaxgunsjvmy")
    public suspend fun saDataSizeKilobytes(`value`: Output) {
        this.saDataSizeKilobytes = value
    }

    /**
     * @param value The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel.
     */
    @JvmName("tgpbkgvndxauqnbj")
    public suspend fun saLifeTimeSeconds(`value`: Output) {
        this.saLifeTimeSeconds = value
    }

    /**
     * @param value The DH Group used in IKE Phase 1 for initial SA.
     */
    @JvmName("igkumgvdfwjxpuka")
    public suspend fun dhGroup(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dhGroup = mapped
    }

    /**
     * @param value The DH Group used in IKE Phase 1 for initial SA.
     */
    @JvmName("ojgcymyluonnqrho")
    public fun dhGroup(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dhGroup = mapped
    }

    /**
     * @param value The DH Group used in IKE Phase 1 for initial SA.
     */
    @JvmName("obgqnrscjuahbobi")
    public fun dhGroup(`value`: DhGroup) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dhGroup = mapped
    }

    /**
     * @param value The IKE encryption algorithm (IKE phase 2).
     */
    @JvmName("oshahyjcwhbmcpsa")
    public suspend fun ikeEncryption(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ikeEncryption = mapped
    }

    /**
     * @param value The IKE encryption algorithm (IKE phase 2).
     */
    @JvmName("ryoooyrijwdjwawg")
    public fun ikeEncryption(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ikeEncryption = mapped
    }

    /**
     * @param value The IKE encryption algorithm (IKE phase 2).
     */
    @JvmName("pkmbuqrhyckaajch")
    public fun ikeEncryption(`value`: IkeEncryption) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ikeEncryption = mapped
    }

    /**
     * @param value The IKE integrity algorithm (IKE phase 2).
     */
    @JvmName("mhlglaqyotjyqaji")
    public suspend fun ikeIntegrity(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ikeIntegrity = mapped
    }

    /**
     * @param value The IKE integrity algorithm (IKE phase 2).
     */
    @JvmName("rvlgpjtqvkxgspdj")
    public fun ikeIntegrity(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ikeIntegrity = mapped
    }

    /**
     * @param value The IKE integrity algorithm (IKE phase 2).
     */
    @JvmName("rddwwgwnhvvqbcsu")
    public fun ikeIntegrity(`value`: IkeIntegrity) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ikeIntegrity = mapped
    }

    /**
     * @param value The IPSec encryption algorithm (IKE phase 1).
     */
    @JvmName("mikxhvksilpfsvgo")
    public suspend fun ipsecEncryption(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipsecEncryption = mapped
    }

    /**
     * @param value The IPSec encryption algorithm (IKE phase 1).
     */
    @JvmName("kpedaajfabgeufdt")
    public fun ipsecEncryption(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipsecEncryption = mapped
    }

    /**
     * @param value The IPSec encryption algorithm (IKE phase 1).
     */
    @JvmName("jxoahembjgncyknu")
    public fun ipsecEncryption(`value`: IpsecEncryption) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipsecEncryption = mapped
    }

    /**
     * @param value The IPSec integrity algorithm (IKE phase 1).
     */
    @JvmName("meogmpxvpwnahisr")
    public suspend fun ipsecIntegrity(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipsecIntegrity = mapped
    }

    /**
     * @param value The IPSec integrity algorithm (IKE phase 1).
     */
    @JvmName("wfrnadcivuwhcdot")
    public fun ipsecIntegrity(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipsecIntegrity = mapped
    }

    /**
     * @param value The IPSec integrity algorithm (IKE phase 1).
     */
    @JvmName("toonqutnsicxrirj")
    public fun ipsecIntegrity(`value`: IpsecIntegrity) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipsecIntegrity = mapped
    }

    /**
     * @param value The Pfs Group used in IKE Phase 2 for new child SA.
     */
    @JvmName("upmftcluilrrwill")
    public suspend fun pfsGroup(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.pfsGroup = mapped
    }

    /**
     * @param value The Pfs Group used in IKE Phase 2 for new child SA.
     */
    @JvmName("fxjtddnjnflgwfev")
    public fun pfsGroup(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.pfsGroup = mapped
    }

    /**
     * @param value The Pfs Group used in IKE Phase 2 for new child SA.
     */
    @JvmName("aymotcpglfunmbiu")
    public fun pfsGroup(`value`: PfsGroup) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.pfsGroup = mapped
    }

    /**
     * @param value The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel.
     */
    @JvmName("nqynklwrpultbdkk")
    public suspend fun saDataSizeKilobytes(`value`: Int) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.saDataSizeKilobytes = mapped
    }

    /**
     * @param value The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel.
     */
    @JvmName("gwcykjcbvpinxhac")
    public suspend fun saLifeTimeSeconds(`value`: Int) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.saLifeTimeSeconds = mapped
    }

    internal fun build(): IpsecPolicyArgs = IpsecPolicyArgs(
        dhGroup = dhGroup ?: throw PulumiNullFieldException("dhGroup"),
        ikeEncryption = ikeEncryption ?: throw PulumiNullFieldException("ikeEncryption"),
        ikeIntegrity = ikeIntegrity ?: throw PulumiNullFieldException("ikeIntegrity"),
        ipsecEncryption = ipsecEncryption ?: throw PulumiNullFieldException("ipsecEncryption"),
        ipsecIntegrity = ipsecIntegrity ?: throw PulumiNullFieldException("ipsecIntegrity"),
        pfsGroup = pfsGroup ?: throw PulumiNullFieldException("pfsGroup"),
        saDataSizeKilobytes = saDataSizeKilobytes ?: throw PulumiNullFieldException("saDataSizeKilobytes"),
        saLifeTimeSeconds = saLifeTimeSeconds ?: throw PulumiNullFieldException("saLifeTimeSeconds"),
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy