pspulumiyaml.azurenative.storsimple.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionStorsimpleGetVolume
{
    param (
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [parameter(mandatory=$False,HelpMessage='The volume container name.)')]
        [string]
        $volumeContainerName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The volume name.)')]
        [string]
        $volumeName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["deviceName"] = $deviceName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["volumeContainerName"] = $volumeContainerName
        $arguments["volumeName"] = $volumeName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getVolume -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleListManagerPublicEncryptionKey
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:listManagerPublicEncryptionKey -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetManagerDevicePublicEncryptionKey
{
    param (
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["deviceName"] = $deviceName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getManagerDevicePublicEncryptionKey -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetAccessControlRecord
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='Name of access control record to be fetched.)')]
        [string]
        $accessControlRecordName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["accessControlRecordName"] = $accessControlRecordName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getAccessControlRecord -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetBandwidthSetting
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The name of bandwidth setting to be fetched.)')]
        [string]
        $bandwidthSettingName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["bandwidthSettingName"] = $bandwidthSettingName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getBandwidthSetting -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetStorageAccountCredential
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The name of storage account credential to be fetched.)')]
        [string]
        $storageAccountCredentialName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["storageAccountCredentialName"] = $storageAccountCredentialName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getStorageAccountCredential -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleListManagerActivationKey
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:listManagerActivationKey -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetManagerExtendedInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getManagerExtendedInfo -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetBackupSchedule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The backup policy name.)')]
        [string]
        $backupPolicyName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The name of the backup schedule to be fetched)')]
        [string]
        $backupScheduleName,
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["backupPolicyName"] = $backupPolicyName
        $arguments["backupScheduleName"] = $backupScheduleName
        $arguments["deviceName"] = $deviceName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getBackupSchedule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleListDeviceFailoverTars
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The source device name on which failover is performed.)')]
        [string]
        $sourceDeviceName,
        [parameter(mandatory=$False,HelpMessage='The list of path IDs of the volume containers that needs to be failed-over, for which we want to fetch the eligible targets.)')]
        [string[]]
        $volumeContainers,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["sourceDeviceName"] = $sourceDeviceName

        if($PSBoundParameters.Keys -icontains 'volumeContainers')
        {
            $arguments["volumeContainers"] = $volumeContainers
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:listDeviceFailoverTars -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetManager
{
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getManager -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetVolumeContainer
{
    param (
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the volume container.)')]
        [string]
        $volumeContainerName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["deviceName"] = $deviceName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["volumeContainerName"] = $volumeContainerName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getVolumeContainer -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleListDeviceFailoverSets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["deviceName"] = $deviceName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:listDeviceFailoverSets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStorsimpleGetBackupPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of backup policy to be fetched.)')]
        [string]
        $backupPolicyName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["backupPolicyName"] = $backupPolicyName
        $arguments["deviceName"] = $deviceName
        $arguments["managerName"] = $managerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storsimple:getBackupPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeStorsimpleAccessControlRecord
{
    [Alias('azure_native_storsimple_accesscontrolrecord')]
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the access control record.)')]
        [string]
        $accessControlRecordName,
        [parameter(mandatory=$False,HelpMessage='The iSCSI initiator name (IQN).)')]
        [string]
        $initiatorName,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [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:storsimple:AccessControlRecord")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class AsymmetricEncryptedSecret
{
    [ArgumentCompletions('None', 'AES256', 'RSAES_PKCS1_v_1_5')]
    [object] $encryptionAlgorithm
    [string] $encryptionCertThumbprint
    [string] $value
}
function New-AzureNativeTypeStorsimpleAsymmetricEncryptedSecret
{
    param (
        [parameter(mandatory=$False,HelpMessage='The algorithm used to encrypt "Value".)')]
        $encryptionAlgorithm,
        [parameter(mandatory=$False,HelpMessage='Thumbprint certificate that was used to encrypt "Value". If the value in unencrypted, it will be null.)')]
        [string]
        $encryptionCertThumbprint,
        [parameter(mandatory=$False,HelpMessage='The value of the secret.)')]
        [string]
        $value
    )

    process
    {
        return $([AsymmetricEncryptedSecret]$PSBoundParameters)
    }
}
function New-AzureNativeStorsimpleStorageAccountCredential
{
    [Alias('azure_native_storsimple_storageaccountcredential')]
    param (
        [parameter(mandatory=$False,HelpMessage='The storage endpoint)')]
        [string]
        $endPoint,
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The storage account credential name.)')]
        [string]
        $storageAccountCredentialName,
        [parameter(mandatory=$False,HelpMessage='Signifies whether SSL needs to be enabled or not.)')]
        $sslStatus,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The details of the storage account password.)')]
        [AsymmetricEncryptedSecret]
        $accessKey,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [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:storsimple:StorageAccountCredential")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStorsimpleManagerExtendedInfo
{
    [Alias('azure_native_storsimple_managerextendedinfo')]
    param (
        [parameter(mandatory=$False,HelpMessage='Represents the portal thumbprint which can be used optionally to encrypt the entire data before storing it.)')]
        [string]
        $portalCertificateThumbprint,
        [parameter(mandatory=$False,HelpMessage='Represents the CEK of the resource.)')]
        [string]
        $encryptionKey,
        [parameter(mandatory=$False,HelpMessage='Represents the Cert thumbprint that was used to encrypt the CEK.)')]
        [string]
        $encryptionKeyThumbprint,
        [parameter(mandatory=$False,HelpMessage='Represents the encryption algorithm used to encrypt the keys. None - if Key is saved in plain text format. Algorithm name - if key is encrypted)')]
        [string]
        $algorithm,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='Represents the CIK of the resource.)')]
        [string]
        $integrityKey,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The version of the extended info being persisted.)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [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:storsimple:ManagerExtendedInfo")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStorsimpleVolumeContainer
{
    [Alias('azure_native_storsimple_volumecontainer')]
    param (
        [parameter(mandatory=$False,HelpMessage='The path ID of storage account associated with the volume container.)')]
        [string]
        $storageAccountCredentialId,
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The key used to encrypt data in the volume container. It is required when property ''EncryptionStatus'' is "Enabled".)')]
        [AsymmetricEncryptedSecret]
        $encryptionKey,
        [parameter(mandatory=$False,HelpMessage='The bandwidth-rate set on the volume container.)')]
        [int]
        $bandWidthRateInMbps,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The ID of the bandwidth setting associated with the volume container.)')]
        [string]
        $bandwidthSettingId,
        [parameter(mandatory=$False,HelpMessage='The name of the volume container.)')]
        [string]
        $volumeContainerName,
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [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:storsimple:VolumeContainer")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStorsimpleBackupPolicy
{
    [Alias('azure_native_storsimple_backuppolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The path IDs of the volumes which are part of the backup policy.)')]
        [string[]]
        $volumeIds,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the backup policy to be created/updated.)')]
        [string]
        $backupPolicyName,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [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:storsimple:BackupPolicy")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStorsimpleVolume
{
    [Alias('azure_native_storsimple_volume')]
    param (
        [parameter(mandatory=$False,HelpMessage='The volume name.)')]
        [string]
        $volumeName,
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The IDs of the access control records, associated with the volume.)')]
        [string[]]
        $accessControlRecordIds,
        [parameter(mandatory=$False,HelpMessage='The size of the volume in bytes.)')]
        [int]
        $sizeInBytes,
        [parameter(mandatory=$False,HelpMessage='The monitoring status of the volume.)')]
        $monitoringStatus,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The type of the volume.)')]
        $volumeType,
        [parameter(mandatory=$False,HelpMessage='The volume status.)')]
        $volumeStatus,
        [parameter(mandatory=$False,HelpMessage='The volume container name.)')]
        [string]
        $volumeContainerName,
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [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:storsimple:Volume")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["accessControlRecordIds"] = $accessControlRecordIds
        $resource.properties["deviceName"] = $deviceName
        $resource.properties["managerName"] = $managerName
        $resource.properties["monitoringStatus"] = $monitoringStatus
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sizeInBytes"] = $sizeInBytes
        $resource.properties["volumeContainerName"] = $volumeContainerName
        $resource.properties["volumeStatus"] = $volumeStatus
        $resource.properties["volumeType"] = $volumeType

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ManagerIntrinsicSettings
{
    [ArgumentCompletions('GardaV1', 'HelsinkiV1')]
    [object] $type
}
function New-AzureNativeTypeStorsimpleManagerIntrinsicSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of StorSimple Manager.)')]
        $type
    )

    process
    {
        return $([ManagerIntrinsicSettings]$PSBoundParameters)
    }
}
class ManagerSku
{
    [ArgumentCompletions('Standard')]
    [object] $name
}
function New-AzureNativeTypeStorsimpleManagerSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='Refers to the sku name which should be "Standard")')]
        $name
    )

    process
    {
        return $([ManagerSku]$PSBoundParameters)
    }
}
function New-AzureNativeStorsimpleManager
{
    [Alias('azure_native_storsimple_manager')]
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the state of the resource as it is getting provisioned. Value of "Succeeded" means the Manager was successfully created.)')]
        [string]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='The tags attached to the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Represents the type of StorSimple Manager.)')]
        [ManagerIntrinsicSettings]
        $cisIntrinsicSettings,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Specifies the Sku.)')]
        [ManagerSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The geo location of the resource.)')]
        [string]
        $location,
        [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:storsimple:Manager")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStorsimpleBandwidthSetting
{
    [Alias('azure_native_storsimple_bandwidthsetting')]
    param (
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The schedules.)')]
        $schedules,
        [parameter(mandatory=$False,HelpMessage='The bandwidth setting name.)')]
        [string]
        $bandwidthSettingName,
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [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:storsimple:BandwidthSetting")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ScheduleRecurrence
{
    [ArgumentCompletions('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')]
    [string] $weeklyDaysList
    [ArgumentCompletions('Minutes', 'Hourly', 'Daily', 'Weekly')]
    [object] $recurrenceType
    [int] $recurrenceValue
}
function New-AzureNativeTypeStorsimpleScheduleRecurrence
{
    param (
        [parameter(mandatory=$False,HelpMessage='The week days list. Applicable only for schedules of recurrence type ''weekly''.)')]
        $weeklyDaysList,
        [parameter(mandatory=$False,HelpMessage='The recurrence type.)')]
        $recurrenceType,
        [parameter(mandatory=$False,HelpMessage='The recurrence value.)')]
        [int]
        $recurrenceValue
    )

    process
    {
        return $([ScheduleRecurrence]$PSBoundParameters)
    }
}
function New-AzureNativeStorsimpleBackupSchedule
{
    [Alias('azure_native_storsimple_backupschedule')]
    param (
        [parameter(mandatory=$False,HelpMessage='The start time of the schedule.)')]
        [string]
        $startTime,
        [parameter(mandatory=$False,HelpMessage='The schedule recurrence.)')]
        [ScheduleRecurrence]
        $scheduleRecurrence,
        [parameter(mandatory=$False,HelpMessage='The type of backup which needs to be taken.)')]
        $backupType,
        [parameter(mandatory=$False,HelpMessage='The Kind of the object. Currently only Series8000 is supported)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The number of backups to be retained.)')]
        [int]
        $retentionCount,
        [parameter(mandatory=$False,HelpMessage='The schedule status.)')]
        $scheduleStatus,
        [parameter(mandatory=$False,HelpMessage='The manager name)')]
        [string]
        $managerName,
        [parameter(mandatory=$False,HelpMessage='The backup schedule name.)')]
        [string]
        $backupScheduleName,
        [parameter(mandatory=$False,HelpMessage='The backup policy name.)')]
        [string]
        $backupPolicyName,
        [parameter(mandatory=$False,HelpMessage='The device name)')]
        [string]
        $deviceName,
        [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:storsimple:BackupSchedule")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["backupPolicyName"] = $backupPolicyName
        $resource.properties["backupType"] = $backupType
        $resource.properties["deviceName"] = $deviceName
        $resource.properties["managerName"] = $managerName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["retentionCount"] = $retentionCount
        $resource.properties["scheduleRecurrence"] = $scheduleRecurrence
        $resource.properties["scheduleStatus"] = $scheduleStatus
        $resource.properties["startTime"] = $startTime

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

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

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