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

com.pulumi.azurenative.mobilenetwork.kotlin.AttachedDataNetworkArgs.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.mobilenetwork.kotlin

import com.pulumi.azurenative.mobilenetwork.AttachedDataNetworkArgs.builder
import com.pulumi.azurenative.mobilenetwork.kotlin.inputs.InterfacePropertiesArgs
import com.pulumi.azurenative.mobilenetwork.kotlin.inputs.InterfacePropertiesArgsBuilder
import com.pulumi.azurenative.mobilenetwork.kotlin.inputs.NaptConfigurationArgs
import com.pulumi.azurenative.mobilenetwork.kotlin.inputs.NaptConfigurationArgsBuilder
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

/**
 * Attached data network resource. Must be created in the same location as its parent packet core data plane.
 * Azure REST API version: 2023-06-01. Prior API version in Azure Native 1.x: 2022-04-01-preview.
 * Other available API versions: 2022-04-01-preview, 2022-11-01, 2023-09-01, 2024-02-01, 2024-04-01.
 * ## Example Usage
 * ### Create attached data network
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var attachedDataNetwork = new AzureNative.MobileNetwork.AttachedDataNetwork("attachedDataNetwork", new()
 *     {
 *         AttachedDataNetworkName = "TestAttachedDataNetwork",
 *         DnsAddresses = new[]
 *         {
 *             "1.1.1.1",
 *         },
 *         Location = "eastus",
 *         NaptConfiguration = new AzureNative.MobileNetwork.Inputs.NaptConfigurationArgs
 *         {
 *             Enabled = AzureNative.MobileNetwork.NaptEnabled.Enabled,
 *             PinholeLimits = 65536,
 *             PinholeTimeouts = new AzureNative.MobileNetwork.Inputs.PinholeTimeoutsArgs
 *             {
 *                 Icmp = 30,
 *                 Tcp = 180,
 *                 Udp = 30,
 *             },
 *             PortRange = new AzureNative.MobileNetwork.Inputs.PortRangeArgs
 *             {
 *                 MaxPort = 49999,
 *                 MinPort = 1024,
 *             },
 *             PortReuseHoldTime = new AzureNative.MobileNetwork.Inputs.PortReuseHoldTimesArgs
 *             {
 *                 Tcp = 120,
 *                 Udp = 60,
 *             },
 *         },
 *         PacketCoreControlPlaneName = "TestPacketCoreCP",
 *         PacketCoreDataPlaneName = "TestPacketCoreDP",
 *         ResourceGroupName = "rg1",
 *         UserEquipmentAddressPoolPrefix = new[]
 *         {
 *             "2.2.0.0/16",
 *         },
 *         UserEquipmentStaticAddressPoolPrefix = new[]
 *         {
 *             "2.4.0.0/16",
 *         },
 *         UserPlaneDataInterface = new AzureNative.MobileNetwork.Inputs.InterfacePropertiesArgs
 *         {
 *             Name = "N6",
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	mobilenetwork "github.com/pulumi/pulumi-azure-native-sdk/mobilenetwork/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := mobilenetwork.NewAttachedDataNetwork(ctx, "attachedDataNetwork", &mobilenetwork.AttachedDataNetworkArgs{
 * 			AttachedDataNetworkName: pulumi.String("TestAttachedDataNetwork"),
 * 			DnsAddresses: pulumi.StringArray{
 * 				pulumi.String("1.1.1.1"),
 * 			},
 * 			Location: pulumi.String("eastus"),
 * 			NaptConfiguration: &mobilenetwork.NaptConfigurationArgs{
 * 				Enabled:       pulumi.String(mobilenetwork.NaptEnabledEnabled),
 * 				PinholeLimits: pulumi.Int(65536),
 * 				PinholeTimeouts: &mobilenetwork.PinholeTimeoutsArgs{
 * 					Icmp: pulumi.Int(30),
 * 					Tcp:  pulumi.Int(180),
 * 					Udp:  pulumi.Int(30),
 * 				},
 * 				PortRange: &mobilenetwork.PortRangeArgs{
 * 					MaxPort: pulumi.Int(49999),
 * 					MinPort: pulumi.Int(1024),
 * 				},
 * 				PortReuseHoldTime: &mobilenetwork.PortReuseHoldTimesArgs{
 * 					Tcp: pulumi.Int(120),
 * 					Udp: pulumi.Int(60),
 * 				},
 * 			},
 * 			PacketCoreControlPlaneName: pulumi.String("TestPacketCoreCP"),
 * 			PacketCoreDataPlaneName:    pulumi.String("TestPacketCoreDP"),
 * 			ResourceGroupName:          pulumi.String("rg1"),
 * 			UserEquipmentAddressPoolPrefix: pulumi.StringArray{
 * 				pulumi.String("2.2.0.0/16"),
 * 			},
 * 			UserEquipmentStaticAddressPoolPrefix: pulumi.StringArray{
 * 				pulumi.String("2.4.0.0/16"),
 * 			},
 * 			UserPlaneDataInterface: &mobilenetwork.InterfacePropertiesArgs{
 * 				Name: pulumi.String("N6"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.mobilenetwork.AttachedDataNetwork;
 * import com.pulumi.azurenative.mobilenetwork.AttachedDataNetworkArgs;
 * import com.pulumi.azurenative.mobilenetwork.inputs.NaptConfigurationArgs;
 * import com.pulumi.azurenative.mobilenetwork.inputs.PinholeTimeoutsArgs;
 * import com.pulumi.azurenative.mobilenetwork.inputs.PortRangeArgs;
 * import com.pulumi.azurenative.mobilenetwork.inputs.PortReuseHoldTimesArgs;
 * import com.pulumi.azurenative.mobilenetwork.inputs.InterfacePropertiesArgs;
 * 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 attachedDataNetwork = new AttachedDataNetwork("attachedDataNetwork", AttachedDataNetworkArgs.builder()
 *             .attachedDataNetworkName("TestAttachedDataNetwork")
 *             .dnsAddresses("1.1.1.1")
 *             .location("eastus")
 *             .naptConfiguration(NaptConfigurationArgs.builder()
 *                 .enabled("Enabled")
 *                 .pinholeLimits(65536)
 *                 .pinholeTimeouts(PinholeTimeoutsArgs.builder()
 *                     .icmp(30)
 *                     .tcp(180)
 *                     .udp(30)
 *                     .build())
 *                 .portRange(PortRangeArgs.builder()
 *                     .maxPort(49999)
 *                     .minPort(1024)
 *                     .build())
 *                 .portReuseHoldTime(PortReuseHoldTimesArgs.builder()
 *                     .tcp(120)
 *                     .udp(60)
 *                     .build())
 *                 .build())
 *             .packetCoreControlPlaneName("TestPacketCoreCP")
 *             .packetCoreDataPlaneName("TestPacketCoreDP")
 *             .resourceGroupName("rg1")
 *             .userEquipmentAddressPoolPrefix("2.2.0.0/16")
 *             .userEquipmentStaticAddressPoolPrefix("2.4.0.0/16")
 *             .userPlaneDataInterface(InterfacePropertiesArgs.builder()
 *                 .name("N6")
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:mobilenetwork:AttachedDataNetwork TestAttachedDataNetwork /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileNetwork/packetCoreControlPlanes/{packetCoreControlPlaneName}/packetCoreDataPlanes/{packetCoreDataPlaneName}/attachedDataNetworks/{attachedDataNetworkName}
 * ```
 * @property attachedDataNetworkName The name of the attached data network.
 * @property dnsAddresses The DNS servers to signal to UEs to use for this attached data network. This configuration is mandatory - if you don't want DNS servers, you must provide an empty array.
 * @property location The geo-location where the resource lives
 * @property naptConfiguration The network address and port translation (NAPT) configuration.
 * If this is not specified, the attached data network will use a default NAPT configuration with NAPT enabled.
 * @property packetCoreControlPlaneName The name of the packet core control plane.
 * @property packetCoreDataPlaneName The name of the packet core data plane.
 * @property resourceGroupName The name of the resource group. The name is case insensitive.
 * @property tags Resource tags.
 * @property userEquipmentAddressPoolPrefix 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.
 *  You must define at least one of userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix. If you define both, they must be of the same size.
 * @property userEquipmentStaticAddressPoolPrefix 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 userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix must be defined. If both are defined, they must be of the same size.
 * @property userPlaneDataInterface The user plane interface on the data network. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
 */
public data class AttachedDataNetworkArgs(
    public val attachedDataNetworkName: Output? = null,
    public val dnsAddresses: Output>? = null,
    public val location: Output? = null,
    public val naptConfiguration: Output? = null,
    public val packetCoreControlPlaneName: Output? = null,
    public val packetCoreDataPlaneName: Output? = null,
    public val resourceGroupName: Output? = null,
    public val tags: Output>? = null,
    public val userEquipmentAddressPoolPrefix: Output>? = null,
    public val userEquipmentStaticAddressPoolPrefix: Output>? = null,
    public val userPlaneDataInterface: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.mobilenetwork.AttachedDataNetworkArgs =
        com.pulumi.azurenative.mobilenetwork.AttachedDataNetworkArgs.builder()
            .attachedDataNetworkName(attachedDataNetworkName?.applyValue({ args0 -> args0 }))
            .dnsAddresses(dnsAddresses?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .location(location?.applyValue({ args0 -> args0 }))
            .naptConfiguration(naptConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .packetCoreControlPlaneName(packetCoreControlPlaneName?.applyValue({ args0 -> args0 }))
            .packetCoreDataPlaneName(packetCoreDataPlaneName?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .userEquipmentAddressPoolPrefix(
                userEquipmentAddressPoolPrefix?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .userEquipmentStaticAddressPoolPrefix(
                userEquipmentStaticAddressPoolPrefix?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .userPlaneDataInterface(
                userPlaneDataInterface?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [AttachedDataNetworkArgs].
 */
@PulumiTagMarker
public class AttachedDataNetworkArgsBuilder internal constructor() {
    private var attachedDataNetworkName: Output? = null

    private var dnsAddresses: Output>? = null

    private var location: Output? = null

    private var naptConfiguration: Output? = null

    private var packetCoreControlPlaneName: Output? = null

    private var packetCoreDataPlaneName: Output? = null

    private var resourceGroupName: Output? = null

    private var tags: Output>? = null

    private var userEquipmentAddressPoolPrefix: Output>? = null

    private var userEquipmentStaticAddressPoolPrefix: Output>? = null

    private var userPlaneDataInterface: Output? = null

    /**
     * @param value The name of the attached data network.
     */
    @JvmName("cgtoqoeqreqgymbc")
    public suspend fun attachedDataNetworkName(`value`: Output) {
        this.attachedDataNetworkName = value
    }

    /**
     * @param value The DNS servers to signal to UEs to use for this attached data network. This configuration is mandatory - if you don't want DNS servers, you must provide an empty array.
     */
    @JvmName("vjurcnaotaaebtyv")
    public suspend fun dnsAddresses(`value`: Output>) {
        this.dnsAddresses = value
    }

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

    /**
     * @param values The DNS servers to signal to UEs to use for this attached data network. This configuration is mandatory - if you don't want DNS servers, you must provide an empty array.
     */
    @JvmName("norpmusjpvaxafhy")
    public suspend fun dnsAddresses(values: List>) {
        this.dnsAddresses = Output.all(values)
    }

    /**
     * @param value The geo-location where the resource lives
     */
    @JvmName("qpeovgvtkwailcuj")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The network address and port translation (NAPT) configuration.
     * If this is not specified, the attached data network will use a default NAPT configuration with NAPT enabled.
     */
    @JvmName("ksttuvtjveliokjj")
    public suspend fun naptConfiguration(`value`: Output) {
        this.naptConfiguration = value
    }

    /**
     * @param value The name of the packet core control plane.
     */
    @JvmName("echxujiaealrrrse")
    public suspend fun packetCoreControlPlaneName(`value`: Output) {
        this.packetCoreControlPlaneName = value
    }

    /**
     * @param value The name of the packet core data plane.
     */
    @JvmName("tnthgfvxdnkubynl")
    public suspend fun packetCoreDataPlaneName(`value`: Output) {
        this.packetCoreDataPlaneName = value
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("brvykwyfjjqbypnl")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value Resource tags.
     */
    @JvmName("nmmhuyojjtsjihpc")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value 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.
     *  You must define at least one of userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix. If you define both, they must be of the same size.
     */
    @JvmName("nnejwpkoqofsfcet")
    public suspend fun userEquipmentAddressPoolPrefix(`value`: Output>) {
        this.userEquipmentAddressPoolPrefix = value
    }

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

    /**
     * @param values 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.
     *  You must define at least one of userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix. If you define both, they must be of the same size.
     */
    @JvmName("oldhfcqfmdfhvcts")
    public suspend fun userEquipmentAddressPoolPrefix(values: List>) {
        this.userEquipmentAddressPoolPrefix = Output.all(values)
    }

    /**
     * @param value 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 userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix must be defined. If both are defined, they must be of the same size.
     */
    @JvmName("hwffcexrrtgixrxu")
    public suspend fun userEquipmentStaticAddressPoolPrefix(`value`: Output>) {
        this.userEquipmentStaticAddressPoolPrefix = value
    }

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

    /**
     * @param values 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 userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix must be defined. If both are defined, they must be of the same size.
     */
    @JvmName("yhbarkhlpyicmcsu")
    public suspend fun userEquipmentStaticAddressPoolPrefix(values: List>) {
        this.userEquipmentStaticAddressPoolPrefix = Output.all(values)
    }

    /**
     * @param value The user plane interface on the data network. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
     */
    @JvmName("srvgbliyjtrkvtip")
    public suspend fun userPlaneDataInterface(`value`: Output) {
        this.userPlaneDataInterface = value
    }

    /**
     * @param value The name of the attached data network.
     */
    @JvmName("trwdcvaxlfyhslph")
    public suspend fun attachedDataNetworkName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.attachedDataNetworkName = mapped
    }

    /**
     * @param value The DNS servers to signal to UEs to use for this attached data network. This configuration is mandatory - if you don't want DNS servers, you must provide an empty array.
     */
    @JvmName("trlhtjethosigdpn")
    public suspend fun dnsAddresses(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dnsAddresses = mapped
    }

    /**
     * @param values The DNS servers to signal to UEs to use for this attached data network. This configuration is mandatory - if you don't want DNS servers, you must provide an empty array.
     */
    @JvmName("ofctiolxkoowfrrs")
    public suspend fun dnsAddresses(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dnsAddresses = mapped
    }

    /**
     * @param value The geo-location where the resource lives
     */
    @JvmName("mlgcpivcjujdepvy")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The network address and port translation (NAPT) configuration.
     * If this is not specified, the attached data network will use a default NAPT configuration with NAPT enabled.
     */
    @JvmName("dosahymxqctmhpof")
    public suspend fun naptConfiguration(`value`: NaptConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.naptConfiguration = mapped
    }

    /**
     * @param argument The network address and port translation (NAPT) configuration.
     * If this is not specified, the attached data network will use a default NAPT configuration with NAPT enabled.
     */
    @JvmName("vufchyfnbwrqeqgf")
    public suspend fun naptConfiguration(argument: suspend NaptConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = NaptConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.naptConfiguration = mapped
    }

    /**
     * @param value The name of the packet core control plane.
     */
    @JvmName("ebhrkfqdpbqniovt")
    public suspend fun packetCoreControlPlaneName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.packetCoreControlPlaneName = mapped
    }

    /**
     * @param value The name of the packet core data plane.
     */
    @JvmName("tafoudcfmdarsfcu")
    public suspend fun packetCoreDataPlaneName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.packetCoreDataPlaneName = mapped
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("endfmmhpwcfmnefd")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

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

    /**
     * @param values Resource tags.
     */
    @JvmName("wqkpybmdkgcmltva")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value 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.
     *  You must define at least one of userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix. If you define both, they must be of the same size.
     */
    @JvmName("qbvlipjanvhyqyjf")
    public suspend fun userEquipmentAddressPoolPrefix(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userEquipmentAddressPoolPrefix = mapped
    }

    /**
     * @param values 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.
     *  You must define at least one of userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix. If you define both, they must be of the same size.
     */
    @JvmName("mfvqfkyqrbtgeata")
    public suspend fun userEquipmentAddressPoolPrefix(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userEquipmentAddressPoolPrefix = mapped
    }

    /**
     * @param value 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 userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix must be defined. If both are defined, they must be of the same size.
     */
    @JvmName("ndanopngkxwjxsoc")
    public suspend fun userEquipmentStaticAddressPoolPrefix(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userEquipmentStaticAddressPoolPrefix = mapped
    }

    /**
     * @param values 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 userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix must be defined. If both are defined, they must be of the same size.
     */
    @JvmName("ftisrfqkhbfcxeun")
    public suspend fun userEquipmentStaticAddressPoolPrefix(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userEquipmentStaticAddressPoolPrefix = mapped
    }

    /**
     * @param value The user plane interface on the data network. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
     */
    @JvmName("hfomtfomlehlgkip")
    public suspend fun userPlaneDataInterface(`value`: InterfacePropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userPlaneDataInterface = mapped
    }

    /**
     * @param argument The user plane interface on the data network. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
     */
    @JvmName("ueqqtidadgdiexot")
    public suspend fun userPlaneDataInterface(argument: suspend InterfacePropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = InterfacePropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.userPlaneDataInterface = mapped
    }

    internal fun build(): AttachedDataNetworkArgs = AttachedDataNetworkArgs(
        attachedDataNetworkName = attachedDataNetworkName,
        dnsAddresses = dnsAddresses,
        location = location,
        naptConfiguration = naptConfiguration,
        packetCoreControlPlaneName = packetCoreControlPlaneName,
        packetCoreDataPlaneName = packetCoreDataPlaneName,
        resourceGroupName = resourceGroupName,
        tags = tags,
        userEquipmentAddressPoolPrefix = userEquipmentAddressPoolPrefix,
        userEquipmentStaticAddressPoolPrefix = userEquipmentStaticAddressPoolPrefix,
        userPlaneDataInterface = userPlaneDataInterface,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy