pspulumiyaml.azurenative.datashare.psm1

using module @{ ModuleName = "PSPulumiYaml"; ModuleVersion = "0.0.3"; GUID = "909344e0-a08f-45f6-8177-80e36bb2ba58" }
function Invoke-AzureNativeFunctionDatashareGetScheduledSynchronizationSetting
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the synchronizationSetting.)')]
        [string]
        $synchronizationSettingName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName
        $arguments["synchronizationSettingName"] = $synchronizationSettingName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getScheduledSynchronizationSetting -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetBlobContainerDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getBlobContainerDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetBlobDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getBlobDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetBlobDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getBlobDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen2FileDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen2FileDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetKustoClusterDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getKustoClusterDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetSqlDBTableDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getSqlDBTableDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetKustoClusterDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getKustoClusterDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetScheduledTrigger
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the trigger.)')]
        [string]
        $triggerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName
        $arguments["triggerName"] = $triggerName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getScheduledTrigger -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetBlobFolderDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getBlobFolderDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetKustoDatabaseDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getKustoDatabaseDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetKustoDatabaseDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getKustoDatabaseDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetInvitation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the invitation.)')]
        [string]
        $invitationName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["invitationName"] = $invitationName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getInvitation -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetTrigger
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the trigger.)')]
        [string]
        $triggerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName
        $arguments["triggerName"] = $triggerName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getTrigger -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen2FolderDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen2FolderDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen2FolderDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen2FolderDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen1FolderDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen1FolderDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetSynapseWorkspaceSqlPoolTableDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getSynapseWorkspaceSqlPoolTableDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen2FileDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen2FileDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetSqlDBTableDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getSqlDBTableDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetShareSubscription
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getShareSubscription -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareListShareSubscriptionSourceShareSynchronizationSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='Continuation token)')]
        [string]
        $skipToken
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:listShareSubscriptionSourceShareSynchronizationSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen1FileDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen1FileDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen2FileSystemDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen2FileSystemDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetBlobContainerDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getBlobContainerDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetADLSGen2FileSystemDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getADLSGen2FileSystemDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetBlobFolderDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getBlobFolderDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetSqlDWTableDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetName"] = $dataSetName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getSqlDWTableDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetSynchronizationSetting
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the synchronizationSetting.)')]
        [string]
        $synchronizationSettingName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName
        $arguments["synchronizationSettingName"] = $synchronizationSettingName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getSynchronizationSetting -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareListShareSubscriptionSynchronizations
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Sorts the results using OData syntax.)')]
        [string]
        $orderby,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Continuation token)')]
        [string]
        $skipToken,
        [parameter(mandatory=$False,HelpMessage='Filters the results using OData syntax.)')]
        [string]
        $filter,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription.)')]
        [string]
        $shareSubscriptionName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:listShareSubscriptionSynchronizations -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetSynapseWorkspaceSqlPoolTableDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getSynapseWorkspaceSqlPoolTableDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetShare
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to retrieve.)')]
        [string]
        $shareName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getShare -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareListShareSubscriptionSynchronizationDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Sorts the results using OData syntax.)')]
        [string]
        $orderby,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Synchronization id)')]
        [string]
        $synchronizationId,
        [parameter(mandatory=$False,HelpMessage='Continuation token)')]
        [string]
        $skipToken,
        [parameter(mandatory=$False,HelpMessage='Filters the results using OData syntax.)')]
        [string]
        $filter,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription.)')]
        [string]
        $shareSubscriptionName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName
        $arguments["synchronizationId"] = $synchronizationId

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:listShareSubscriptionSynchronizationDetails -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareListShareSynchronizationDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Email of the user who created the synchronization)')]
        [string]
        $consumerEmail,
        [parameter(mandatory=$False,HelpMessage='start time of synchronization)')]
        [string]
        $startTime,
        [parameter(mandatory=$False,HelpMessage='End time of synchronization)')]
        [string]
        $endTime,
        [parameter(mandatory=$False,HelpMessage='message of synchronization)')]
        [string]
        $message,
        [parameter(mandatory=$False,HelpMessage='Sorts the results using OData syntax.)')]
        [string]
        $orderby,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Filters the results using OData syntax.)')]
        [string]
        $filter,
        [parameter(mandatory=$False,HelpMessage='Synchronization id)')]
        [string]
        $synchronizationId,
        [parameter(mandatory=$False,HelpMessage='Tenant name of the consumer who created the synchronization)')]
        [string]
        $consumerTenantName,
        [parameter(mandatory=$False,HelpMessage='Raw Status)')]
        [string]
        $status,
        [parameter(mandatory=$False,HelpMessage='Continuation token)')]
        [string]
        $skipToken,
        [parameter(mandatory=$False,HelpMessage='Name of the user who created the synchronization)')]
        [string]
        $consumerName,
        [parameter(mandatory=$False,HelpMessage='synchronization duration)')]
        [int]
        $durationMs,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

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

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

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

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

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

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

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

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

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

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:listShareSynchronizationDetails -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareListShareSynchronizations
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Sorts the results using OData syntax.)')]
        [string]
        $orderby,
        [parameter(mandatory=$False,HelpMessage='Continuation token)')]
        [string]
        $skipToken,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Filters the results using OData syntax.)')]
        [string]
        $filter
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareName"] = $shareName

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:listShareSynchronizations -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatashareGetSqlDWTableDataSetMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSetMapping.)')]
        [string]
        $dataSetMappingName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["dataSetMappingName"] = $dataSetMappingName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["shareSubscriptionName"] = $shareSubscriptionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datashare:getSqlDWTableDataSetMapping -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeDatashareShare
{
    [Alias('azure_native_datashare_share')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Share description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Share kind.)')]
        [string]
        [ArgumentCompletions('CopyBased', 'InPlace')]
        $shareKind,
        [parameter(mandatory=$False,HelpMessage='Share terms.)')]
        [string]
        $terms,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the share.)')]
        [string]
        $shareName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareBlobFolderDataSet
{
    [Alias('azure_native_datashare_blobfolderdataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''BlobFolder''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Container that has the file path.)')]
        [string]
        $containerName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set)')]
        [string]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='Prefix for blob folder)')]
        [string]
        $prefix,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["containerName"] = $containerName
        $resource.properties["kind"] = $kind
        $resource.properties["prefix"] = $prefix
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareTrigger
{
    [Alias('azure_native_datashare_trigger')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of synchronization on trigger.)')]
        [string]
        [ArgumentCompletions('ScheduleBased')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the trigger.)')]
        [string]
        $triggerName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen2FileDataSet
{
    [Alias('azure_native_datashare_adlsgen2filedataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''AdlsGen2File''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='File system to which the file belongs.)')]
        [string]
        $fileSystem,
        [parameter(mandatory=$False,HelpMessage='File path within the file system.)')]
        [string]
        $filePath,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set)')]
        [string]
        $storageAccountName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["filePath"] = $filePath
        $resource.properties["fileSystem"] = $fileSystem
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareKustoClusterDataSet
{
    [Alias('azure_native_datashare_kustoclusterdataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''KustoCluster''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource id of the kusto cluster.)')]
        [string]
        $kustoClusterResourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["kustoClusterResourceId"] = $kustoClusterResourceId
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareBlobContainerDataSet
{
    [Alias('azure_native_datashare_blobcontainerdataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''Container''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='BLOB Container name.)')]
        [string]
        $containerName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set)')]
        [string]
        $storageAccountName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["containerName"] = $containerName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen2FolderDataSetMapping
{
    [Alias('azure_native_datashare_adlsgen2folderdatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''AdlsGen2Folder''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='File system to which the folder belongs.)')]
        [string]
        $fileSystem,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='Folder path within the file system.)')]
        [string]
        $folderPath,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set.)')]
        [string]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["fileSystem"] = $fileSystem
        $resource.properties["folderPath"] = $folderPath
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareBlobFolderDataSetMapping
{
    [Alias('azure_native_datashare_blobfolderdatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''BlobFolder''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set.)')]
        [string]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='Container that has the file path.)')]
        [string]
        $containerName,
        [parameter(mandatory=$False,HelpMessage='Prefix for blob folder)')]
        [string]
        $prefix,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["containerName"] = $containerName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["kind"] = $kind
        $resource.properties["prefix"] = $prefix
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareBlobDataSetMapping
{
    [Alias('azure_native_datashare_blobdatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='File output type)')]
        [string]
        [ArgumentCompletions('Csv', 'Parquet')]
        $outputType,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''Blob''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='File path within the source data set)')]
        [string]
        $filePath,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set.)')]
        [string]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='Container that has the file path.)')]
        [string]
        $containerName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["containerName"] = $containerName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["filePath"] = $filePath
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareSynchronizationSetting
{
    [Alias('azure_native_datashare_synchronizationsetting')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of synchronization setting.)')]
        [string]
        [ArgumentCompletions('ScheduleBased')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the synchronizationSetting.)')]
        [string]
        $synchronizationSettingName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the synchronization setting to.)')]
        [string]
        $shareName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareKustoClusterDataSetMapping
{
    [Alias('azure_native_datashare_kustoclusterdatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''KustoCluster''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource id of the sink kusto cluster.)')]
        [string]
        $kustoClusterResourceId,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["kind"] = $kind
        $resource.properties["kustoClusterResourceId"] = $kustoClusterResourceId
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareShareSubscription
{
    [Alias('azure_native_datashare_sharesubscription')]
    param (
        [parameter(mandatory=$False,HelpMessage='Source share location.)')]
        [string]
        $sourceShareLocation,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The invitation id.)')]
        [string]
        $invitationId,
        [parameter(mandatory=$False,HelpMessage='The expiration date of the share subscription.)')]
        [string]
        $expirationDate,
        [parameter(mandatory=$False,HelpMessage='The name of the shareSubscription.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["invitationId"] = $invitationId
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sourceShareLocation"] = $sourceShareLocation

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareKustoDatabaseDataSet
{
    [Alias('azure_native_datashare_kustodatabasedataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''KustoDatabase''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Resource id of the kusto database.)')]
        [string]
        $kustoDatabaseResourceId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["kustoDatabaseResourceId"] = $kustoDatabaseResourceId
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareBlobDataSet
{
    [Alias('azure_native_datashare_blobdataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''Blob''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='File path within the source data set)')]
        [string]
        $filePath,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Container that has the file path.)')]
        [string]
        $containerName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set)')]
        [string]
        $storageAccountName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["containerName"] = $containerName
        $resource.properties["filePath"] = $filePath
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen2FileSystemDataSet
{
    [Alias('azure_native_datashare_adlsgen2filesystemdataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''AdlsGen2FileSystem''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The file system name.)')]
        [string]
        $fileSystem,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set)')]
        [string]
        $storageAccountName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["fileSystem"] = $fileSystem
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen2FileDataSetMapping
{
    [Alias('azure_native_datashare_adlsgen2filedatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='Type of output file)')]
        [string]
        [ArgumentCompletions('Csv', 'Parquet')]
        $outputType,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''AdlsGen2File''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='File system to which the file belongs.)')]
        [string]
        $fileSystem,
        [parameter(mandatory=$False,HelpMessage='File path within the file system.)')]
        [string]
        $filePath,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set.)')]
        [string]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["filePath"] = $filePath
        $resource.properties["fileSystem"] = $fileSystem
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareScheduledSynchronizationSetting
{
    [Alias('azure_native_datashare_scheduledsynchronizationsetting')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Recurrence Interval)')]
        [string]
        [ArgumentCompletions('Hour', 'Day')]
        $recurrenceInterval,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Kind of synchronization setting.
Expected value is ''ScheduleBased''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the synchronization setting to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Synchronization time)')]
        [string]
        $synchronizationTime,
        [parameter(mandatory=$False,HelpMessage='The name of the synchronizationSetting.)')]
        [string]
        $synchronizationSettingName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["recurrenceInterval"] = $recurrenceInterval
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["synchronizationTime"] = $synchronizationTime

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen2FileSystemDataSetMapping
{
    [Alias('azure_native_datashare_adlsgen2filesystemdatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''AdlsGen2FileSystem''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The file system name.)')]
        [string]
        $fileSystem,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set.)')]
        [string]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["fileSystem"] = $fileSystem
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareKustoDatabaseDataSetMapping
{
    [Alias('azure_native_datashare_kustodatabasedatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''KustoDatabase''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource id of the sink kusto cluster.)')]
        [string]
        $kustoClusterResourceId,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["kind"] = $kind
        $resource.properties["kustoClusterResourceId"] = $kustoClusterResourceId
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareSqlDBTableDataSetMapping
{
    [Alias('azure_native_datashare_sqldbtabledatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='Resource id of SQL server)')]
        [string]
        $sqlServerResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''SqlDBTable''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='SQL DB table name.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='Schema of the table. Default value is dbo.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='DatabaseName name of the sink data set)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["schemaName"] = $schemaName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["sqlServerResourceId"] = $sqlServerResourceId
        $resource.properties["tableName"] = $tableName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen2FolderDataSet
{
    [Alias('azure_native_datashare_adlsgen2folderdataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''AdlsGen2Folder''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='File system to which the folder belongs.)')]
        [string]
        $fileSystem,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='Folder path within the file system.)')]
        [string]
        $folderPath,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set)')]
        [string]
        $storageAccountName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["fileSystem"] = $fileSystem
        $resource.properties["folderPath"] = $folderPath
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareSqlDWTableDataSet
{
    [Alias('azure_native_datashare_sqldwtabledataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='SQL DW table name.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='Resource id of SQL server)')]
        [string]
        $sqlServerResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''SqlDWTable''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='DataWarehouse name of the source data set)')]
        [string]
        $dataWarehouseName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Schema of the table. Default value is dbo.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataWarehouseName"] = $dataWarehouseName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["schemaName"] = $schemaName
        $resource.properties["shareName"] = $shareName
        $resource.properties["sqlServerResourceId"] = $sqlServerResourceId
        $resource.properties["tableName"] = $tableName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareBlobContainerDataSetMapping
{
    [Alias('azure_native_datashare_blobcontainerdatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='Subscription id of storage account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''Container''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource group of storage account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='Storage account name of the source data set.)')]
        [string]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='BLOB Container name.)')]
        [string]
        $containerName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["containerName"] = $containerName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["storageAccountName"] = $storageAccountName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareSqlDBTableDataSet
{
    [Alias('azure_native_datashare_sqldbtabledataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='SQL DB table name.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='Resource id of SQL server)')]
        [string]
        $sqlServerResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''SqlDBTable''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Schema of the table. Default value is dbo.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='Database name of the source data set)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["schemaName"] = $schemaName
        $resource.properties["shareName"] = $shareName
        $resource.properties["sqlServerResourceId"] = $sqlServerResourceId
        $resource.properties["tableName"] = $tableName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen1FolderDataSet
{
    [Alias('azure_native_datashare_adlsgen1folderdataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Resource group of ADLS account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='The ADLS account name.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The folder path within the ADLS account.)')]
        [string]
        $folderPath,
        [parameter(mandatory=$False,HelpMessage='Subscription id of ADLS account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''AdlsGen1Folder''.)'
)]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["folderPath"] = $folderPath
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["subscriptionId"] = $subscriptionId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareSynapseWorkspaceSqlPoolTableDataSet
{
    [Alias('azure_native_datashare_synapseworkspacesqlpooltabledataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''SynapseWorkspaceSqlPoolTable''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Resource id of the Synapse Workspace SQL Pool Table)')]
        [string]
        $synapseWorkspaceSqlPoolTableResourceId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["synapseWorkspaceSqlPoolTableResourceId"] = $synapseWorkspaceSqlPoolTableResourceId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareScheduledTrigger
{
    [Alias('azure_native_datashare_scheduledtrigger')]
    param (
        [parameter(mandatory=$False,HelpMessage='Recurrence Interval)')]
        [string]
        [ArgumentCompletions('Hour', 'Day')]
        $recurrenceInterval,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the trigger.)')]
        [string]
        $triggerName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Synchronization time)')]
        [string]
        $synchronizationTime,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Synchronization mode)')]
        [string]
        [ArgumentCompletions('Incremental', 'FullSync')]
        $synchronizationMode,
        [parameter(mandatory=$False,HelpMessage='Kind of synchronization on trigger.
Expected value is ''ScheduleBased''.)'
)]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["recurrenceInterval"] = $recurrenceInterval
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["synchronizationTime"] = $synchronizationTime

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareDataSet
{
    [Alias('azure_native_datashare_dataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.)')]
        [string]
        [ArgumentCompletions('Blob', 'Container', 'BlobFolder', 'AdlsGen2FileSystem', 'AdlsGen2Folder', 'AdlsGen2File', 'AdlsGen1Folder', 'AdlsGen1File', 'KustoCluster', 'KustoDatabase', 'SqlDBTable', 'SqlDWTable', 'SynapseWorkspaceSqlPoolTable')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareDataSetMapping
{
    [Alias('azure_native_datashare_datasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.)')]
        [string]
        [ArgumentCompletions('Blob', 'Container', 'BlobFolder', 'AdlsGen2FileSystem', 'AdlsGen2Folder', 'AdlsGen2File', 'KustoCluster', 'KustoDatabase', 'SqlDBTable', 'SqlDWTable', 'SynapseWorkspaceSqlPoolTable')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareInvitation
{
    [Alias('azure_native_datashare_invitation')]
    param (
        [parameter(mandatory=$False,HelpMessage='The target Azure AD Id. Can''t be combined with email.)')]
        [string]
        $targetActiveDirectoryId,
        [parameter(mandatory=$False,HelpMessage='The target user or application Id that invitation is being sent to.
Must be specified along TargetActiveDirectoryId. This enables sending
invitations to specific users or applications in an AD tenant.)'
)]
        [string]
        $targetObjectId,
        [parameter(mandatory=$False,HelpMessage='The email the invitation is directed to.)')]
        [string]
        $targetEmail,
        [parameter(mandatory=$False,HelpMessage='The name of the share to send the invitation for.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The expiration date for the invitation and share subscription.)')]
        [string]
        $expirationDate,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the invitation.)')]
        [string]
        $invitationName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareSqlDWTableDataSetMapping
{
    [Alias('azure_native_datashare_sqldwtabledatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='Resource id of SQL server)')]
        [string]
        $sqlServerResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''SqlDWTable''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='DataWarehouse name of the source data set)')]
        [string]
        $dataWarehouseName,
        [parameter(mandatory=$False,HelpMessage='SQL DW table name.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='Schema of the table. Default value is dbo.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["dataWarehouseName"] = $dataWarehouseName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["schemaName"] = $schemaName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["sqlServerResourceId"] = $sqlServerResourceId
        $resource.properties["tableName"] = $tableName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Identity
{
    [ArgumentCompletions('SystemAssigned')]
    [string] $type
}
function New-AzureNativeTypeDatashareIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Identity Type)')]
        [string]
        [ArgumentCompletions('SystemAssigned')]
        $type
    )

    process
    {
        return $([Identity]$PSBoundParameters)
    }
}
function New-AzureNativeDatashareAccount
{
    [Alias('azure_native_datashare_account')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Identity Info on the Account)')]
        [Identity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Location of the azure resource.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Tags on the azure resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["identity"] = $identity
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareSynapseWorkspaceSqlPoolTableDataSetMapping
{
    [Alias('azure_native_datashare_synapseworkspacesqlpooltabledatasetmapping')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the data set mapping to be created.)')]
        [string]
        $dataSetMappingName,
        [parameter(mandatory=$False,HelpMessage='The name of the share subscription which will hold the data set sink.)')]
        [string]
        $shareSubscriptionName,
        [parameter(mandatory=$False,HelpMessage='The name of the share account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set mapping.
Expected value is ''SynapseWorkspaceSqlPoolTable''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource id of the Synapse Workspace SQL Pool Table)')]
        [string]
        $synapseWorkspaceSqlPoolTableResourceId,
        [parameter(mandatory=$False,HelpMessage='The id of the source data set.)')]
        [string]
        $dataSetId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["dataSetId"] = $dataSetId
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareSubscriptionName"] = $shareSubscriptionName
        $resource.properties["synapseWorkspaceSqlPoolTableResourceId"] = $synapseWorkspaceSqlPoolTableResourceId

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatashareADLSGen1FileDataSet
{
    [Alias('azure_native_datashare_adlsgen1filedataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The ADLS account name.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the share to add the data set to.)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='The file name in the ADLS account.)')]
        [string]
        $fileName,
        [parameter(mandatory=$False,HelpMessage='Kind of data set.
Expected value is ''AdlsGen1File''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource group of ADLS account.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The folder path within the ADLS account.)')]
        [string]
        $folderPath,
        [parameter(mandatory=$False,HelpMessage='Subscription id of ADLS account.)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='The name of the dataSet.)')]
        [string]
        $dataSetName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

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

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["accountName"] = $accountName
        $resource.properties["fileName"] = $fileName
        $resource.properties["folderPath"] = $folderPath
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroup"] = $resourceGroup
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["shareName"] = $shareName
        $resource.properties["subscriptionId"] = $subscriptionId

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

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