pspulumiyaml.azurenative.operationalinsights.psm1

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getWorkspace -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetQueryPack
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Log Analytics QueryPack resource.)')]
        [string]
        $queryPackName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getQueryPack -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetDataExport
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The data export rule name.)')]
        [string]
        $dataExportName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getDataExport -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetStorageInsightConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the storageInsightsConfigs resource)')]
        [string]
        $storageInsightName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getStorageInsightConfig -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetSavedSearch
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The id of the saved search.)')]
        [string]
        $savedSearchId
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getSavedSearch -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetQuery
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Log Analytics QueryPack resource.)')]
        [string]
        $queryPackName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The id of a specific query defined in the Log Analytics QueryPack)')]
        [string]
        $id
    )

    process
    {
        $arguments = @{}
        $arguments["id"] = $id
        $arguments["queryPackName"] = $queryPackName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getQuery -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetLinkedService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the linked service.)')]
        [string]
        $linkedServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getLinkedService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetLinkedStorageAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Linked storage accounts type.)')]
        [string]
        $dataSourceType,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getLinkedStorageAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetTable
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the table.)')]
        [string]
        $tableName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getTable -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetSharedKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getSharedKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetDataSource
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the datasource)')]
        [string]
        $dataSourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getDataSource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetCluster
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the Log Analytics Cluster.)')]
        [string]
        $clusterName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getCluster -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionOperationalinsightsGetMachineGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='UTC date and time specifying the end time of an interval. When not specified the service uses DateTime.UtcNow)')]
        [string]
        $endTime,
        [parameter(mandatory=$False,HelpMessage='Resource group name within the specified subscriptionId.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='OMS workspace containing the resources of interest.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Machine Group resource name.)')]
        [string]
        $machineGroupName,
        [parameter(mandatory=$False,HelpMessage='UTC date and time specifying the start time of an interval. When not specified the service uses DateTime.UtcNow - 10m)')]
        [string]
        $startTime
    )

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:operationalinsights:getMachineGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeOperationalinsightsSavedSearch
{
    [Alias('azure_native_operationalinsights_savedsearch')]
    param (
        [parameter(mandatory=$False,HelpMessage='The query expression for the saved search.)')]
        [string]
        $query,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Saved search display name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The optional function parameters if query serves as a function. Value should be in the following format: ''param-name1:type1 = default_value1, param-name2:type2 = default_value2''. For more examples and proper syntax please refer to https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions.)')]
        [string]
        $functionParameters,
        [parameter(mandatory=$False,HelpMessage='The tags attached to the saved search.)')]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The id of the saved search.)')]
        [string]
        $savedSearchId,
        [parameter(mandatory=$False,HelpMessage='The category of the saved search. This helps the user to find a saved search faster. )')]
        [string]
        $category,
        [parameter(mandatory=$False,HelpMessage='The function alias if query serves as a function.)')]
        [string]
        $functionAlias,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The version number of the query language. The current version is 2 and is the default.)')]
        [int]
        $version,
        [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:operationalinsights:SavedSearch")

        $resource.properties["category"] = $category
        $resource.properties["displayName"] = $displayName
        $resource.properties["query"] = $query
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["workspaceName"] = $workspaceName

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeOperationalinsightsDataExport
{
    [Alias('azure_native_operationalinsights_dataexport')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The data export rule name.)')]
        [string]
        $dataExportName,
        [parameter(mandatory=$False,HelpMessage='The latest data export rule modification time.)')]
        [string]
        $createdDate,
        [parameter(mandatory=$False,HelpMessage='The destination resource ID. This can be copied from the Properties entry of the destination resource in Azure.)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='The data export rule ID.)')]
        [string]
        $dataExportId,
        [parameter(mandatory=$False,HelpMessage='Date and time when the export was last modified.)')]
        [string]
        $lastModifiedDate,
        [parameter(mandatory=$False,HelpMessage='An array of tables to export, for example: [“Heartbeat, SecurityEvent”].)')]
        [string[]]
        $tableNames,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Optional. Allows to define an Event Hub name. Not applicable when destination is Storage Account.)')]
        [string]
        $eventHubName,
        [parameter(mandatory=$False,HelpMessage='Active when enabled.)')]
        [bool]
        $enable,
        [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:operationalinsights:DataExport")

        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["resourceId"] = $resourceId
        $resource.properties["tableNames"] = $tableNames
        $resource.properties["workspaceName"] = $workspaceName

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Identity
{
    [ValidateSet('SystemAssigned', 'UserAssigned', 'None')]
    [object] $type
    [ValidateSet('SystemAssigned', 'UserAssigned', 'None')]
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeOperationalinsightsIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of managed service identity.)')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The list of user identities associated with the resource. 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 ClusterSku
{
    [ValidateSet('CapacityReservation')]
    [string] $name
    [ValidateSet('CapacityReservation')]
    [int] $capacity
}
function New-AzureNativeTypeOperationalinsightsClusterSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the SKU.)')]
        [string]
        [ValidateSet('CapacityReservation')]
        $name,
        [parameter(mandatory=$False,HelpMessage='The capacity value)')]
        [int]
        $capacity
    )

    process
    {
        return $([ClusterSku]$PSBoundParameters)
    }
}
class KeyVaultProperties
{
    [string] $keyVersion
    [int] $keyRsaSize
    [string] $keyName
    [string] $keyVaultUri
}
function New-AzureNativeTypeOperationalinsightsKeyVaultProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The version of the key associated with the Log Analytics cluster.)')]
        [string]
        $keyVersion,
        [parameter(mandatory=$False,HelpMessage='Selected key minimum required size.)')]
        [int]
        $keyRsaSize,
        [parameter(mandatory=$False,HelpMessage='The name of the key associated with the Log Analytics cluster.)')]
        [string]
        $keyName,
        [parameter(mandatory=$False,HelpMessage='The Key Vault uri which holds they key associated with the Log Analytics cluster.)')]
        [string]
        $keyVaultUri
    )

    process
    {
        return $([KeyVaultProperties]$PSBoundParameters)
    }
}
function New-AzureNativeOperationalinsightsCluster
{
    [Alias('azure_native_operationalinsights_cluster')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The identity of the resource.)')]
        [Identity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Sets whether the cluster will support availability zones. This can be set as true only in regions where Azure Data Explorer support Availability Zones. This Property can not be modified after cluster creation. Default value is ''true'' if region supports Availability Zones.)')]
        [bool]
        $isAvailabilityZonesEnabled,
        [parameter(mandatory=$False,HelpMessage='The name of the Log Analytics cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The sku properties.)')]
        [ClusterSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The cluster''s billing type.)')]
        [string]
        [ValidateSet('Cluster', 'Workspaces')]
        $billingType,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Configures whether cluster will use double encryption. This Property can not be modified after cluster creation. Default value is ''true'')')]
        [bool]
        $isDoubleEncryptionEnabled,
        [parameter(mandatory=$False,HelpMessage='The associated key properties.)')]
        [KeyVaultProperties]
        $keyVaultProperties,
        [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:operationalinsights:Cluster")

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Column
{
    [string] $description
    [string] $displayName
    [string] $name
    [ValidateSet('string', 'int', 'long', 'real', 'boolean', 'dateTime', 'guid', 'dynamic')]
    [string] $type
    [ValidateSet('uri', 'guid', 'armPath', 'ip')]
    [string] $dataTypeHint
}
function New-AzureNativeTypeOperationalinsightsColumn
{
    param (
        [parameter(mandatory=$False,HelpMessage='Column description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Column display name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Column name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Column data type.)')]
        [string]
        [ValidateSet('string', 'int', 'long', 'real', 'boolean', 'dateTime', 'guid', 'dynamic')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Column data type logical hint.)')]
        [string]
        [ValidateSet('uri', 'guid', 'armPath', 'ip')]
        $dataTypeHint
    )

    process
    {
        return $([Column]$PSBoundParameters)
    }
}
class Schema
{
    [string] $description
    [Column[]] $columns
    [string] $displayName
    [string] $name
}
function New-AzureNativeTypeOperationalinsightsSchema
{
    param (
        [parameter(mandatory=$False,HelpMessage='Table description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='A list of table custom columns.)')]
        $columns,
        [parameter(mandatory=$False,HelpMessage='Table display name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Table name.)')]
        [string]
        $name
    )

    process
    {
        return $([Schema]$PSBoundParameters)
    }
}
class SearchResults
{
    [string] $description
    [int] $limit
    [string] $startSearchTime
    [string] $endSearchTime
    [string] $query
}
function New-AzureNativeTypeOperationalinsightsSearchResults
{
    param (
        [parameter(mandatory=$False,HelpMessage='Search job Description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Limit the search job to return up to specified number of rows.)')]
        [int]
        $limit,
        [parameter(mandatory=$False,HelpMessage='The timestamp to start the search from (UTC))')]
        [string]
        $startSearchTime,
        [parameter(mandatory=$False,HelpMessage='The timestamp to end the search by (UTC))')]
        [string]
        $endSearchTime,
        [parameter(mandatory=$False,HelpMessage='Search job query.)')]
        [string]
        $query
    )

    process
    {
        return $([SearchResults]$PSBoundParameters)
    }
}
class RestoredLogs
{
    [string] $sourceTable
    [string] $startRestoreTime
    [string] $endRestoreTime
}
function New-AzureNativeTypeOperationalinsightsRestoredLogs
{
    param (
        [parameter(mandatory=$False,HelpMessage='The table to restore data from.)')]
        [string]
        $sourceTable,
        [parameter(mandatory=$False,HelpMessage='The timestamp to start the restore from (UTC).)')]
        [string]
        $startRestoreTime,
        [parameter(mandatory=$False,HelpMessage='The timestamp to end the restore by (UTC).)')]
        [string]
        $endRestoreTime
    )

    process
    {
        return $([RestoredLogs]$PSBoundParameters)
    }
}
function New-AzureNativeOperationalinsightsTable
{
    [Alias('azure_native_operationalinsights_table')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the table.)')]
        [string]
        $tableName,
        [parameter(mandatory=$False,HelpMessage='Instruct the system how to handle and charge the logs ingested to this table.)')]
        [string]
        [ValidateSet('Basic', 'Analytics')]
        $plan,
        [parameter(mandatory=$False,HelpMessage='The table total retention in days, between 4 and 2555. Setting this property to -1 will default to table retention.)')]
        [int]
        $totalRetentionInDays,
        [parameter(mandatory=$False,HelpMessage='Table schema.)')]
        [Schema]
        $schema,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The table retention in days, between 4 and 730. Setting this property to -1 will default to the workspace retention.)')]
        [int]
        $retentionInDays,
        [parameter(mandatory=$False,HelpMessage='Parameters of the search job that initiated this table.)')]
        [SearchResults]
        $searchResults,
        [parameter(mandatory=$False,HelpMessage='Parameters of the restore operation that initiated this table.)')]
        [RestoredLogs]
        $restoredLogs,
        [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:operationalinsights:Table")

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeOperationalinsightsQueryPack
{
    [Alias('azure_native_operationalinsights_querypack')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Log Analytics QueryPack resource.)')]
        [string]
        $queryPackName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [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:operationalinsights:QueryPack")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class WorkspaceSku
{
    [int] $capacityReservationLevel
    [ValidateSet('Free', 'Standard', 'Premium', 'PerNode', 'PerGB2018', 'Standalone', 'CapacityReservation', 'LACluster')]
    [string] $name
}
function New-AzureNativeTypeOperationalinsightsWorkspaceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The capacity reservation level for this workspace, when CapacityReservation sku is selected.)')]
        [int]
        $capacityReservationLevel,
        [parameter(mandatory=$False,HelpMessage='The name of the SKU.)')]
        [string]
        [ValidateSet('Free', 'Standard', 'Premium', 'PerNode', 'PerGB2018', 'Standalone', 'CapacityReservation', 'LACluster')]
        $name
    )

    process
    {
        return $([WorkspaceSku]$PSBoundParameters)
    }
}
class WorkspaceCapping
{
    [int] $dailyQuotaGb
}
function New-AzureNativeTypeOperationalinsightsWorkspaceCapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The workspace daily quota for ingestion.)')]
        [int]
        $dailyQuotaGb
    )

    process
    {
        return $([WorkspaceCapping]$PSBoundParameters)
    }
}
class WorkspaceFeatures
{
    [bool] $enableDataExport
    [string] $clusterResourceId
    [bool] $enableLogAccessUsingOnlyResourcePermissions
    [bool] $immediatePurgeDataOn30Days
    [bool] $disableLocalAuth
}
function New-AzureNativeTypeOperationalinsightsWorkspaceFeatures
{
    param (
        [parameter(mandatory=$False,HelpMessage='Flag that indicate if data should be exported.)')]
        [bool]
        $enableDataExport,
        [parameter(mandatory=$False,HelpMessage='Dedicated LA cluster resourceId that is linked to the workspaces.)')]
        [string]
        $clusterResourceId,
        [parameter(mandatory=$False,HelpMessage='Flag that indicate which permission to use - resource or workspace or both.)')]
        [bool]
        $enableLogAccessUsingOnlyResourcePermissions,
        [parameter(mandatory=$False,HelpMessage='Flag that describes if we want to remove the data after 30 days.)')]
        [bool]
        $immediatePurgeDataOn30Days,
        [parameter(mandatory=$False,HelpMessage='Disable Non-AAD based Auth.)')]
        [bool]
        $disableLocalAuth
    )

    process
    {
        return $([WorkspaceFeatures]$PSBoundParameters)
    }
}
function New-AzureNativeOperationalinsightsWorkspace
{
    [Alias('azure_native_operationalinsights_workspace')]
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU of the workspace.)')]
        [WorkspaceSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The ETag of the workspace.)')]
        [string]
        $eTag,
        [parameter(mandatory=$False,HelpMessage='The network access type for accessing Log Analytics query.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $publicNetworkAccessForQuery,
        [parameter(mandatory=$False,HelpMessage='Indicates whether customer managed storage is mandatory for query management.)')]
        [bool]
        $forceCmkForQuery,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The daily volume cap for ingestion.)')]
        [WorkspaceCapping]
        $workspaceCapping,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The provisioning state of the workspace.)')]
        [string]
        [ValidateSet('Creating', 'Succeeded', 'Failed', 'Canceled', 'Deleting', 'ProvisioningAccount', 'Updating')]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='Workspace features.)')]
        [WorkspaceFeatures]
        $features,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The network access type for accessing Log Analytics ingestion.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $publicNetworkAccessForIngestion,
        [parameter(mandatory=$False,HelpMessage='The workspace data retention in days. Allowed values are per pricing plan. See pricing tiers documentation for details.)')]
        [int]
        $retentionInDays,
        [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:operationalinsights:Workspace")

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class LogAnalyticsQueryPackQueryPropertiesRelated
{
    [string[]] $categories
    [string[]] $resourceTypes
    [string[]] $solutions
}
function New-AzureNativeTypeOperationalinsightsLogAnalyticsQueryPackQueryPropertiesRelated
{
    param (
        [parameter(mandatory=$False,HelpMessage='The related categories for the function.)')]
        [string[]]
        $categories,
        [parameter(mandatory=$False,HelpMessage='The related resource types for the function.)')]
        [string[]]
        $resourceTypes,
        [parameter(mandatory=$False,HelpMessage='The related Log Analytics solutions for the function.)')]
        [string[]]
        $solutions
    )

    process
    {
        return $([LogAnalyticsQueryPackQueryPropertiesRelated]$PSBoundParameters)
    }
}
function New-AzureNativeOperationalinsightsQuery
{
    [Alias('azure_native_operationalinsights_query')]
    param (
        [parameter(mandatory=$False,HelpMessage='Additional properties that can be set for the query.)')]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the Log Analytics QueryPack resource.)')]
        [string]
        $queryPackName,
        [parameter(mandatory=$False,HelpMessage='Body of the query.)')]
        [string]
        $body,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Unique display name for your query within the Query Pack.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The id of a specific query defined in the Log Analytics QueryPack)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Tags associated with the query.)')]
        [object]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Description of the query.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The related metadata items for the function.)')]
        [LogAnalyticsQueryPackQueryPropertiesRelated]
        $related,
        [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:operationalinsights:Query")

        $resource.properties["body"] = $body
        $resource.properties["displayName"] = $displayName
        $resource.properties["queryPackName"] = $queryPackName
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class StorageAccount
{
    [string] $id
    [string] $key
}
function New-AzureNativeTypeOperationalinsightsStorageAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Azure Resource Manager ID of the storage account resource.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='The storage account key.)')]
        [string]
        $key
    )

    process
    {
        return $([StorageAccount]$PSBoundParameters)
    }
}
function New-AzureNativeOperationalinsightsStorageInsightConfig
{
    [Alias('azure_native_operationalinsights_storageinsightconfig')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The ETag of the storage insight.)')]
        [string]
        $eTag,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The names of the Azure tables that the workspace should read)')]
        [string[]]
        $tables,
        [parameter(mandatory=$False,HelpMessage='Name of the storageInsightsConfigs resource)')]
        [string]
        $storageInsightName,
        [parameter(mandatory=$False,HelpMessage='The storage account connection details)')]
        [StorageAccount]
        $storageAccount,
        [parameter(mandatory=$False,HelpMessage='The names of the blob containers that the workspace should read)')]
        [string[]]
        $containers,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [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:operationalinsights:StorageInsightConfig")

        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["storageAccount"] = $storageAccount
        $resource.properties["workspaceName"] = $workspaceName

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeOperationalinsightsDataSource
{
    [Alias('azure_native_operationalinsights_datasource')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The kind of the DataSource.)')]
        [string]
        [ValidateSet('WindowsEvent', 'WindowsPerformanceCounter', 'IISLogs', 'LinuxSyslog', 'LinuxSyslogCollection', 'LinuxPerformanceObject', 'LinuxPerformanceCollection', 'CustomLog', 'CustomLogCollection', 'AzureAuditLog', 'AzureActivityLog', 'GenericDataSource', 'ChangeTrackingCustomPath', 'ChangeTrackingPath', 'ChangeTrackingServices', 'ChangeTrackingDataTypeConfiguration', 'ChangeTrackingDefaultRegistry', 'ChangeTrackingRegistry', 'ChangeTrackingLinuxPath', 'LinuxChangeTrackingPath', 'ChangeTrackingContentLocation', 'WindowsTelemetry', 'Office365', 'SecurityWindowsBaselineConfiguration', 'SecurityCenterSecurityWindowsBaselineConfiguration', 'SecurityEventCollectionConfiguration', 'SecurityInsightsSecurityEventCollectionConfiguration', 'ImportComputerGroup', 'NetworkMonitoring', 'Itsm', 'DnsAnalytics', 'ApplicationInsights', 'SqlDataClassification')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The data source properties in raw json format, each kind of data source have it''s own schema.)')]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the datasource resource.)')]
        [string]
        $dataSourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [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:operationalinsights:DataSource")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeOperationalinsightsLinkedService
{
    [Alias('azure_native_operationalinsights_linkedservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require write access)')]
        [string]
        $writeAccessResourceId,
        [parameter(mandatory=$False,HelpMessage='The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require read access)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the linkedServices resource)')]
        [string]
        $linkedServiceName,
        [parameter(mandatory=$False,HelpMessage='The provisioning state of the linked service.)')]
        [string]
        [ValidateSet('Succeeded', 'Deleting', 'ProvisioningAccount', 'Updating')]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [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:operationalinsights:LinkedService")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeOperationalinsightsLinkedStorageAccount
{
    [Alias('azure_native_operationalinsights_linkedstorageaccount')]
    param (
        [parameter(mandatory=$False,HelpMessage='Linked storage accounts resources ids.)')]
        [string[]]
        $storageAccountIds,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Linked storage accounts type.)')]
        [string]
        $dataSourceType,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [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:operationalinsights:LinkedStorageAccount")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeOperationalinsightsMachineGroup
{
    [Alias('azure_native_operationalinsights_machinegroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='OMS workspace containing the resources of interest.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Count of machines in this group. The value of count may be bigger than the number of machines in case of the group has been truncated due to exceeding the max number of machines a group can handle.)')]
        [int]
        $count,
        [parameter(mandatory=$False,HelpMessage='Machine Group resource name.)')]
        [string]
        $machineGroupName,
        [parameter(mandatory=$False,HelpMessage='Type of the machine group)')]
        [string]
        [ValidateSet('unknown', 'azure-cs', 'azure-sf', 'azure-vmss', 'user-static')]
        $groupType,
        [parameter(mandatory=$False,HelpMessage='Resource group name within the specified subscriptionId.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='User defined name for the group)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Additional resource type qualifier.
Expected value is ''machineGroup''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='References of the machines in this group. The hints within each reference do not represent the current value of the corresponding fields. They are a snapshot created during the last time the machine group was updated.)')]
        $machines,
        [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:operationalinsights:MachineGroup")

        $resource.properties["displayName"] = $displayName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["workspaceName"] = $workspaceName

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

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

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

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

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