pspulumiyaml.azurenative.kusto.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionKustoGetAttachedDatabaseConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the attached database configuration.)')]
        [string]
        $attachedDatabaseConfigurationName
    )

    process
    {
        $arguments = @{}
        $arguments["attachedDatabaseConfigurationName"] = $attachedDatabaseConfigurationName
        $arguments["clusterName"] = $clusterName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getAttachedDatabaseConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoListDatabasePrincipals
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:listDatabasePrincipals -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetEventHubConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the event hub connection.)')]
        [string]
        $eventHubConnectionName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["databaseName"] = $databaseName
        $arguments["eventHubConnectionName"] = $eventHubConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getEventHubConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetClusterPrincipalAssignment
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto principalAssignment.)')]
        [string]
        $principalAssignmentName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["principalAssignmentName"] = $principalAssignmentName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getClusterPrincipalAssignment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetDataConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["dataConnectionName"] = $dataConnectionName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getDataConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetEventHubDataConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["dataConnectionName"] = $dataConnectionName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getEventHubDataConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoListClusterFollowerDatabases
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:listClusterFollowerDatabases -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["privateEndpointConnectionName"] = $privateEndpointConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetDatabase
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getDatabase -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetManagedPrivateEndpoint
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the managed private endpoint.)')]
        [string]
        $managedPrivateEndpointName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["managedPrivateEndpointName"] = $managedPrivateEndpointName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getManagedPrivateEndpoint -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetCluster
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getCluster -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetReadWriteDatabase
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getReadWriteDatabase -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetReadOnlyFollowingDatabase
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getReadOnlyFollowingDatabase -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetIotHubDataConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["dataConnectionName"] = $dataConnectionName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getIotHubDataConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetEventGridDataConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["dataConnectionName"] = $dataConnectionName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getEventGridDataConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetScript
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto database script.)')]
        [string]
        $scriptName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["databaseName"] = $databaseName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["scriptName"] = $scriptName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getScript -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoGetDatabasePrincipalAssignment
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto principalAssignment.)')]
        [string]
        $principalAssignmentName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["databaseName"] = $databaseName
        $arguments["principalAssignmentName"] = $principalAssignmentName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:getDatabasePrincipalAssignment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKustoListClusterLanguageExtensions
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:kusto:listClusterLanguageExtensions -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeKustoIotHubDataConnection
{
    [Alias('azure_native_kusto_iothubdataconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='System properties of the iot hub)')]
        [string[]]
        $eventSystemProperties,
        [parameter(mandatory=$False,HelpMessage='The table where the data should be ingested. Optionally the table information can be added to each message.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName,
        [parameter(mandatory=$False,HelpMessage='The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.)')]
        [string]
        $mappingRuleName,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The iot hub consumer group.)')]
        [string]
        $consumerGroup,
        [parameter(mandatory=$False,HelpMessage='The resource ID of the Iot hub to be used to create a data connection.)')]
        [string]
        $iotHubResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of the endpoint for the data connection
Expected value is ''IotHub''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the share access policy)')]
        [string]
        $sharedAccessPolicyName,
        [parameter(mandatory=$False,HelpMessage='The data format of the message. Optionally the data format can be added to each message.)')]
        [string]
        [ValidateSet('MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC', 'APACHEAVRO', 'W3CLOGFILE')]
        $dataFormat,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["consumerGroup"] = $consumerGroup
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["iotHubResourceId"] = $iotHubResourceId
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sharedAccessPolicyName"] = $sharedAccessPolicyName

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoEventHubConnection
{
    [Alias('azure_native_kusto_eventhubconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The data format of the message. Optionally the data format can be added to each message.)')]
        [string]
        [ValidateSet('MULTIJSON', 'JSON', 'CSV')]
        $dataFormat,
        [parameter(mandatory=$False,HelpMessage='The table where the data should be ingested. Optionally the table information can be added to each message.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.)')]
        [string]
        $mappingRuleName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The event hub consumer group.)')]
        [string]
        $consumerGroup,
        [parameter(mandatory=$False,HelpMessage='The resource ID of the event hub to be used to create a data connection.)')]
        [string]
        $eventHubResourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the event hub connection.)')]
        [string]
        $eventHubConnectionName,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["consumerGroup"] = $consumerGroup
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["eventHubResourceId"] = $eventHubResourceId
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateLinkServiceConnectionStateProperty
{
    [string] $status
    [string] $description
}
function New-AzureNativeTypeKustoPrivateLinkServiceConnectionStateProperty
{
    param (
        [parameter(mandatory=$False,HelpMessage='The private link service connection status.)')]
        [string]
        $status,
        [parameter(mandatory=$False,HelpMessage='The private link service connection description.)')]
        [string]
        $description
    )

    process
    {
        return $([PrivateLinkServiceConnectionStateProperty]$PSBoundParameters)
    }
}
function New-AzureNativeKustoPrivateEndpointConnection
{
    [Alias('azure_native_kusto_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Connection State of the Private Endpoint Connection.)')]
        [PrivateLinkServiceConnectionStateProperty]
        $privateLinkServiceConnectionState,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["privateLinkServiceConnectionState"] = $privateLinkServiceConnectionState
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoEventGridDataConnection
{
    [Alias('azure_native_kusto_eventgriddataconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of blob storage event type to process.)')]
        [string]
        [ValidateSet('Microsoft.Storage.BlobCreated', 'Microsoft.Storage.BlobRenamed')]
        $blobStorageEventType,
        [parameter(mandatory=$False,HelpMessage='A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file)')]
        [bool]
        $ignoreFirstRecord,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName,
        [parameter(mandatory=$False,HelpMessage='The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.)')]
        [string]
        $mappingRuleName,
        [parameter(mandatory=$False,HelpMessage='The resource ID of the storage account where the data resides.)')]
        [string]
        $storageAccountResourceId,
        [parameter(mandatory=$False,HelpMessage='The table where the data should be ingested. Optionally the table information can be added to each message.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The event hub consumer group.)')]
        [string]
        $consumerGroup,
        [parameter(mandatory=$False,HelpMessage='Kind of the endpoint for the data connection
Expected value is ''EventGrid''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The data format of the message. Optionally the data format can be added to each message.)')]
        [string]
        [ValidateSet('MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC', 'APACHEAVRO', 'W3CLOGFILE')]
        $dataFormat,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The resource ID where the event grid is configured to send events.)')]
        [string]
        $eventHubResourceId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["consumerGroup"] = $consumerGroup
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["eventHubResourceId"] = $eventHubResourceId
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["storageAccountResourceId"] = $storageAccountResourceId

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoDatabasePrincipalAssignment
{
    [Alias('azure_native_kusto_databaseprincipalassignment')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto principalAssignment.)')]
        [string]
        $principalAssignmentName,
        [parameter(mandatory=$False,HelpMessage='Database principal role.)')]
        [string]
        [ValidateSet('Admin', 'Ingestor', 'Monitor', 'User', 'UnrestrictedViewer', 'Viewer')]
        $role,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The tenant id of the principal)')]
        [string]
        $tenantId,
        [parameter(mandatory=$False,HelpMessage='Principal type.)')]
        [string]
        [ValidateSet('App', 'Group', 'User')]
        $principalType,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The principal ID assigned to the database principal. It can be a user email, application ID, or security group name.)')]
        [string]
        $principalId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["principalId"] = $principalId
        $resource.properties["principalType"] = $principalType
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["role"] = $role

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoManagedPrivateEndpoint
{
    [Alias('azure_native_kusto_managedprivateendpoint')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The region of the resource to which the managed private endpoint is created.)')]
        [string]
        $privateLinkResourceRegion,
        [parameter(mandatory=$False,HelpMessage='The groupId in which the managed private endpoint is created.)')]
        [string]
        $groupId,
        [parameter(mandatory=$False,HelpMessage='The user request message.)')]
        [string]
        $requestMessage,
        [parameter(mandatory=$False,HelpMessage='The name of the managed private endpoint.)')]
        [string]
        $managedPrivateEndpointName,
        [parameter(mandatory=$False,HelpMessage='The ARM resource ID of the resource for which the managed private endpoint is created.)')]
        [string]
        $privateLinkResourceId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["groupId"] = $groupId
        $resource.properties["privateLinkResourceId"] = $privateLinkResourceId
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class AzureSku
{
    [int] $capacity
    [ValidateSet('Standard_DS13_v2+1TB_PS', 'Standard_DS13_v2+2TB_PS', 'Standard_DS14_v2+3TB_PS', 'Standard_DS14_v2+4TB_PS', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_L8s', 'Standard_L16s', 'Standard_L8s_v2', 'Standard_L16s_v2', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_L4s', 'Dev(No SLA)_Standard_D11_v2', 'Standard_E64i_v3', 'Standard_E80ids_v4', 'Standard_E2a_v4', 'Standard_E4a_v4', 'Standard_E8a_v4', 'Standard_E16a_v4', 'Standard_E8as_v4+1TB_PS', 'Standard_E8as_v4+2TB_PS', 'Standard_E16as_v4+3TB_PS', 'Standard_E16as_v4+4TB_PS', 'Dev(No SLA)_Standard_E2a_v4')]
    [string] $name
    [ValidateSet('Basic', 'Standard')]
    [string] $tier
}
function New-AzureNativeTypeKustoAzureSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The number of instances of the cluster.)')]
        [int]
        $capacity,
        [parameter(mandatory=$False,HelpMessage='SKU name.)')]
        [string]
        [ValidateSet('Standard_DS13_v2+1TB_PS', 'Standard_DS13_v2+2TB_PS', 'Standard_DS14_v2+3TB_PS', 'Standard_DS14_v2+4TB_PS', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_L8s', 'Standard_L16s', 'Standard_L8s_v2', 'Standard_L16s_v2', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_L4s', 'Dev(No SLA)_Standard_D11_v2', 'Standard_E64i_v3', 'Standard_E80ids_v4', 'Standard_E2a_v4', 'Standard_E4a_v4', 'Standard_E8a_v4', 'Standard_E16a_v4', 'Standard_E8as_v4+1TB_PS', 'Standard_E8as_v4+2TB_PS', 'Standard_E16as_v4+3TB_PS', 'Standard_E16as_v4+4TB_PS', 'Dev(No SLA)_Standard_E2a_v4')]
        $name,
        [parameter(mandatory=$False,HelpMessage='SKU tier.)')]
        [string]
        [ValidateSet('Basic', 'Standard')]
        $tier
    )

    process
    {
        return $([AzureSku]$PSBoundParameters)
    }
}
class Identity
{
    [ValidateSet('None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned')]
    [string] $type
    [ValidateSet('None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned')]
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeKustoIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of managed identity used. The type ''SystemAssigned, UserAssigned'' includes both an implicitly created identity and a set of user-assigned identities. The type ''None'' will remove all identities.)')]
        [string]
        [ValidateSet('None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}''.)')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([Identity]$PSBoundParameters)
    }
}
class KeyVaultProperties
{
    [string] $userIdentity
    [string] $keyVersion
    [string] $keyName
    [string] $keyVaultUri
}
function New-AzureNativeTypeKustoKeyVaultProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The user assigned identity (ARM resource id) that has access to the key.)')]
        [string]
        $userIdentity,
        [parameter(mandatory=$False,HelpMessage='The version of the key vault key.)')]
        [string]
        $keyVersion,
        [parameter(mandatory=$False,HelpMessage='The name of the key vault key.)')]
        [string]
        $keyName,
        [parameter(mandatory=$False,HelpMessage='The Uri of the key vault.)')]
        [string]
        $keyVaultUri
    )

    process
    {
        return $([KeyVaultProperties]$PSBoundParameters)
    }
}
class OptimizedAutoscale
{
    [int] $version
    [bool] $isEnabled
    [int] $minimum
    [int] $maximum
}
function New-AzureNativeTypeKustoOptimizedAutoscale
{
    param (
        [parameter(mandatory=$False,HelpMessage='The version of the template defined, for instance 1.)')]
        [int]
        $version,
        [parameter(mandatory=$False,HelpMessage='A boolean value that indicate if the optimized autoscale feature is enabled or not.)')]
        [bool]
        $isEnabled,
        [parameter(mandatory=$False,HelpMessage='Minimum allowed instances count.)')]
        [int]
        $minimum,
        [parameter(mandatory=$False,HelpMessage='Maximum allowed instances count.)')]
        [int]
        $maximum
    )

    process
    {
        return $([OptimizedAutoscale]$PSBoundParameters)
    }
}
class VirtualNetworkConfiguration
{
    [string] $subnetId
    [string] $dataManagementPublicIpId
    [string] $enginePublicIpId
}
function New-AzureNativeTypeKustoVirtualNetworkConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The subnet resource id.)')]
        [string]
        $subnetId,
        [parameter(mandatory=$False,HelpMessage='Data management''s service public IP address resource id.)')]
        [string]
        $dataManagementPublicIpId,
        [parameter(mandatory=$False,HelpMessage='Engine service''s public IP address resource id.)')]
        [string]
        $enginePublicIpId
    )

    process
    {
        return $([VirtualNetworkConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeKustoCluster
{
    [Alias('azure_native_kusto_cluster')]
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU of the cluster.)')]
        [AzureSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The engine type)')]
        [string]
        [ValidateSet('V2', 'V3')]
        $engineType,
        [parameter(mandatory=$False,HelpMessage='A boolean value that indicates if the streaming ingest is enabled.)')]
        [bool]
        $enableStreamingIngest,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The availability zones of the cluster.)')]
        [string[]]
        $zones,
        [parameter(mandatory=$False,HelpMessage='The identity of the cluster, if configured.)')]
        [Identity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='A boolean value that indicates if the purge operations are enabled.)')]
        [bool]
        $enablePurge,
        [parameter(mandatory=$False,HelpMessage='KeyVault properties for the cluster encryption.)')]
        [KeyVaultProperties]
        $keyVaultProperties,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Optimized auto scale definition.)')]
        [OptimizedAutoscale]
        $optimizedAutoscale,
        [parameter(mandatory=$False,HelpMessage='Virtual network definition.)')]
        [VirtualNetworkConfiguration]
        $virtualNetworkConfiguration,
        [parameter(mandatory=$False,HelpMessage='The cluster''s external tenants.)')]
        $trustedExternalTenants,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='A boolean value that indicates if double encryption is enabled.)')]
        [bool]
        $enableDoubleEncryption,
        [parameter(mandatory=$False,HelpMessage='A boolean value that indicates if the cluster''s disks are encrypted.)')]
        [bool]
        $enableDiskEncryption,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoReadOnlyFollowingDatabase
{
    [Alias('azure_native_kusto_readonlyfollowingdatabase')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of the database
Expected value is ''ReadOnlyFollowing''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The time the data should be kept in cache for fast queries in TimeSpan.)')]
        [string]
        $hotCachePeriod,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoDatabase
{
    [Alias('azure_native_kusto_database')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='Kind of the database)')]
        [string]
        [ValidateSet('ReadWrite', 'ReadOnlyFollowing')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoReadWriteDatabase
{
    [Alias('azure_native_kusto_readwritedatabase')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of the database
Expected value is ''ReadWrite''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The time the data should be kept in cache for fast queries in TimeSpan.)')]
        [string]
        $hotCachePeriod,
        [parameter(mandatory=$False,HelpMessage='The time the data should be kept before it stops being accessible to queries in TimeSpan.)')]
        [string]
        $softDeletePeriod,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoDataConnection
{
    [Alias('azure_native_kusto_dataconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName,
        [parameter(mandatory=$False,HelpMessage='Kind of the endpoint for the data connection)')]
        [string]
        [ValidateSet('EventHub', 'EventGrid', 'IotHub')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class TableLevelSharingProperties
{
    [string[]] $externalTablesToExclude
    [string[]] $externalTablesToInclude
    [string[]] $materializedViewsToInclude
    [string[]] $tablesToInclude
    [string[]] $tablesToExclude
    [string[]] $materializedViewsToExclude
}
function New-AzureNativeTypeKustoTableLevelSharingProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='List of external tables exclude from the follower database)')]
        [string[]]
        $externalTablesToExclude,
        [parameter(mandatory=$False,HelpMessage='List of external tables to include in the follower database)')]
        [string[]]
        $externalTablesToInclude,
        [parameter(mandatory=$False,HelpMessage='List of materialized views to include in the follower database)')]
        [string[]]
        $materializedViewsToInclude,
        [parameter(mandatory=$False,HelpMessage='List of tables to include in the follower database)')]
        [string[]]
        $tablesToInclude,
        [parameter(mandatory=$False,HelpMessage='List of tables to exclude from the follower database)')]
        [string[]]
        $tablesToExclude,
        [parameter(mandatory=$False,HelpMessage='List of materialized views exclude from the follower database)')]
        [string[]]
        $materializedViewsToExclude
    )

    process
    {
        return $([TableLevelSharingProperties]$PSBoundParameters)
    }
}
function New-AzureNativeKustoAttachedDatabaseConfiguration
{
    [Alias('azure_native_kusto_attacheddatabaseconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database which you would like to attach, use * if you want to follow all current and future databases.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='The default principals modification kind)')]
        [string]
        [ValidateSet('Union', 'Replace', 'None')]
        $defaultPrincipalsModificationKind,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the attached database configuration.)')]
        [string]
        $attachedDatabaseConfigurationName,
        [parameter(mandatory=$False,HelpMessage='The resource id of the cluster where the databases you would like to attach reside.)')]
        [string]
        $clusterResourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Table level sharing specifications)')]
        [TableLevelSharingProperties]
        $tableLevelSharingProperties,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["clusterResourceId"] = $clusterResourceId
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["defaultPrincipalsModificationKind"] = $defaultPrincipalsModificationKind
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoClusterPrincipalAssignment
{
    [Alias('azure_native_kusto_clusterprincipalassignment')]
    param (
        [parameter(mandatory=$False,HelpMessage='The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name.)')]
        [string]
        $principalId,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Cluster principal role.)')]
        [string]
        [ValidateSet('AllDatabasesAdmin', 'AllDatabasesViewer')]
        $role,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto principalAssignment.)')]
        [string]
        $principalAssignmentName,
        [parameter(mandatory=$False,HelpMessage='Principal type.)')]
        [string]
        [ValidateSet('App', 'Group', 'User')]
        $principalType,
        [parameter(mandatory=$False,HelpMessage='The tenant id of the principal)')]
        [string]
        $tenantId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["principalId"] = $principalId
        $resource.properties["principalType"] = $principalType
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["role"] = $role

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoEventHubDataConnection
{
    [Alias('azure_native_kusto_eventhubdataconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='System properties of the event hub)')]
        [string[]]
        $eventSystemProperties,
        [parameter(mandatory=$False,HelpMessage='The resource ID of a managed identity (system or user assigned) to be used to authenticate with event hub.)')]
        [string]
        $managedIdentityResourceId,
        [parameter(mandatory=$False,HelpMessage='The event hub messages compression type)')]
        [string]
        [ValidateSet('None', 'GZip')]
        $compression,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the data connection.)')]
        [string]
        $dataConnectionName,
        [parameter(mandatory=$False,HelpMessage='The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.)')]
        [string]
        $mappingRuleName,
        [parameter(mandatory=$False,HelpMessage='The table where the data should be ingested. Optionally the table information can be added to each message.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The event hub consumer group.)')]
        [string]
        $consumerGroup,
        [parameter(mandatory=$False,HelpMessage='Kind of the endpoint for the data connection
Expected value is ''EventHub''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The data format of the message. Optionally the data format can be added to each message.)')]
        [string]
        [ValidateSet('MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC', 'APACHEAVRO', 'W3CLOGFILE')]
        $dataFormat,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The resource ID of the event hub to be used to create a data connection.)')]
        [string]
        $eventHubResourceId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["consumerGroup"] = $consumerGroup
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["eventHubResourceId"] = $eventHubResourceId
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeKustoScript
{
    [Alias('azure_native_kusto_script')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the database in the Kusto cluster.)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='A unique string. If changed the script will be applied again.)')]
        [string]
        $forceUpdateTag,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The SaS token.)')]
        [string]
        $scriptUrlSasToken,
        [parameter(mandatory=$False,HelpMessage='Flag that indicates whether to continue if one of the command fails.)')]
        [bool]
        $continueOnErrors,
        [parameter(mandatory=$False,HelpMessage='The name of the Kusto database script.)')]
        [string]
        $scriptName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group containing the Kusto cluster.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The url to the KQL script blob file.)')]
        [string]
        $scriptUrl,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["databaseName"] = $databaseName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["scriptUrl"] = $scriptUrl
        $resource.properties["scriptUrlSasToken"] = $scriptUrlSasToken

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

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

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

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