pspulumiyaml.azurenative.quantum.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionQuantumGetWorkspace
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the quantum workspace resource.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:quantum:getWorkspace -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class QuantumWorkspaceIdentity
{
    [ArgumentCompletions('SystemAssigned', 'None')]
    [string] $type
}
function New-AzureNativeTypeQuantumQuantumWorkspaceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The identity type.)')]
        [string]
        [ValidateSet('SystemAssigned', 'None')]
        $type
    )

    process
    {
        return $([QuantumWorkspaceIdentity]$PSBoundParameters)
    }
}
function New-AzureNativeQuantumWorkspace
{
    [Alias('azure_native_quantum_workspace')]
    param (
        [parameter(mandatory=$False,HelpMessage='List of Providers selected for this Workspace)')]
        $providers,
        [parameter(mandatory=$False,HelpMessage='ARM Resource Id of the storage account associated with this workspace.)')]
        [string]
        $storageAccount,
        [parameter(mandatory=$False,HelpMessage='Managed Identity information.)')]
        [QuantumWorkspaceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The name of the quantum workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [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:quantum:Workspace")

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

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

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

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

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

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

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

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