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

com.pulumi.azure.mobile.kotlin.NetworkAttachedDataNetworkArgs.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: 6.15.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.mobile.kotlin

import com.pulumi.azure.mobile.NetworkAttachedDataNetworkArgs.builder
import com.pulumi.azure.mobile.kotlin.inputs.NetworkAttachedDataNetworkNetworkAddressPortTranslationArgs
import com.pulumi.azure.mobile.kotlin.inputs.NetworkAttachedDataNetworkNetworkAddressPortTranslationArgsBuilder
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Manages a Mobile Network Attached Data Network.
 * ## Example Usage
 * 
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azure.core.ResourceGroup;
 * import com.pulumi.azure.core.ResourceGroupArgs;
 * import com.pulumi.azure.databoxedge.Device;
 * import com.pulumi.azure.databoxedge.DeviceArgs;
 * import com.pulumi.azure.mobile.Network;
 * import com.pulumi.azure.mobile.NetworkArgs;
 * import com.pulumi.azure.mobile.NetworkPacketCoreControlPlane;
 * import com.pulumi.azure.mobile.NetworkPacketCoreControlPlaneArgs;
 * import com.pulumi.azure.mobile.inputs.NetworkPacketCoreControlPlanePlatformArgs;
 * import com.pulumi.azure.mobile.NetworkPacketCoreDataPlane;
 * import com.pulumi.azure.mobile.NetworkPacketCoreDataPlaneArgs;
 * import com.pulumi.azure.mobile.NetworkDataNetwork;
 * import com.pulumi.azure.mobile.NetworkDataNetworkArgs;
 * import com.pulumi.azure.mobile.NetworkAttachedDataNetwork;
 * import com.pulumi.azure.mobile.NetworkAttachedDataNetworkArgs;
 * import com.pulumi.azure.mobile.inputs.NetworkAttachedDataNetworkNetworkAddressPortTranslationArgs;
 * import com.pulumi.azure.mobile.inputs.NetworkAttachedDataNetworkNetworkAddressPortTranslationPortRangeArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
 *             .name("example-resources")
 *             .location("West Europe")
 *             .build());
 *         var exampleDevice = new Device("exampleDevice", DeviceArgs.builder()
 *             .name("example-device")
 *             .resourceGroupName(example.name())
 *             .location(example.location())
 *             .skuName("EdgeP_Base-Standard")
 *             .build());
 *         var exampleNetwork = new Network("exampleNetwork", NetworkArgs.builder()
 *             .name("example-mn")
 *             .resourceGroupName(example.name())
 *             .location(example.location())
 *             .mobileCountryCode("001")
 *             .mobileNetworkCode("01")
 *             .build());
 *         var exampleNetworkPacketCoreControlPlane = new NetworkPacketCoreControlPlane("exampleNetworkPacketCoreControlPlane", NetworkPacketCoreControlPlaneArgs.builder()
 *             .name("example-mnpccp")
 *             .resourceGroupName(example.name())
 *             .location("West Europe")
 *             .sku("G0")
 *             .mobileNetworkId(exampleNetwork.id())
 *             .controlPlaneAccessName("default-interface")
 *             .controlPlaneAccessIpv4Address("192.168.1.199")
 *             .controlPlaneAccessIpv4Gateway("192.168.1.1")
 *             .controlPlaneAccessIpv4Subnet("192.168.1.0/25")
 *             .platform(NetworkPacketCoreControlPlanePlatformArgs.builder()
 *                 .type("AKS-HCI")
 *                 .edgeDeviceId(exampleDevice.id())
 *                 .build())
 *             .build());
 *         var exampleNetworkPacketCoreDataPlane = new NetworkPacketCoreDataPlane("exampleNetworkPacketCoreDataPlane", NetworkPacketCoreDataPlaneArgs.builder()
 *             .name("example-mnpcdp")
 *             .mobileNetworkPacketCoreControlPlaneId(exampleNetworkPacketCoreControlPlane.id())
 *             .location(example.location())
 *             .userPlaneAccessName("default-interface")
 *             .userPlaneAccessIpv4Address("192.168.1.199")
 *             .userPlaneAccessIpv4Gateway("192.168.1.1")
 *             .userPlaneAccessIpv4Subnet("192.168.1.0/25")
 *             .build());
 *         var exampleNetworkDataNetwork = new NetworkDataNetwork("exampleNetworkDataNetwork", NetworkDataNetworkArgs.builder()
 *             .name("example-data-network")
 *             .mobileNetworkId(exampleNetwork.id())
 *             .location(example.location())
 *             .build());
 *         var exampleNetworkAttachedDataNetwork = new NetworkAttachedDataNetwork("exampleNetworkAttachedDataNetwork", NetworkAttachedDataNetworkArgs.builder()
 *             .mobileNetworkDataNetworkName(exampleNetworkDataNetwork.name())
 *             .mobileNetworkPacketCoreDataPlaneId(exampleNetworkPacketCoreDataPlane.id())
 *             .location(example.location())
 *             .dnsAddresses("1.1.1.1")
 *             .userEquipmentAddressPoolPrefixes("2.4.1.0/24")
 *             .userEquipmentStaticAddressPoolPrefixes("2.4.2.0/24")
 *             .userPlaneAccessName("test")
 *             .userPlaneAccessIpv4Address("10.204.141.4")
 *             .userPlaneAccessIpv4Gateway("10.204.141.1")
 *             .userPlaneAccessIpv4Subnet("10.204.141.0/24")
 *             .networkAddressPortTranslation(NetworkAttachedDataNetworkNetworkAddressPortTranslationArgs.builder()
 *                 .pinholeMaximumNumber(65536)
 *                 .icmpPinholeTimeoutInSeconds(30)
 *                 .tcpPinholeTimeoutInSeconds(100)
 *                 .udpPinholeTimeoutInSeconds(39)
 *                 .portRange(NetworkAttachedDataNetworkNetworkAddressPortTranslationPortRangeArgs.builder()
 *                     .maximum(49999)
 *                     .minimum(1024)
 *                     .build())
 *                 .tcpPortReuseMinimumHoldTimeInSeconds(120)
 *                 .udpTcpPortReuseMinimumHoldTimeInSeconds(60)
 *                 .build())
 *             .tags(Map.of("key", "value"))
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: example-resources
 *       location: West Europe
 *   exampleDevice:
 *     type: azure:databoxedge:Device
 *     name: example
 *     properties:
 *       name: example-device
 *       resourceGroupName: ${example.name}
 *       location: ${example.location}
 *       skuName: EdgeP_Base-Standard
 *   exampleNetwork:
 *     type: azure:mobile:Network
 *     name: example
 *     properties:
 *       name: example-mn
 *       resourceGroupName: ${example.name}
 *       location: ${example.location}
 *       mobileCountryCode: '001'
 *       mobileNetworkCode: '01'
 *   exampleNetworkPacketCoreControlPlane:
 *     type: azure:mobile:NetworkPacketCoreControlPlane
 *     name: example
 *     properties:
 *       name: example-mnpccp
 *       resourceGroupName: ${example.name}
 *       location: West Europe
 *       sku: G0
 *       mobileNetworkId: ${exampleNetwork.id}
 *       controlPlaneAccessName: default-interface
 *       controlPlaneAccessIpv4Address: 192.168.1.199
 *       controlPlaneAccessIpv4Gateway: 192.168.1.1
 *       controlPlaneAccessIpv4Subnet: 192.168.1.0/25
 *       platform:
 *         type: AKS-HCI
 *         edgeDeviceId: ${exampleDevice.id}
 *   exampleNetworkPacketCoreDataPlane:
 *     type: azure:mobile:NetworkPacketCoreDataPlane
 *     name: example
 *     properties:
 *       name: example-mnpcdp
 *       mobileNetworkPacketCoreControlPlaneId: ${exampleNetworkPacketCoreControlPlane.id}
 *       location: ${example.location}
 *       userPlaneAccessName: default-interface
 *       userPlaneAccessIpv4Address: 192.168.1.199
 *       userPlaneAccessIpv4Gateway: 192.168.1.1
 *       userPlaneAccessIpv4Subnet: 192.168.1.0/25
 *   exampleNetworkDataNetwork:
 *     type: azure:mobile:NetworkDataNetwork
 *     name: example
 *     properties:
 *       name: example-data-network
 *       mobileNetworkId: ${exampleNetwork.id}
 *       location: ${example.location}
 *   exampleNetworkAttachedDataNetwork:
 *     type: azure:mobile:NetworkAttachedDataNetwork
 *     name: example
 *     properties:
 *       mobileNetworkDataNetworkName: ${exampleNetworkDataNetwork.name}
 *       mobileNetworkPacketCoreDataPlaneId: ${exampleNetworkPacketCoreDataPlane.id}
 *       location: ${example.location}
 *       dnsAddresses:
 *         - 1.1.1.1
 *       userEquipmentAddressPoolPrefixes:
 *         - 2.4.1.0/24
 *       userEquipmentStaticAddressPoolPrefixes:
 *         - 2.4.2.0/24
 *       userPlaneAccessName: test
 *       userPlaneAccessIpv4Address: 10.204.141.4
 *       userPlaneAccessIpv4Gateway: 10.204.141.1
 *       userPlaneAccessIpv4Subnet: 10.204.141.0/24
 *       networkAddressPortTranslation:
 *         pinholeMaximumNumber: 65536
 *         icmpPinholeTimeoutInSeconds: 30
 *         tcpPinholeTimeoutInSeconds: 100
 *         udpPinholeTimeoutInSeconds: 39
 *         portRange:
 *           maximum: 49999
 *           minimum: 1024
 *         tcpPortReuseMinimumHoldTimeInSeconds: 120
 *         udpTcpPortReuseMinimumHoldTimeInSeconds: 60
 *       tags:
 *         key: value
 * ```
 * 
 * ## Import
 * Mobile Network Attached Data Network can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:mobile/networkAttachedDataNetwork:NetworkAttachedDataNetwork example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.MobileNetwork/packetCoreControlPlanes/packetCoreControlPlane1/packetCoreDataPlanes/packetCoreDataPlane1/attachedDataNetworks/attachedDataNetwork1
 * ```
 * @property dnsAddresses Specifies the DNS servers to signal to UEs to use for this attached data network.
 * @property location Specifies the Azure Region where the Mobile Network Attached Data Network should exist. Changing this forces a new Mobile Network Attached Data Network to be created.
 * @property mobileNetworkDataNetworkName Specifies the name of the `azure.mobile.NetworkDataNetwork` which the Attached Data Network belongs to, Changing this forces a new Mobile Network Attached Data Network to be created.
 * @property mobileNetworkPacketCoreDataPlaneId Specifies the ID of the `azure.mobile.NetworkPacketCoreDataPlane` which the Mobile Network Attached Data Network belongs to. Changing this forces a new Mobile Network Attached Data Network to be created.
 * @property networkAddressPortTranslation A `network_address_port_translation` block as defined below.
 * @property tags A mapping of tags which should be assigned to the Mobile Network Attached Data Network.
 * @property userEquipmentAddressPoolPrefixes Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will dynamically assign IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefix`. If you define both, they must be of the same size.
 * @property userEquipmentStaticAddressPoolPrefixes Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will assign static IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. The static IP address for a specific UE is set in StaticIPConfiguration on the corresponding SIM resource. At least one of `user_equipment_address_pool_prefix` and `user_equipment_static_address_pool_prefixes`. If you define both, they must be of the same size.
 * > **Note:** At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefixes` must be specified.
 * @property userPlaneAccessIpv4Address The IPv4 address for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
 * @property userPlaneAccessIpv4Gateway The default IPv4 gateway for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
 * @property userPlaneAccessIpv4Subnet The IPv4 subnet for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
 * @property userPlaneAccessName Specifies the logical name for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
 */
public data class NetworkAttachedDataNetworkArgs(
    public val dnsAddresses: Output>? = null,
    public val location: Output? = null,
    public val mobileNetworkDataNetworkName: Output? = null,
    public val mobileNetworkPacketCoreDataPlaneId: Output? = null,
    public val networkAddressPortTranslation:
    Output? = null,
    public val tags: Output>? = null,
    public val userEquipmentAddressPoolPrefixes: Output>? = null,
    public val userEquipmentStaticAddressPoolPrefixes: Output>? = null,
    public val userPlaneAccessIpv4Address: Output? = null,
    public val userPlaneAccessIpv4Gateway: Output? = null,
    public val userPlaneAccessIpv4Subnet: Output? = null,
    public val userPlaneAccessName: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.mobile.NetworkAttachedDataNetworkArgs =
        com.pulumi.azure.mobile.NetworkAttachedDataNetworkArgs.builder()
            .dnsAddresses(dnsAddresses?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .location(location?.applyValue({ args0 -> args0 }))
            .mobileNetworkDataNetworkName(mobileNetworkDataNetworkName?.applyValue({ args0 -> args0 }))
            .mobileNetworkPacketCoreDataPlaneId(
                mobileNetworkPacketCoreDataPlaneId?.applyValue({ args0 ->
                    args0
                }),
            )
            .networkAddressPortTranslation(
                networkAddressPortTranslation?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .userEquipmentAddressPoolPrefixes(
                userEquipmentAddressPoolPrefixes?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .userEquipmentStaticAddressPoolPrefixes(
                userEquipmentStaticAddressPoolPrefixes?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .userPlaneAccessIpv4Address(userPlaneAccessIpv4Address?.applyValue({ args0 -> args0 }))
            .userPlaneAccessIpv4Gateway(userPlaneAccessIpv4Gateway?.applyValue({ args0 -> args0 }))
            .userPlaneAccessIpv4Subnet(userPlaneAccessIpv4Subnet?.applyValue({ args0 -> args0 }))
            .userPlaneAccessName(userPlaneAccessName?.applyValue({ args0 -> args0 })).build()
}

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

    private var location: Output? = null

    private var mobileNetworkDataNetworkName: Output? = null

    private var mobileNetworkPacketCoreDataPlaneId: Output? = null

    private var networkAddressPortTranslation:
        Output? = null

    private var tags: Output>? = null

    private var userEquipmentAddressPoolPrefixes: Output>? = null

    private var userEquipmentStaticAddressPoolPrefixes: Output>? = null

    private var userPlaneAccessIpv4Address: Output? = null

    private var userPlaneAccessIpv4Gateway: Output? = null

    private var userPlaneAccessIpv4Subnet: Output? = null

    private var userPlaneAccessName: Output? = null

    /**
     * @param value Specifies the DNS servers to signal to UEs to use for this attached data network.
     */
    @JvmName("yhibrunwnwuysgky")
    public suspend fun dnsAddresses(`value`: Output>) {
        this.dnsAddresses = value
    }

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

    /**
     * @param values Specifies the DNS servers to signal to UEs to use for this attached data network.
     */
    @JvmName("sjjbjflimodvohih")
    public suspend fun dnsAddresses(values: List>) {
        this.dnsAddresses = Output.all(values)
    }

    /**
     * @param value Specifies the Azure Region where the Mobile Network Attached Data Network should exist. Changing this forces a new Mobile Network Attached Data Network to be created.
     */
    @JvmName("jobdxuohrqsckhnf")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value Specifies the name of the `azure.mobile.NetworkDataNetwork` which the Attached Data Network belongs to, Changing this forces a new Mobile Network Attached Data Network to be created.
     */
    @JvmName("cluwnspyksqqhxid")
    public suspend fun mobileNetworkDataNetworkName(`value`: Output) {
        this.mobileNetworkDataNetworkName = value
    }

    /**
     * @param value Specifies the ID of the `azure.mobile.NetworkPacketCoreDataPlane` which the Mobile Network Attached Data Network belongs to. Changing this forces a new Mobile Network Attached Data Network to be created.
     */
    @JvmName("afffutydfnkpkmey")
    public suspend fun mobileNetworkPacketCoreDataPlaneId(`value`: Output) {
        this.mobileNetworkPacketCoreDataPlaneId = value
    }

    /**
     * @param value A `network_address_port_translation` block as defined below.
     */
    @JvmName("umjrngomggpeecdk")
    public suspend
    fun networkAddressPortTranslation(`value`: Output) {
        this.networkAddressPortTranslation = value
    }

    /**
     * @param value A mapping of tags which should be assigned to the Mobile Network Attached Data Network.
     */
    @JvmName("hfookudlyybmjsle")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will dynamically assign IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefix`. If you define both, they must be of the same size.
     */
    @JvmName("rmqovaeorjokgivl")
    public suspend fun userEquipmentAddressPoolPrefixes(`value`: Output>) {
        this.userEquipmentAddressPoolPrefixes = value
    }

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

    /**
     * @param values Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will dynamically assign IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefix`. If you define both, they must be of the same size.
     */
    @JvmName("rrveenuxiydtosbj")
    public suspend fun userEquipmentAddressPoolPrefixes(values: List>) {
        this.userEquipmentAddressPoolPrefixes = Output.all(values)
    }

    /**
     * @param value Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will assign static IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. The static IP address for a specific UE is set in StaticIPConfiguration on the corresponding SIM resource. At least one of `user_equipment_address_pool_prefix` and `user_equipment_static_address_pool_prefixes`. If you define both, they must be of the same size.
     * > **Note:** At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefixes` must be specified.
     */
    @JvmName("cwrrdiwscmtjpcna")
    public suspend fun userEquipmentStaticAddressPoolPrefixes(`value`: Output>) {
        this.userEquipmentStaticAddressPoolPrefixes = value
    }

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

    /**
     * @param values Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will assign static IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. The static IP address for a specific UE is set in StaticIPConfiguration on the corresponding SIM resource. At least one of `user_equipment_address_pool_prefix` and `user_equipment_static_address_pool_prefixes`. If you define both, they must be of the same size.
     * > **Note:** At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefixes` must be specified.
     */
    @JvmName("hjwqflkkxkciulyp")
    public suspend fun userEquipmentStaticAddressPoolPrefixes(values: List>) {
        this.userEquipmentStaticAddressPoolPrefixes = Output.all(values)
    }

    /**
     * @param value The IPv4 address for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("bqgobnodfppdqvjx")
    public suspend fun userPlaneAccessIpv4Address(`value`: Output) {
        this.userPlaneAccessIpv4Address = value
    }

    /**
     * @param value The default IPv4 gateway for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("mjjbdqtmdjvqxgma")
    public suspend fun userPlaneAccessIpv4Gateway(`value`: Output) {
        this.userPlaneAccessIpv4Gateway = value
    }

    /**
     * @param value The IPv4 subnet for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("ulmlifivpuhxpyqj")
    public suspend fun userPlaneAccessIpv4Subnet(`value`: Output) {
        this.userPlaneAccessIpv4Subnet = value
    }

    /**
     * @param value Specifies the logical name for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("bfppphuhjjyyyjng")
    public suspend fun userPlaneAccessName(`value`: Output) {
        this.userPlaneAccessName = value
    }

    /**
     * @param value Specifies the DNS servers to signal to UEs to use for this attached data network.
     */
    @JvmName("lcydjfbwqtyguifl")
    public suspend fun dnsAddresses(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dnsAddresses = mapped
    }

    /**
     * @param values Specifies the DNS servers to signal to UEs to use for this attached data network.
     */
    @JvmName("afdvxtymjlsbantw")
    public suspend fun dnsAddresses(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dnsAddresses = mapped
    }

    /**
     * @param value Specifies the Azure Region where the Mobile Network Attached Data Network should exist. Changing this forces a new Mobile Network Attached Data Network to be created.
     */
    @JvmName("wcfabggchcfeasfi")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value Specifies the name of the `azure.mobile.NetworkDataNetwork` which the Attached Data Network belongs to, Changing this forces a new Mobile Network Attached Data Network to be created.
     */
    @JvmName("xmtaenegxdldvxvk")
    public suspend fun mobileNetworkDataNetworkName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mobileNetworkDataNetworkName = mapped
    }

    /**
     * @param value Specifies the ID of the `azure.mobile.NetworkPacketCoreDataPlane` which the Mobile Network Attached Data Network belongs to. Changing this forces a new Mobile Network Attached Data Network to be created.
     */
    @JvmName("sfxqkwlmnxuaiyvf")
    public suspend fun mobileNetworkPacketCoreDataPlaneId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mobileNetworkPacketCoreDataPlaneId = mapped
    }

    /**
     * @param value A `network_address_port_translation` block as defined below.
     */
    @JvmName("bnukxikdasxxygce")
    public suspend
    fun networkAddressPortTranslation(`value`: NetworkAttachedDataNetworkNetworkAddressPortTranslationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkAddressPortTranslation = mapped
    }

    /**
     * @param argument A `network_address_port_translation` block as defined below.
     */
    @JvmName("ywrmetcumvjenuko")
    public suspend
    fun networkAddressPortTranslation(argument: suspend NetworkAttachedDataNetworkNetworkAddressPortTranslationArgsBuilder.() -> Unit) {
        val toBeMapped =
            NetworkAttachedDataNetworkNetworkAddressPortTranslationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.networkAddressPortTranslation = mapped
    }

    /**
     * @param value A mapping of tags which should be assigned to the Mobile Network Attached Data Network.
     */
    @JvmName("uyqinwcxfyxeoucx")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values A mapping of tags which should be assigned to the Mobile Network Attached Data Network.
     */
    @JvmName("wpjjuxxlruwswohd")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will dynamically assign IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefix`. If you define both, they must be of the same size.
     */
    @JvmName("ygwdtoflxtywrbra")
    public suspend fun userEquipmentAddressPoolPrefixes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userEquipmentAddressPoolPrefixes = mapped
    }

    /**
     * @param values Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will dynamically assign IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefix`. If you define both, they must be of the same size.
     */
    @JvmName("ntbtivcskrmpplgd")
    public suspend fun userEquipmentAddressPoolPrefixes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userEquipmentAddressPoolPrefixes = mapped
    }

    /**
     * @param value Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will assign static IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. The static IP address for a specific UE is set in StaticIPConfiguration on the corresponding SIM resource. At least one of `user_equipment_address_pool_prefix` and `user_equipment_static_address_pool_prefixes`. If you define both, they must be of the same size.
     * > **Note:** At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefixes` must be specified.
     */
    @JvmName("ebgofarkvahiaher")
    public suspend fun userEquipmentStaticAddressPoolPrefixes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userEquipmentStaticAddressPoolPrefixes = mapped
    }

    /**
     * @param values Specifies the user equipment (UE) address pool prefixes for the attached data network from which the packet core instance will assign static IP addresses to UEs. The packet core instance assigns an IP address to a UE when the UE sets up a PDU session. The static IP address for a specific UE is set in StaticIPConfiguration on the corresponding SIM resource. At least one of `user_equipment_address_pool_prefix` and `user_equipment_static_address_pool_prefixes`. If you define both, they must be of the same size.
     * > **Note:** At least one of `user_equipment_address_pool_prefixes` and `user_equipment_static_address_pool_prefixes` must be specified.
     */
    @JvmName("qnytvjcyfenygnne")
    public suspend fun userEquipmentStaticAddressPoolPrefixes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userEquipmentStaticAddressPoolPrefixes = mapped
    }

    /**
     * @param value The IPv4 address for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("rcpmnfichuqqtdlp")
    public suspend fun userPlaneAccessIpv4Address(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userPlaneAccessIpv4Address = mapped
    }

    /**
     * @param value The default IPv4 gateway for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("ijkhlikanolxnosa")
    public suspend fun userPlaneAccessIpv4Gateway(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userPlaneAccessIpv4Gateway = mapped
    }

    /**
     * @param value The IPv4 subnet for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("rlmguqfogecqcwqg")
    public suspend fun userPlaneAccessIpv4Subnet(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userPlaneAccessIpv4Subnet = mapped
    }

    /**
     * @param value Specifies the logical name for the user data plane interface. This should match one of the interfaces configured on your Azure Stack Edge device.
     */
    @JvmName("grtfhcputgvtmfqr")
    public suspend fun userPlaneAccessName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userPlaneAccessName = mapped
    }

    internal fun build(): NetworkAttachedDataNetworkArgs = NetworkAttachedDataNetworkArgs(
        dnsAddresses = dnsAddresses,
        location = location,
        mobileNetworkDataNetworkName = mobileNetworkDataNetworkName,
        mobileNetworkPacketCoreDataPlaneId = mobileNetworkPacketCoreDataPlaneId,
        networkAddressPortTranslation = networkAddressPortTranslation,
        tags = tags,
        userEquipmentAddressPoolPrefixes = userEquipmentAddressPoolPrefixes,
        userEquipmentStaticAddressPoolPrefixes = userEquipmentStaticAddressPoolPrefixes,
        userPlaneAccessIpv4Address = userPlaneAccessIpv4Address,
        userPlaneAccessIpv4Gateway = userPlaneAccessIpv4Gateway,
        userPlaneAccessIpv4Subnet = userPlaneAccessIpv4Subnet,
        userPlaneAccessName = userPlaneAccessName,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy