pspulumiyaml.azurenative.elasticsan.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionElasticsanGetVolume
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the ElasticSan.)')]
        [string]
        $elasticSanName,
        [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 VolumeGroup.)')]
        [string]
        $volumeGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Volume.)')]
        [string]
        $volumeName
    )

    process
    {
        $arguments = @{}
        $arguments["elasticSanName"] = $elasticSanName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["volumeGroupName"] = $volumeGroupName
        $arguments["volumeName"] = $volumeName

        $functionObject = Invoke-PulumiFunction -Name azure-native:elasticsan:getVolume -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionElasticsanGetElasticSan
{
    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 ElasticSan.)')]
        [string]
        $elasticSanName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:elasticsan:getElasticSan -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionElasticsanGetVolumeGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the ElasticSan.)')]
        [string]
        $elasticSanName,
        [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 VolumeGroup.)')]
        [string]
        $volumeGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["elasticSanName"] = $elasticSanName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["volumeGroupName"] = $volumeGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:elasticsan:getVolumeGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class Sku
{
    [ValidateSet('Standard_LRS', 'Premium_LRS', 'Standard_ZRS')]
    [string] $name
    [ValidateSet('Hero', 'Satellite', 'Hub')]
    [string] $tier
}
function New-AzureNativeTypeElasticsanSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The sku name.)')]
        [string]
        [ValidateSet('Standard_LRS', 'Premium_LRS', 'Standard_ZRS')]
        $name,
        [parameter(mandatory=$False,HelpMessage='The sku tier.)')]
        [string]
        [ValidateSet('Hero', 'Satellite', 'Hub')]
        $tier
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
function New-AzureNativeElasticsanElasticSan
{
    [Alias('azure_native_elasticsan_elasticsan')]
    param (
        [parameter(mandatory=$False,HelpMessage='resource sku)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Base size of the Elastic San appliance in TiB.)')]
        [int]
        $baseSizeTiB,
        [parameter(mandatory=$False,HelpMessage='Azure resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Extended size of the Elastic San appliance in TiB.)')]
        [int]
        $extendedCapacitySizeTiB,
        [parameter(mandatory=$False,HelpMessage='Logical zone for Elastic San resource; example: ["1"].)')]
        [string[]]
        $availabilityZones,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives.)')]
        [string]
        $location,
        [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 ElasticSan.)')]
        [string]
        $elasticSanName,
        [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:elasticsan:ElasticSan")

        $resource.properties["availabilityZones"] = $availabilityZones
        $resource.properties["baseSizeTiB"] = $baseSizeTiB
        $resource.properties["extendedCapacitySizeTiB"] = $extendedCapacitySizeTiB
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class VirtualNetworkRule
{
    [ValidateSet('Allow')]
    [object] $action
    [ValidateSet('Allow')]
    [string] $virtualNetworkResourceId
}
function New-AzureNativeTypeElasticsanVirtualNetworkRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The action of virtual network rule.)')]
        $action,
        [parameter(mandatory=$False,HelpMessage='Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.)')]
        [string]
        $virtualNetworkResourceId
    )

    process
    {
        return $([VirtualNetworkRule]$PSBoundParameters)
    }
}
class NetworkRuleSet
{
    [VirtualNetworkRule[]] $virtualNetworkRules
}
function New-AzureNativeTypeElasticsanNetworkRuleSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of virtual network rules.)')]
        $virtualNetworkRules
    )

    process
    {
        return $([NetworkRuleSet]$PSBoundParameters)
    }
}
function New-AzureNativeElasticsanVolumeGroup
{
    [Alias('azure_native_elasticsan_volumegroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='Type of storage target)')]
        [string]
        [ValidateSet('Iscsi', 'None')]
        $protocolType,
        [parameter(mandatory=$False,HelpMessage='Azure resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Type of encryption)')]
        [string]
        [ValidateSet('EncryptionAtRestWithPlatformKey', 'EncryptionAtRestWithCustomerKey', 'EncryptionAtRestWithPlatformAndCustomerKeys')]
        $encryption,
        [parameter(mandatory=$False,HelpMessage='The name of the VolumeGroup.)')]
        [string]
        $volumeGroupName,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='A collection of rules governing the accessibility from specific network locations.)')]
        [NetworkRuleSet]
        $networkAcls,
        [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 ElasticSan.)')]
        [string]
        $elasticSanName,
        [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:elasticsan:VolumeGroup")

        $resource.properties["elasticSanName"] = $elasticSanName
        $resource.properties["encryption"] = $encryption
        $resource.properties["protocolType"] = $protocolType
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class SourceCreationData
{
    [string] $sourceUri
    [ValidateSet('None', 'FromVolume', 'FromDiskSnapshot', 'Export')]
    [object] $createSource
}
function New-AzureNativeTypeElasticsanSourceCreationData
{
    param (
        [parameter(mandatory=$False,HelpMessage='If createOption is Copy, this is the ARM id of the source snapshot or disk. If createOption is Restore, this is the ARM-like id of the source disk restore point.)')]
        [string]
        $sourceUri,
        [parameter(mandatory=$False,HelpMessage='This enumerates the possible sources of a volume creation.)')]
        $createSource
    )

    process
    {
        return $([SourceCreationData]$PSBoundParameters)
    }
}
function New-AzureNativeElasticsanVolume
{
    [Alias('azure_native_elasticsan_volume')]
    param (
        [parameter(mandatory=$False,HelpMessage='Volume size.)')]
        [int]
        $sizeGiB,
        [parameter(mandatory=$False,HelpMessage='Azure resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Volume.)')]
        [string]
        $volumeName,
        [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='State of the operation on the resource.)')]
        [SourceCreationData]
        $creationData,
        [parameter(mandatory=$False,HelpMessage='The name of the VolumeGroup.)')]
        [string]
        $volumeGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the ElasticSan.)')]
        [string]
        $elasticSanName,
        [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:elasticsan:Volume")

        $resource.properties["elasticSanName"] = $elasticSanName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["volumeGroupName"] = $volumeGroupName

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

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

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

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

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

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