pspulumiyaml.azurenative.mobilenetwork.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionMobilenetworkGetPacketCoreDataPlane
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the packet core control plane.)')]
        [string]
        $packetCoreControlPlaneName,
        [parameter(mandatory=$False,HelpMessage='The name of the packet core data plane.)')]
        [string]
        $packetCoreDataPlaneName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["packetCoreControlPlaneName"] = $packetCoreControlPlaneName
        $arguments["packetCoreDataPlaneName"] = $packetCoreDataPlaneName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getPacketCoreDataPlane -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetSimPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the SIM policy.)')]
        [string]
        $simPolicyName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["mobileNetworkName"] = $mobileNetworkName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["simPolicyName"] = $simPolicyName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getSimPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkListMobileNetworkSimIds
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName
    )

    process
    {
        $arguments = @{}
        $arguments["mobileNetworkName"] = $mobileNetworkName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:listMobileNetworkSimIds -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetSlice
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network slice.)')]
        [string]
        $sliceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["mobileNetworkName"] = $mobileNetworkName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["sliceName"] = $sliceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getSlice -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetSim
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the SIM.)')]
        [string]
        $simName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["simName"] = $simName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getSim -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetPacketCoreControlPlane
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the packet core control plane.)')]
        [string]
        $packetCoreControlPlaneName
    )

    process
    {
        $arguments = @{}
        $arguments["packetCoreControlPlaneName"] = $packetCoreControlPlaneName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getPacketCoreControlPlane -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetSite
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network site.)')]
        [string]
        $siteName,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["mobileNetworkName"] = $mobileNetworkName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["siteName"] = $siteName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getSite -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the service. You must not use any of the following reserved strings - `default`, `requested` or `service`)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["mobileNetworkName"] = $mobileNetworkName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetDataNetwork
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network dataNetwork.)')]
        [string]
        $dataNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["dataNetworkName"] = $dataNetworkName
        $arguments["mobileNetworkName"] = $mobileNetworkName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getDataNetwork -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetMobileNetwork
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName
    )

    process
    {
        $arguments = @{}
        $arguments["mobileNetworkName"] = $mobileNetworkName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getMobileNetwork -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMobilenetworkGetAttachedDataNetwork
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the packet core control plane.)')]
        [string]
        $packetCoreControlPlaneName,
        [parameter(mandatory=$False,HelpMessage='The name of the attached data network.)')]
        [string]
        $attachedDataNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the packet core data plane.)')]
        [string]
        $packetCoreDataPlaneName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["attachedDataNetworkName"] = $attachedDataNetworkName
        $arguments["packetCoreControlPlaneName"] = $packetCoreControlPlaneName
        $arguments["packetCoreDataPlaneName"] = $packetCoreDataPlaneName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:mobilenetwork:getAttachedDataNetwork -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class Snssai
{
    [string] $sd
    [int] $sst
}
function New-AzureNativeTypeMobilenetworkSnssai
{
    param (
        [parameter(mandatory=$False,HelpMessage='Slice Differentiator (SD).)')]
        [string]
        $sd,
        [parameter(mandatory=$False,HelpMessage='Slice/Service Type (SST).)')]
        [int]
        $sst
    )

    process
    {
        return $([Snssai]$PSBoundParameters)
    }
}
function New-AzureNativeMobilenetworkSlice
{
    [Alias('azure_native_mobilenetwork_slice')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The S-NSSAI (single network slice selection assistance information). Unique at the scope of a MobileNetwork.)')]
        [Snssai]
        $snssai,
        [parameter(mandatory=$False,HelpMessage='An optional description for this network slice.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network slice.)')]
        [string]
        $sliceName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:Slice")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["mobileNetworkName"] = $mobileNetworkName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["snssai"] = $snssai

        if($PSBoundParameters.Keys -icontains 'description')
        {
            $resource.properties["description"] = $description
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'sliceName')
        {
            $resource.properties["sliceName"] = $sliceName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class MobileNetworkResourceId
{
    [string] $id
}
function New-AzureNativeTypeMobilenetworkMobileNetworkResourceId
{
    param (
        [parameter(mandatory=$False,HelpMessage='Mobile Network resource ID.)')]
        [string]
        $id
    )

    process
    {
        return $([MobileNetworkResourceId]$PSBoundParameters)
    }
}
class InterfaceProperties
{
    [string] $name
}
function New-AzureNativeTypeMobilenetworkInterfaceProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The logical name for this interface. This should match one of the interfaces configured on your Azure Stack Edge machine.)')]
        [string]
        $name
    )

    process
    {
        return $([InterfaceProperties]$PSBoundParameters)
    }
}
class CustomLocationResourceId
{
    [string] $id
}
function New-AzureNativeTypeMobilenetworkCustomLocationResourceId
{
    param (
        [parameter(mandatory=$False,HelpMessage='Azure ARC custom location resource ID.)')]
        [string]
        $id
    )

    process
    {
        return $([CustomLocationResourceId]$PSBoundParameters)
    }
}
function New-AzureNativeMobilenetworkPacketCoreControlPlane
{
    [Alias('azure_native_mobilenetwork_packetcorecontrolplane')]
    param (
        [parameter(mandatory=$False,HelpMessage='Mobile network that this packet core control plane belongs to)')]
        [MobileNetworkResourceId]
        $mobileNetwork,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The control plane interface on the access network. In 5G networks this is called as N2 interface whereas in 4G networks this is called as S1-MME interface.)')]
        [InterfaceProperties]
        $controlPlaneAccessInterface,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory=$False,HelpMessage='The version of the packet core software that is deployed.)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Azure ARC custom location where the packet core is deployed.)')]
        [CustomLocationResourceId]
        $customLocation,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='The core network technology generation.)')]
        [string]
        [ValidateSet('5GC', 'EPC')]
        $coreNetworkTechnology,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the packet core control plane.)')]
        [string]
        $packetCoreControlPlaneName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:PacketCoreControlPlane")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["controlPlaneAccessInterface"] = $controlPlaneAccessInterface
        $resource.properties["mobileNetwork"] = $mobileNetwork
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        if($PSBoundParameters.Keys -icontains 'version')
        {
            $resource.properties["version"] = $version
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'customLocation')
        {
            $resource.properties["customLocation"] = $customLocation
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'coreNetworkTechnology')
        {
            $resource.properties["coreNetworkTechnology"] = $coreNetworkTechnology
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'packetCoreControlPlaneName')
        {
            $resource.properties["packetCoreControlPlaneName"] = $packetCoreControlPlaneName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class SimPolicyResourceId
{
    [string] $id
}
function New-AzureNativeTypeMobilenetworkSimPolicyResourceId
{
    param (
        [parameter(mandatory=$False,HelpMessage='SIM Policy resource ID.)')]
        [string]
        $id
    )

    process
    {
        return $([SimPolicyResourceId]$PSBoundParameters)
    }
}
function New-AzureNativeMobilenetworkSim
{
    [Alias('azure_native_mobilenetwork_sim')]
    param (
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The International Mobile Subscriber Identity (IMSI) for the sim.)')]
        [string]
        $internationalMobileSubscriberIdentity,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the SIM.)')]
        [string]
        $simName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='A list of static IP addresses assigned to this sim. Each address is assigned at a defined network scope, made up of {attached data network, slice}.)')]
        $staticIpConfiguration,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='Mobile network that this sim belongs to)')]
        [MobileNetworkResourceId]
        $mobileNetwork,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='An optional free-form text field that can be used to record the device type this sim is associated with, for example ''Video camera''. The Azure portal allows Sims to be grouped and filtered based on this value.)')]
        [string]
        $deviceType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory=$False,HelpMessage='The simPolicy used by this sim.)')]
        [SimPolicyResourceId]
        $simPolicy,
        [parameter(mandatory=$False,HelpMessage='The ki value for the sim.)')]
        [string]
        $authenticationKey,
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The Opc value for the sim.)')]
        [string]
        $operatorKeyCode,
        [parameter(mandatory=$False,HelpMessage='The Integrated Circuit Card ID (ICC Id) for the sim.)')]
        [string]
        $integratedCircuitCardIdentifier,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:Sim")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["internationalMobileSubscriberIdentity"] = $internationalMobileSubscriberIdentity
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'simName')
        {
            $resource.properties["simName"] = $simName
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'staticIpConfiguration')
        {
            $resource.properties["staticIpConfiguration"] = $staticIpConfiguration
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'mobileNetwork')
        {
            $resource.properties["mobileNetwork"] = $mobileNetwork
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'deviceType')
        {
            $resource.properties["deviceType"] = $deviceType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        if($PSBoundParameters.Keys -icontains 'simPolicy')
        {
            $resource.properties["simPolicy"] = $simPolicy
        }

        if($PSBoundParameters.Keys -icontains 'authenticationKey')
        {
            $resource.properties["authenticationKey"] = $authenticationKey
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'operatorKeyCode')
        {
            $resource.properties["operatorKeyCode"] = $operatorKeyCode
        }

        if($PSBoundParameters.Keys -icontains 'integratedCircuitCardIdentifier')
        {
            $resource.properties["integratedCircuitCardIdentifier"] = $integratedCircuitCardIdentifier
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeMobilenetworkSite
{
    [Alias('azure_native_mobilenetwork_site')]
    param (
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network site.)')]
        [string]
        $siteName,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='An array of ids of the network functions deployed on the site, maintained by the user.)')]
        $networkFunctions,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:Site")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["mobileNetworkName"] = $mobileNetworkName
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'siteName')
        {
            $resource.properties["siteName"] = $siteName
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'networkFunctions')
        {
            $resource.properties["networkFunctions"] = $networkFunctions
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class SliceResourceId
{
    [string] $id
}
function New-AzureNativeTypeMobilenetworkSliceResourceId
{
    param (
        [parameter(mandatory=$False,HelpMessage='Slice resource ID.)')]
        [string]
        $id
    )

    process
    {
        return $([SliceResourceId]$PSBoundParameters)
    }
}
class Ambr
{
    [string] $uplink
    [string] $downlink
}
function New-AzureNativeTypeMobilenetworkAmbr
{
    param (
        [parameter(mandatory=$False,HelpMessage='Uplink bit rate.)')]
        [string]
        $uplink,
        [parameter(mandatory=$False,HelpMessage='Downlink bit rate.)')]
        [string]
        $downlink
    )

    process
    {
        return $([Ambr]$PSBoundParameters)
    }
}
function New-AzureNativeMobilenetworkSimPolicy
{
    [Alias('azure_native_mobilenetwork_simpolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the SIM policy.)')]
        [string]
        $simPolicyName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='RAT/Frequency Selection Priority Index, defined in 3GPP TS 36.413. This is an optional setting and by default is unspecified.)')]
        [int]
        $rfspIndex,
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The default slice to use if the UE does not explicitly specify it. This slice must exist in the `sliceConfigurations` map.)')]
        [SliceResourceId]
        $defaultSlice,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Interval for the UE periodic registration update procedure, in seconds.)')]
        [int]
        $registrationTimer,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='Aggregate maximum bit rate across all non-GBR QoS flows of all PDU sessions of a given UE. See 3GPP TS23.501 section 5.7.2.6 for a full description of the UE-AMBR.)')]
        [Ambr]
        $ueAmbr,
        [parameter(mandatory=$False,HelpMessage='The allowed slices and the settings to use for them. The list must not contain duplicate items and must contain at least one item.)')]
        $sliceConfigurations,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:SimPolicy")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["defaultSlice"] = $defaultSlice
        $resource.properties["mobileNetworkName"] = $mobileNetworkName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sliceConfigurations"] = $sliceConfigurations
        $resource.properties["ueAmbr"] = $ueAmbr

        if($PSBoundParameters.Keys -icontains 'simPolicyName')
        {
            $resource.properties["simPolicyName"] = $simPolicyName
        }

        if($PSBoundParameters.Keys -icontains 'rfspIndex')
        {
            $resource.properties["rfspIndex"] = $rfspIndex
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'registrationTimer')
        {
            $resource.properties["registrationTimer"] = $registrationTimer
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class QosPolicy
{
    [ArgumentCompletions('NotPreemptable', 'Preemptable')]
    [string] $preemptionVulnerability
    [ArgumentCompletions('NotPreempt', 'MayPreempt')]
    [string] $preemptionCapability
    [int] $allocationAndRetentionPriorityLevel
    [int] $fiveQi
    [Ambr] $maximumBitRate
}
function New-AzureNativeTypeMobilenetworkQosPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='QoS Flow preemption vulnerability. The Preemption Vulnerability of a QoS Flow controls whether it can be preempted by QoS Flow with a higher priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.)')]
        [string]
        [ValidateSet('NotPreemptable', 'Preemptable')]
        $preemptionVulnerability,
        [parameter(mandatory=$False,HelpMessage='QoS Flow preemption capability. The Preemption Capability of a QoS Flow controls whether it can preempt another QoS Flow with a lower priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.)')]
        [string]
        [ValidateSet('NotPreempt', 'MayPreempt')]
        $preemptionCapability,
        [parameter(mandatory=$False,HelpMessage='QoS Flow allocation and retention priority (ARP) level. Flows with higher priority preempt flows with lower priority, if the settings of `preemptionCapability` and `preemptionVulnerability` allow it. 1 is the highest level of priority. If this field is not specified then `5qi` is used to derive the ARP value. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.)')]
        [int]
        $allocationAndRetentionPriorityLevel,
        [parameter(mandatory=$False,HelpMessage='QoS Flow 5G QoS Indicator value. The 5QI identifies a specific QoS forwarding treatment to be provided to a flow. This must not be a standardized 5QI value selecting a GBR (Guaranteed Bit Rate) QoS. The illegal GBR 5QI values are: 1, 2, 3, 4, 65, 66, 67, 71, 72, 73, 74, 75, 76, 82, 83, 84, and 85. See 3GPP TS23.501 section 5.7.2.1 for a full description of the 5Qi parameter, and table 5.7.4-1 for the definition of which are the GBR 5QI values.)')]
        [int]
        $fiveQi,
        [parameter(mandatory=$False,HelpMessage='The Maximum Bit Rate (MBR) for all service data flows that use this PCC Rule or Service.)')]
        [Ambr]
        $maximumBitRate
    )

    process
    {
        return $([QosPolicy]$PSBoundParameters)
    }
}
function New-AzureNativeMobilenetworkService
{
    [Alias('azure_native_mobilenetwork_service')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The QoS policy to use for packets matching this service. This can be overridden for particular flows using the ruleQosPolicy field in a PccRuleConfiguration. If this field is null then the UE''s simPolicy will define the QoS settings.)')]
        [QosPolicy]
        $serviceQosPolicy,
        [parameter(mandatory=$False,HelpMessage='The set of PCC Rules that make up this service.)')]
        $pccRules,
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The name of the service. You must not use any of the following reserved strings - `default`, `requested` or `service`)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='A precedence value that is used to decide between services when identifying the QoS values to use for a particular Sim. A lower value means a higher priority. This value should be unique among all services configured in the Mobile Network.)')]
        [int]
        $servicePrecedence,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:Service")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["mobileNetworkName"] = $mobileNetworkName
        $resource.properties["pccRules"] = $pccRules
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["servicePrecedence"] = $servicePrecedence

        if($PSBoundParameters.Keys -icontains 'serviceQosPolicy')
        {
            $resource.properties["serviceQosPolicy"] = $serviceQosPolicy
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'serviceName')
        {
            $resource.properties["serviceName"] = $serviceName
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeMobilenetworkDataNetwork
{
    [Alias('azure_native_mobilenetwork_datanetwork')]
    param (
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network dataNetwork.)')]
        [string]
        $dataNetworkName,
        [parameter(mandatory=$False,HelpMessage='An optional description for this data network.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:DataNetwork")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["mobileNetworkName"] = $mobileNetworkName
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'dataNetworkName')
        {
            $resource.properties["dataNetworkName"] = $dataNetworkName
        }

        if($PSBoundParameters.Keys -icontains 'description')
        {
            $resource.properties["description"] = $description
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class PlmnId
{
    [string] $mcc
    [string] $mnc
}
function New-AzureNativeTypeMobilenetworkPlmnId
{
    param (
        [parameter(mandatory=$False,HelpMessage='Mobile Country Code (MCC).)')]
        [string]
        $mcc,
        [parameter(mandatory=$False,HelpMessage='Mobile Network Code (MNC).)')]
        [string]
        $mnc
    )

    process
    {
        return $([PlmnId]$PSBoundParameters)
    }
}
function New-AzureNativeMobilenetworkMobileNetwork
{
    [Alias('azure_native_mobilenetwork_mobilenetwork')]
    param (
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the mobile network.)')]
        [string]
        $mobileNetworkName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The unique public land mobile network identifier for the network. This is made up of the Mobile Country Code and Mobile Network Code, as defined in https://www.itu.int/rec/T-REC-E.212. The values 001-01 and 001-001 can be used for testing and the values 999-99 and 999-999 can be used on internal private networks.)')]
        [PlmnId]
        $publicLandMobileNetworkIdentifier,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:MobileNetwork")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["publicLandMobileNetworkIdentifier"] = $publicLandMobileNetworkIdentifier
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'mobileNetworkName')
        {
            $resource.properties["mobileNetworkName"] = $mobileNetworkName
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeMobilenetworkPacketCoreDataPlane
{
    [Alias('azure_native_mobilenetwork_packetcoredataplane')]
    param (
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the packet core data plane.)')]
        [string]
        $packetCoreDataPlaneName,
        [parameter(mandatory=$False,HelpMessage='The name of the packet core control plane.)')]
        [string]
        $packetCoreControlPlaneName,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The user plane interface on the access network. In 5G networks this is called as N3 interface whereas in 4G networks this is called the S1-U interface.)')]
        [InterfaceProperties]
        $userPlaneAccessInterface,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:PacketCoreDataPlane")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["packetCoreControlPlaneName"] = $packetCoreControlPlaneName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["userPlaneAccessInterface"] = $userPlaneAccessInterface

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'packetCoreDataPlaneName')
        {
            $resource.properties["packetCoreDataPlaneName"] = $packetCoreDataPlaneName
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class PortReuseHoldTimes
{
    [int] $udp
    [int] $tcp
}
function New-AzureNativeTypeMobilenetworkPortReuseHoldTimes
{
    param (
        [parameter(mandatory=$False,HelpMessage='Minimum time in seconds that will pass before a UDP port that was used by a closed pinhole can be reused. Default for UDP is 1 minute.)')]
        [int]
        $udp,
        [parameter(mandatory=$False,HelpMessage='Minimum time in seconds that will pass before a TCP port that was used by a closed pinhole can be reused. Default for TCP is 2 minutes.)')]
        [int]
        $tcp
    )

    process
    {
        return $([PortReuseHoldTimes]$PSBoundParameters)
    }
}
class PortRange
{
    [int] $minPort
    [int] $maxPort
}
function New-AzureNativeTypeMobilenetworkPortRange
{
    param (
        [parameter(mandatory=$False,HelpMessage='The minimum port number)')]
        [int]
        $minPort,
        [parameter(mandatory=$False,HelpMessage='The maximum port number)')]
        [int]
        $maxPort
    )

    process
    {
        return $([PortRange]$PSBoundParameters)
    }
}
class PinholeTimeouts
{
    [int] $tcp
    [int] $icmp
    [int] $udp
}
function New-AzureNativeTypeMobilenetworkPinholeTimeouts
{
    param (
        [parameter(mandatory=$False,HelpMessage='Pinhole timeout for TCP pinholes in seconds. Default for TCP is 2 hours 4 minutes per RFC 5382 section 5.)')]
        [int]
        $tcp,
        [parameter(mandatory=$False,HelpMessage='Pinhole timeout for ICMP pinholes in seconds. Default for ICMP Echo is 60 seconds per RFC 5508 section 3.2.)')]
        [int]
        $icmp,
        [parameter(mandatory=$False,HelpMessage='Pinhole timeout for UDP pinholes in seconds. Default for UDP is 5 minutes per RFC 4787 section 4.3.)')]
        [int]
        $udp
    )

    process
    {
        return $([PinholeTimeouts]$PSBoundParameters)
    }
}
class NaptConfiguration
{
    [PortReuseHoldTimes] $portReuseHoldTime
    [PortRange] $portRange
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $enabled
    [int] $pinholeLimits
    [PinholeTimeouts] $pinholeTimeouts
}
function New-AzureNativeTypeMobilenetworkNaptConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The minimum time (in seconds) that will pass before a port that was used by a closed pinhole can be recycled for use by another pinhole. All hold times must be minimum 1 second.)')]
        [PortReuseHoldTimes]
        $portReuseHoldTime,
        [parameter(mandatory=$False,HelpMessage='Range of port numbers to use as translated ports on each translated address.
If not specified and NAPT is enabled, this range defaults to 1,024 - 65,535. (Ports under 1,024 should not be used because these are special purpose ports reserved by IANA.))'
)]
        [PortRange]
        $portRange,
        [parameter(mandatory=$False,HelpMessage='Whether NAPT is enabled for connections to this attachedDataNetwork.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Maximum number of UDP and TCP pinholes that can be open simultaneously on the core interface.)')]
        [int]
        $pinholeLimits,
        [parameter(mandatory=$False,HelpMessage='Expiry times of inactive NAPT pinholes, in seconds. All timers must be at least 1 second.)')]
        [PinholeTimeouts]
        $pinholeTimeouts
    )

    process
    {
        return $([NaptConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeMobilenetworkAttachedDataNetwork
{
    [Alias('azure_native_mobilenetwork_attacheddatanetwork')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the packet core data plane.)')]
        [string]
        $packetCoreDataPlaneName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The user plane interface on the data network. In 5G networks this is called as N6 interface whereas in 4G networks this is called as SGi interface.)')]
        [InterfaceProperties]
        $userPlaneDataInterface,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource last modification (UTC))')]
        [string]
        $lastModifiedAt,
        [parameter(mandatory=$False,HelpMessage='The identity that last modified the resource.)')]
        [string]
        $lastModifiedBy,
        [parameter(mandatory=$False,HelpMessage='The timestamp of resource creation (UTC).)')]
        [string]
        $createdAt,
        [parameter(mandatory=$False,HelpMessage='The type of identity that last modified the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $lastModifiedByType,
        [parameter(mandatory=$False,HelpMessage='The type of identity that created the resource.)')]
        [string]
        [ValidateSet('User', 'Application', 'ManagedIdentity', 'Key')]
        $createdByType,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The user equipment address pool prefixes for the attached data network that are dynamically assigned by the core to UEs when they set up a PDU session.
At least one of userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix must be defined. If both are defined then they must be the same size.)'
)]
        [string[]]
        $userEquipmentAddressPoolPrefix,
        [parameter(mandatory=$False,HelpMessage='The Network Address and Port Translation configuration.
If not specified the attached data network uses a default NAPT configuration with NAPT enabled.)'
)]
        [NaptConfiguration]
        $naptConfiguration,
        [parameter(mandatory=$False,HelpMessage='The name of the attached data network.)')]
        [string]
        $attachedDataNetworkName,
        [parameter(mandatory=$False,HelpMessage='The identity that created the resource.)')]
        [string]
        $createdBy,
        [parameter(mandatory=$False,HelpMessage='The user equipment address pool prefixes for the attached data network that are statically assigned by the core to UEs when they set up a PDU session.
The mapping of static IP to sim is configured in staticIpConfiguration on the sim resource.
At least one of userEquipmentAddressPoolPrefix and userEquipmentStaticAddressPoolPrefix must be defined. If both are defined then they must be the same size.)'
)]
        [string[]]
        $userEquipmentStaticAddressPoolPrefix,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the packet core control plane.)')]
        [string]
        $packetCoreControlPlaneName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:mobilenetwork:AttachedDataNetwork")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["packetCoreControlPlaneName"] = $packetCoreControlPlaneName
        $resource.properties["packetCoreDataPlaneName"] = $packetCoreDataPlaneName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["userPlaneDataInterface"] = $userPlaneDataInterface

        if($PSBoundParameters.Keys -icontains 'lastModifiedAt')
        {
            $resource.properties["lastModifiedAt"] = $lastModifiedAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedBy')
        {
            $resource.properties["lastModifiedBy"] = $lastModifiedBy
        }

        if($PSBoundParameters.Keys -icontains 'createdAt')
        {
            $resource.properties["createdAt"] = $createdAt
        }

        if($PSBoundParameters.Keys -icontains 'lastModifiedByType')
        {
            $resource.properties["lastModifiedByType"] = $lastModifiedByType
        }

        if($PSBoundParameters.Keys -icontains 'createdByType')
        {
            $resource.properties["createdByType"] = $createdByType
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'userEquipmentAddressPoolPrefix')
        {
            $resource.properties["userEquipmentAddressPoolPrefix"] = $userEquipmentAddressPoolPrefix
        }

        if($PSBoundParameters.Keys -icontains 'naptConfiguration')
        {
            $resource.properties["naptConfiguration"] = $naptConfiguration
        }

        if($PSBoundParameters.Keys -icontains 'attachedDataNetworkName')
        {
            $resource.properties["attachedDataNetworkName"] = $attachedDataNetworkName
        }

        if($PSBoundParameters.Keys -icontains 'createdBy')
        {
            $resource.properties["createdBy"] = $createdBy
        }

        if($PSBoundParameters.Keys -icontains 'userEquipmentStaticAddressPoolPrefix')
        {
            $resource.properties["userEquipmentStaticAddressPoolPrefix"] = $userEquipmentStaticAddressPoolPrefix
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        $global:pulumiresources += $resource
        return $resource
    }
}