pspulumiyaml.azurenative.hardwaresecuritymodules.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionHardwaresecuritymodulesGetDedicatedHsm
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the dedicated HSM.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The name of the Resource Group to which the dedicated hsm belongs.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:hardwaresecuritymodules:getDedicatedHsm -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class Sku
{
    [ValidateSet('SafeNet Luna Network HSM A790', 'payShield10K_LMK1_CPS60', 'payShield10K_LMK1_CPS250', 'payShield10K_LMK1_CPS2500', 'payShield10K_LMK2_CPS60', 'payShield10K_LMK2_CPS250', 'payShield10K_LMK2_CPS2500')]
    [string] $name
}
function New-AzureNativeTypeHardwaresecuritymodulesSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='SKU of the dedicated HSM)')]
        [string]
        [ValidateSet('SafeNet Luna Network HSM A790', 'payShield10K_LMK1_CPS60', 'payShield10K_LMK1_CPS250', 'payShield10K_LMK1_CPS2500', 'payShield10K_LMK2_CPS60', 'payShield10K_LMK2_CPS250', 'payShield10K_LMK2_CPS2500')]
        $name
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
class ApiEntityReference
{
    [string] $id
}
function New-AzureNativeTypeHardwaresecuritymodulesApiEntityReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...)')]
        [string]
        $id
    )

    process
    {
        return $([ApiEntityReference]$PSBoundParameters)
    }
}
class NetworkInterface
{
    [string] $privateIpAddress
}
function New-AzureNativeTypeHardwaresecuritymodulesNetworkInterface
{
    param (
        [parameter(mandatory=$False,HelpMessage='Private Ip address of the interface)')]
        [string]
        $privateIpAddress
    )

    process
    {
        return $([NetworkInterface]$PSBoundParameters)
    }
}
class NetworkProfile
{
    [ApiEntityReference] $subnet
    [NetworkInterface[]] $networkInterfaces
}
function New-AzureNativeTypeHardwaresecuritymodulesNetworkProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the identifier of the subnet.)')]
        [ApiEntityReference]
        $subnet,
        [parameter(mandatory=$False,HelpMessage='Specifies the list of resource Ids for the network interfaces associated with the dedicated HSM.)')]
        $networkInterfaces
    )

    process
    {
        return $([NetworkProfile]$PSBoundParameters)
    }
}
function New-AzureNativeHardwaresecuritymodulesDedicatedHsm
{
    [Alias('azure_native_hardwaresecuritymodules_dedicatedhsm')]
    param (
        [parameter(mandatory=$False,HelpMessage='SKU details)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Specifies the network interfaces of the dedicated hsm.)')]
        [NetworkProfile]
        $networkProfile,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The Dedicated Hsm zones.)')]
        [string[]]
        $zones,
        [parameter(mandatory=$False,HelpMessage='Name of the dedicated Hsm)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The supported Azure location where the dedicated HSM should be created.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='This field will be used when RP does not support Availability zones.)')]
        [string]
        $stampId,
        [parameter(mandatory=$False,HelpMessage='The name of the Resource Group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sku"] = $sku

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

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

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

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

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

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

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