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

com.pulumi.azurenative.networkcloud.kotlin.inputs.ServiceLoadBalancerBgpPeerArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.networkcloud.kotlin.inputs

import com.pulumi.azurenative.networkcloud.inputs.ServiceLoadBalancerBgpPeerArgs.builder
import com.pulumi.azurenative.networkcloud.kotlin.enums.BfdEnabled
import com.pulumi.azurenative.networkcloud.kotlin.enums.BgpMultiHop
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.Double
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property bfdEnabled The indicator of BFD enablement for this BgpPeer.
 * @property bgpMultiHop The indicator to enable multi-hop peering support.
 * @property holdTime The requested BGP hold time value. This field uses ISO 8601 duration format, for example P1H.
 * @property keepAliveTime The requested BGP keepalive time value. This field uses ISO 8601 duration format, for example P1H.
 * @property myAsn The autonomous system number used for the local end of the BGP session.
 * @property name The name used to identify this BGP peer for association with a BGP advertisement.
 * @property password The authentication password for routers enforcing TCP MD5 authenticated sessions.
 * @property peerAddress The IPv4 or IPv6 address used to connect this BGP session.
 * @property peerAsn The autonomous system number expected from the remote end of the BGP session.
 * @property peerPort The port used to connect this BGP session.
 */
public data class ServiceLoadBalancerBgpPeerArgs(
    public val bfdEnabled: Output>? = null,
    public val bgpMultiHop: Output>? = null,
    public val holdTime: Output? = null,
    public val keepAliveTime: Output? = null,
    public val myAsn: Output? = null,
    public val name: Output,
    public val password: Output? = null,
    public val peerAddress: Output,
    public val peerAsn: Output,
    public val peerPort: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.networkcloud.inputs.ServiceLoadBalancerBgpPeerArgs =
        com.pulumi.azurenative.networkcloud.inputs.ServiceLoadBalancerBgpPeerArgs.builder()
            .bfdEnabled(
                bfdEnabled?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .bgpMultiHop(
                bgpMultiHop?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .holdTime(holdTime?.applyValue({ args0 -> args0 }))
            .keepAliveTime(keepAliveTime?.applyValue({ args0 -> args0 }))
            .myAsn(myAsn?.applyValue({ args0 -> args0 }))
            .name(name.applyValue({ args0 -> args0 }))
            .password(password?.applyValue({ args0 -> args0 }))
            .peerAddress(peerAddress.applyValue({ args0 -> args0 }))
            .peerAsn(peerAsn.applyValue({ args0 -> args0 }))
            .peerPort(peerPort?.applyValue({ args0 -> args0 })).build()
}

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

    private var bgpMultiHop: Output>? = null

    private var holdTime: Output? = null

    private var keepAliveTime: Output? = null

    private var myAsn: Output? = null

    private var name: Output? = null

    private var password: Output? = null

    private var peerAddress: Output? = null

    private var peerAsn: Output? = null

    private var peerPort: Output? = null

    /**
     * @param value The indicator of BFD enablement for this BgpPeer.
     */
    @JvmName("bbeuxcfswhqngphw")
    public suspend fun bfdEnabled(`value`: Output>) {
        this.bfdEnabled = value
    }

    /**
     * @param value The indicator to enable multi-hop peering support.
     */
    @JvmName("oeumctlqpnipfgts")
    public suspend fun bgpMultiHop(`value`: Output>) {
        this.bgpMultiHop = value
    }

    /**
     * @param value The requested BGP hold time value. This field uses ISO 8601 duration format, for example P1H.
     */
    @JvmName("coypbxfmraakjnfp")
    public suspend fun holdTime(`value`: Output) {
        this.holdTime = value
    }

    /**
     * @param value The requested BGP keepalive time value. This field uses ISO 8601 duration format, for example P1H.
     */
    @JvmName("dymgolyrclunjnul")
    public suspend fun keepAliveTime(`value`: Output) {
        this.keepAliveTime = value
    }

    /**
     * @param value The autonomous system number used for the local end of the BGP session.
     */
    @JvmName("qvioqibqotsqxmdb")
    public suspend fun myAsn(`value`: Output) {
        this.myAsn = value
    }

    /**
     * @param value The name used to identify this BGP peer for association with a BGP advertisement.
     */
    @JvmName("spxypqllouyliird")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The authentication password for routers enforcing TCP MD5 authenticated sessions.
     */
    @JvmName("ksvmjohbngnogsva")
    public suspend fun password(`value`: Output) {
        this.password = value
    }

    /**
     * @param value The IPv4 or IPv6 address used to connect this BGP session.
     */
    @JvmName("lvbvgslgvghjppml")
    public suspend fun peerAddress(`value`: Output) {
        this.peerAddress = value
    }

    /**
     * @param value The autonomous system number expected from the remote end of the BGP session.
     */
    @JvmName("sygghnqvyhlxnlsa")
    public suspend fun peerAsn(`value`: Output) {
        this.peerAsn = value
    }

    /**
     * @param value The port used to connect this BGP session.
     */
    @JvmName("hlqtafiwqdydbfka")
    public suspend fun peerPort(`value`: Output) {
        this.peerPort = value
    }

    /**
     * @param value The indicator of BFD enablement for this BgpPeer.
     */
    @JvmName("fovlyebjkmcmghwe")
    public suspend fun bfdEnabled(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bfdEnabled = mapped
    }

    /**
     * @param value The indicator of BFD enablement for this BgpPeer.
     */
    @JvmName("iaxhpbnesjkfggyd")
    public fun bfdEnabled(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.bfdEnabled = mapped
    }

    /**
     * @param value The indicator of BFD enablement for this BgpPeer.
     */
    @JvmName("gprxdsmurswydtgq")
    public fun bfdEnabled(`value`: BfdEnabled) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.bfdEnabled = mapped
    }

    /**
     * @param value The indicator to enable multi-hop peering support.
     */
    @JvmName("vudgbbotmpyyasgm")
    public suspend fun bgpMultiHop(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bgpMultiHop = mapped
    }

    /**
     * @param value The indicator to enable multi-hop peering support.
     */
    @JvmName("kmhylufhbofwtosb")
    public fun bgpMultiHop(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.bgpMultiHop = mapped
    }

    /**
     * @param value The indicator to enable multi-hop peering support.
     */
    @JvmName("wuprvviljdlnbmwh")
    public fun bgpMultiHop(`value`: BgpMultiHop) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.bgpMultiHop = mapped
    }

    /**
     * @param value The requested BGP hold time value. This field uses ISO 8601 duration format, for example P1H.
     */
    @JvmName("dnstiniktqufkxgo")
    public suspend fun holdTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.holdTime = mapped
    }

    /**
     * @param value The requested BGP keepalive time value. This field uses ISO 8601 duration format, for example P1H.
     */
    @JvmName("rxddnnbcchgarkop")
    public suspend fun keepAliveTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keepAliveTime = mapped
    }

    /**
     * @param value The autonomous system number used for the local end of the BGP session.
     */
    @JvmName("mqociopvdbccxthg")
    public suspend fun myAsn(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.myAsn = mapped
    }

    /**
     * @param value The name used to identify this BGP peer for association with a BGP advertisement.
     */
    @JvmName("crsjeusqniyqpsqd")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The authentication password for routers enforcing TCP MD5 authenticated sessions.
     */
    @JvmName("cdlwegjxohrrelrb")
    public suspend fun password(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value The IPv4 or IPv6 address used to connect this BGP session.
     */
    @JvmName("nemlulhnaogdukvg")
    public suspend fun peerAddress(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.peerAddress = mapped
    }

    /**
     * @param value The autonomous system number expected from the remote end of the BGP session.
     */
    @JvmName("rfdyhhcgtqajnvgc")
    public suspend fun peerAsn(`value`: Double) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.peerAsn = mapped
    }

    /**
     * @param value The port used to connect this BGP session.
     */
    @JvmName("sdkoacxnmtqamjbm")
    public suspend fun peerPort(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.peerPort = mapped
    }

    internal fun build(): ServiceLoadBalancerBgpPeerArgs = ServiceLoadBalancerBgpPeerArgs(
        bfdEnabled = bfdEnabled,
        bgpMultiHop = bgpMultiHop,
        holdTime = holdTime,
        keepAliveTime = keepAliveTime,
        myAsn = myAsn,
        name = name ?: throw PulumiNullFieldException("name"),
        password = password,
        peerAddress = peerAddress ?: throw PulumiNullFieldException("peerAddress"),
        peerAsn = peerAsn ?: throw PulumiNullFieldException("peerAsn"),
        peerPort = peerPort,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy