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

com.pulumi.azurenative.network.kotlin.inputs.ExpressRouteCircuitPeeringArgs.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: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

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

import com.pulumi.azurenative.network.inputs.ExpressRouteCircuitPeeringArgs.builder
import com.pulumi.azurenative.network.kotlin.enums.ExpressRoutePeeringState
import com.pulumi.azurenative.network.kotlin.enums.ExpressRoutePeeringType
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.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Peering in an ExpressRouteCircuit resource.
 * @property azureASN The Azure ASN.
 * @property connections The list of circuit connections associated with Azure Private Peering for this circuit.
 * @property gatewayManagerEtag The GatewayManager Etag.
 * @property id Resource ID.
 * @property ipv6PeeringConfig The IPv6 peering configuration.
 * @property microsoftPeeringConfig The Microsoft peering configuration.
 * @property name The name of the resource that is unique within a resource group. This name can be used to access the resource.
 * @property peerASN The peer ASN.
 * @property peeringType The peering type.
 * @property primaryAzurePort The primary port.
 * @property primaryPeerAddressPrefix The primary address prefix.
 * @property routeFilter The reference to the RouteFilter resource.
 * @property secondaryAzurePort The secondary port.
 * @property secondaryPeerAddressPrefix The secondary address prefix.
 * @property sharedKey The shared key.
 * @property state The peering state.
 * @property stats The peering stats of express route circuit.
 * @property vlanId The VLAN ID.
 */
public data class ExpressRouteCircuitPeeringArgs(
    public val azureASN: Output? = null,
    public val connections: Output>? = null,
    public val gatewayManagerEtag: Output? = null,
    public val id: Output? = null,
    public val ipv6PeeringConfig: Output? = null,
    public val microsoftPeeringConfig: Output? = null,
    public val name: Output? = null,
    public val peerASN: Output? = null,
    public val peeringType: Output>? = null,
    public val primaryAzurePort: Output? = null,
    public val primaryPeerAddressPrefix: Output? = null,
    public val routeFilter: Output? = null,
    public val secondaryAzurePort: Output? = null,
    public val secondaryPeerAddressPrefix: Output? = null,
    public val sharedKey: Output? = null,
    public val state: Output>? = null,
    public val stats: Output? = null,
    public val vlanId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.network.inputs.ExpressRouteCircuitPeeringArgs =
        com.pulumi.azurenative.network.inputs.ExpressRouteCircuitPeeringArgs.builder()
            .azureASN(azureASN?.applyValue({ args0 -> args0 }))
            .connections(
                connections?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .gatewayManagerEtag(gatewayManagerEtag?.applyValue({ args0 -> args0 }))
            .id(id?.applyValue({ args0 -> args0 }))
            .ipv6PeeringConfig(ipv6PeeringConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .microsoftPeeringConfig(
                microsoftPeeringConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .peerASN(peerASN?.applyValue({ args0 -> args0 }))
            .peeringType(
                peeringType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .primaryAzurePort(primaryAzurePort?.applyValue({ args0 -> args0 }))
            .primaryPeerAddressPrefix(primaryPeerAddressPrefix?.applyValue({ args0 -> args0 }))
            .routeFilter(routeFilter?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .secondaryAzurePort(secondaryAzurePort?.applyValue({ args0 -> args0 }))
            .secondaryPeerAddressPrefix(secondaryPeerAddressPrefix?.applyValue({ args0 -> args0 }))
            .sharedKey(sharedKey?.applyValue({ args0 -> args0 }))
            .state(
                state?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .stats(stats?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .vlanId(vlanId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ExpressRouteCircuitPeeringArgs].
 */
@PulumiTagMarker
public class ExpressRouteCircuitPeeringArgsBuilder internal constructor() {
    private var azureASN: Output? = null

    private var connections: Output>? = null

    private var gatewayManagerEtag: Output? = null

    private var id: Output? = null

    private var ipv6PeeringConfig: Output? = null

    private var microsoftPeeringConfig: Output? = null

    private var name: Output? = null

    private var peerASN: Output? = null

    private var peeringType: Output>? = null

    private var primaryAzurePort: Output? = null

    private var primaryPeerAddressPrefix: Output? = null

    private var routeFilter: Output? = null

    private var secondaryAzurePort: Output? = null

    private var secondaryPeerAddressPrefix: Output? = null

    private var sharedKey: Output? = null

    private var state: Output>? = null

    private var stats: Output? = null

    private var vlanId: Output? = null

    /**
     * @param value The Azure ASN.
     */
    @JvmName("nhadkdluampxxcns")
    public suspend fun azureASN(`value`: Output) {
        this.azureASN = value
    }

    /**
     * @param value The list of circuit connections associated with Azure Private Peering for this circuit.
     */
    @JvmName("jalpwnvrldsehpvv")
    public suspend fun connections(`value`: Output>) {
        this.connections = value
    }

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

    /**
     * @param values The list of circuit connections associated with Azure Private Peering for this circuit.
     */
    @JvmName("bbxxrvnvlbbiuflt")
    public suspend fun connections(values: List>) {
        this.connections = Output.all(values)
    }

    /**
     * @param value The GatewayManager Etag.
     */
    @JvmName("svsilchicykhgbdd")
    public suspend fun gatewayManagerEtag(`value`: Output) {
        this.gatewayManagerEtag = value
    }

    /**
     * @param value Resource ID.
     */
    @JvmName("qqalbhsswrhujive")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value The IPv6 peering configuration.
     */
    @JvmName("conpuuugkfdrjyms")
    public suspend fun ipv6PeeringConfig(`value`: Output) {
        this.ipv6PeeringConfig = value
    }

    /**
     * @param value The Microsoft peering configuration.
     */
    @JvmName("dridufvjdfksduhh")
    public suspend fun microsoftPeeringConfig(`value`: Output) {
        this.microsoftPeeringConfig = value
    }

    /**
     * @param value The name of the resource that is unique within a resource group. This name can be used to access the resource.
     */
    @JvmName("mmcssukvsjlsqbdu")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The peer ASN.
     */
    @JvmName("bunknenxsourbwvo")
    public suspend fun peerASN(`value`: Output) {
        this.peerASN = value
    }

    /**
     * @param value The peering type.
     */
    @JvmName("nohnmjhnfaaqvfba")
    public suspend fun peeringType(`value`: Output>) {
        this.peeringType = value
    }

    /**
     * @param value The primary port.
     */
    @JvmName("tcuhcgubsbyhxovt")
    public suspend fun primaryAzurePort(`value`: Output) {
        this.primaryAzurePort = value
    }

    /**
     * @param value The primary address prefix.
     */
    @JvmName("kfwfxbachgicxwhj")
    public suspend fun primaryPeerAddressPrefix(`value`: Output) {
        this.primaryPeerAddressPrefix = value
    }

    /**
     * @param value The reference to the RouteFilter resource.
     */
    @JvmName("aunifuyqyxafnpmn")
    public suspend fun routeFilter(`value`: Output) {
        this.routeFilter = value
    }

    /**
     * @param value The secondary port.
     */
    @JvmName("rayjkekymawkunjy")
    public suspend fun secondaryAzurePort(`value`: Output) {
        this.secondaryAzurePort = value
    }

    /**
     * @param value The secondary address prefix.
     */
    @JvmName("okdwcbmigubyoeed")
    public suspend fun secondaryPeerAddressPrefix(`value`: Output) {
        this.secondaryPeerAddressPrefix = value
    }

    /**
     * @param value The shared key.
     */
    @JvmName("svveaebtvjugiyos")
    public suspend fun sharedKey(`value`: Output) {
        this.sharedKey = value
    }

    /**
     * @param value The peering state.
     */
    @JvmName("ubgvibbmvlhjjofb")
    public suspend fun state(`value`: Output>) {
        this.state = value
    }

    /**
     * @param value The peering stats of express route circuit.
     */
    @JvmName("jdgwjtyaqrpyebeu")
    public suspend fun stats(`value`: Output) {
        this.stats = value
    }

    /**
     * @param value The VLAN ID.
     */
    @JvmName("xtcuttebsdyyyvtb")
    public suspend fun vlanId(`value`: Output) {
        this.vlanId = value
    }

    /**
     * @param value The Azure ASN.
     */
    @JvmName("trffvejssewqengc")
    public suspend fun azureASN(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.azureASN = mapped
    }

    /**
     * @param value The list of circuit connections associated with Azure Private Peering for this circuit.
     */
    @JvmName("timxeyuhxlynsbtk")
    public suspend fun connections(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.connections = mapped
    }

    /**
     * @param argument The list of circuit connections associated with Azure Private Peering for this circuit.
     */
    @JvmName("llrtdhnlpyiauptn")
    public suspend fun connections(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ExpressRouteCircuitConnectionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.connections = mapped
    }

    /**
     * @param argument The list of circuit connections associated with Azure Private Peering for this circuit.
     */
    @JvmName("gyymaopqoygsdnji")
    public suspend fun connections(vararg argument: suspend ExpressRouteCircuitConnectionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ExpressRouteCircuitConnectionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.connections = mapped
    }

    /**
     * @param argument The list of circuit connections associated with Azure Private Peering for this circuit.
     */
    @JvmName("wobxtavghfseqekt")
    public suspend fun connections(argument: suspend ExpressRouteCircuitConnectionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ExpressRouteCircuitConnectionArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.connections = mapped
    }

    /**
     * @param values The list of circuit connections associated with Azure Private Peering for this circuit.
     */
    @JvmName("sfgksjrlapwwdlye")
    public suspend fun connections(vararg values: ExpressRouteCircuitConnectionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.connections = mapped
    }

    /**
     * @param value The GatewayManager Etag.
     */
    @JvmName("rmaewvberuyvaybd")
    public suspend fun gatewayManagerEtag(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gatewayManagerEtag = mapped
    }

    /**
     * @param value Resource ID.
     */
    @JvmName("qciplpewjnathyyl")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value The IPv6 peering configuration.
     */
    @JvmName("wphgyypwkgjhtfrt")
    public suspend fun ipv6PeeringConfig(`value`: Ipv6ExpressRouteCircuitPeeringConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipv6PeeringConfig = mapped
    }

    /**
     * @param argument The IPv6 peering configuration.
     */
    @JvmName("tqniacipelaqciku")
    public suspend fun ipv6PeeringConfig(argument: suspend Ipv6ExpressRouteCircuitPeeringConfigArgsBuilder.() -> Unit) {
        val toBeMapped = Ipv6ExpressRouteCircuitPeeringConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.ipv6PeeringConfig = mapped
    }

    /**
     * @param value The Microsoft peering configuration.
     */
    @JvmName("ebwndcnurpqunbrt")
    public suspend fun microsoftPeeringConfig(`value`: ExpressRouteCircuitPeeringConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.microsoftPeeringConfig = mapped
    }

    /**
     * @param argument The Microsoft peering configuration.
     */
    @JvmName("qfbwatlsofrhltqs")
    public suspend fun microsoftPeeringConfig(argument: suspend ExpressRouteCircuitPeeringConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ExpressRouteCircuitPeeringConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.microsoftPeeringConfig = mapped
    }

    /**
     * @param value The name of the resource that is unique within a resource group. This name can be used to access the resource.
     */
    @JvmName("kqtubxbtjdmhyput")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The peer ASN.
     */
    @JvmName("cxviklbbrvogpjoa")
    public suspend fun peerASN(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.peerASN = mapped
    }

    /**
     * @param value The peering type.
     */
    @JvmName("tloeogwsocqvitbq")
    public suspend fun peeringType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.peeringType = mapped
    }

    /**
     * @param value The peering type.
     */
    @JvmName("wndbrmmnahpehaen")
    public fun peeringType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.peeringType = mapped
    }

    /**
     * @param value The peering type.
     */
    @JvmName("vtllhsvtjjgqhhsc")
    public fun peeringType(`value`: ExpressRoutePeeringType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.peeringType = mapped
    }

    /**
     * @param value The primary port.
     */
    @JvmName("wsqqldtamfrxwmft")
    public suspend fun primaryAzurePort(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.primaryAzurePort = mapped
    }

    /**
     * @param value The primary address prefix.
     */
    @JvmName("oswggmiuuhtexuys")
    public suspend fun primaryPeerAddressPrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.primaryPeerAddressPrefix = mapped
    }

    /**
     * @param value The reference to the RouteFilter resource.
     */
    @JvmName("xxgmngovubcelffs")
    public suspend fun routeFilter(`value`: SubResourceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.routeFilter = mapped
    }

    /**
     * @param argument The reference to the RouteFilter resource.
     */
    @JvmName("qbwjlhcfowugfefd")
    public suspend fun routeFilter(argument: suspend SubResourceArgsBuilder.() -> Unit) {
        val toBeMapped = SubResourceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.routeFilter = mapped
    }

    /**
     * @param value The secondary port.
     */
    @JvmName("wlfrhwgqwbqyqpbl")
    public suspend fun secondaryAzurePort(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secondaryAzurePort = mapped
    }

    /**
     * @param value The secondary address prefix.
     */
    @JvmName("coibprvdkshuxmxc")
    public suspend fun secondaryPeerAddressPrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secondaryPeerAddressPrefix = mapped
    }

    /**
     * @param value The shared key.
     */
    @JvmName("cmdrndtllpwpgowx")
    public suspend fun sharedKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sharedKey = mapped
    }

    /**
     * @param value The peering state.
     */
    @JvmName("amqiggqbehwyiksh")
    public suspend fun state(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.state = mapped
    }

    /**
     * @param value The peering state.
     */
    @JvmName("kkscrcikebqbahsw")
    public fun state(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.state = mapped
    }

    /**
     * @param value The peering state.
     */
    @JvmName("icgwawsyhreqdpsh")
    public fun state(`value`: ExpressRoutePeeringState) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.state = mapped
    }

    /**
     * @param value The peering stats of express route circuit.
     */
    @JvmName("gcykpooskqykgldf")
    public suspend fun stats(`value`: ExpressRouteCircuitStatsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.stats = mapped
    }

    /**
     * @param argument The peering stats of express route circuit.
     */
    @JvmName("hsysiuxbsvyrauos")
    public suspend fun stats(argument: suspend ExpressRouteCircuitStatsArgsBuilder.() -> Unit) {
        val toBeMapped = ExpressRouteCircuitStatsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.stats = mapped
    }

    /**
     * @param value The VLAN ID.
     */
    @JvmName("tjdftdqfnjlkcwtw")
    public suspend fun vlanId(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vlanId = mapped
    }

    internal fun build(): ExpressRouteCircuitPeeringArgs = ExpressRouteCircuitPeeringArgs(
        azureASN = azureASN,
        connections = connections,
        gatewayManagerEtag = gatewayManagerEtag,
        id = id,
        ipv6PeeringConfig = ipv6PeeringConfig,
        microsoftPeeringConfig = microsoftPeeringConfig,
        name = name,
        peerASN = peerASN,
        peeringType = peeringType,
        primaryAzurePort = primaryAzurePort,
        primaryPeerAddressPrefix = primaryPeerAddressPrefix,
        routeFilter = routeFilter,
        secondaryAzurePort = secondaryAzurePort,
        secondaryPeerAddressPrefix = secondaryPeerAddressPrefix,
        sharedKey = sharedKey,
        state = state,
        stats = stats,
        vlanId = vlanId,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy