pspulumiyaml.azurenative.timeseriesinsights.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionTimeseriesinsightsGetAccessPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights access policy associated with the specified environment.)')]
        [string]
        $accessPolicyName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

    process
    {
        $arguments = @{}
        $arguments["accessPolicyName"] = $accessPolicyName
        $arguments["environmentName"] = $environmentName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getAccessPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetEnvironment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Setting $expand=status will include the status of the internal services of the environment in the Time Series Insights service.)')]
        [string]
        $expand,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getEnvironment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetEventHubEventSource
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights event source associated with the specified environment.)')]
        [string]
        $eventSourceName,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

    process
    {
        $arguments = @{}
        $arguments["environmentName"] = $environmentName
        $arguments["eventSourceName"] = $eventSourceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getEventHubEventSource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetIoTHubEventSource
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights event source associated with the specified environment.)')]
        [string]
        $eventSourceName,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

    process
    {
        $arguments = @{}
        $arguments["environmentName"] = $environmentName
        $arguments["eventSourceName"] = $eventSourceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getIoTHubEventSource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetEventSource
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights event source associated with the specified environment.)')]
        [string]
        $eventSourceName,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

    process
    {
        $arguments = @{}
        $arguments["environmentName"] = $environmentName
        $arguments["eventSourceName"] = $eventSourceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getEventSource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetGen2Environment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Setting $expand=status will include the status of the internal services of the environment in the Time Series Insights service.)')]
        [string]
        $expand,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getGen2Environment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetGen1Environment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Setting $expand=status will include the status of the internal services of the environment in the Time Series Insights service.)')]
        [string]
        $expand,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getGen1Environment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionTimeseriesinsightsGetReferenceDataSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights reference data set associated with the specified environment.)')]
        [string]
        $referenceDataSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName
    )

    process
    {
        $arguments = @{}
        $arguments["environmentName"] = $environmentName
        $arguments["referenceDataSetName"] = $referenceDataSetName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:timeseriesinsights:getReferenceDataSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class LocalTimestampTimeZoneOffset
{
    [string] $propertyName
}
function New-AzureNativeTypeTimeseriesinsightsLocalTimestampTimeZoneOffset
{
    param (
        [parameter(mandatory=$False,HelpMessage='The event property that will be contain the offset information to calculate the local timestamp. When the LocalTimestampFormat is Iana, the property name will contain the name of the column which contains IANA Timezone Name (eg: Americas/Los Angeles). When LocalTimestampFormat is Timespan, it contains the name of property which contains values representing the offset (eg: P1D or 1.00:00:00))')]
        [string]
        $propertyName
    )

    process
    {
        return $([LocalTimestampTimeZoneOffset]$PSBoundParameters)
    }
}
class LocalTimestamp
{
    [LocalTimestampTimeZoneOffset] $timeZoneOffset
    [ValidateSet('Embedded')]
    [string] $format
}
function New-AzureNativeTypeTimeseriesinsightsLocalTimestamp
{
    param (
        [parameter(mandatory=$False,HelpMessage='An object that represents the offset information for the local timestamp format specified. Should not be specified for LocalTimestampFormat - Embedded.)')]
        [LocalTimestampTimeZoneOffset]
        $timeZoneOffset,
        [parameter(mandatory=$False,HelpMessage='An enum that represents the format of the local timestamp property that needs to be set.)')]
        [string]
        [ValidateSet('Embedded')]
        $format
    )

    process
    {
        return $([LocalTimestamp]$PSBoundParameters)
    }
}
function New-AzureNativeTimeseriesinsightsEventSource
{
    [Alias('azure_native_timeseriesinsights_eventsource')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='An object that represents the local timestamp property. It contains the format of local timestamp that needs to be used and the corresponding timezone offset information. If a value isn''t specified for localTimestamp, or if null, then the local timestamp will not be ingressed with the events.)')]
        [LocalTimestamp]
        $localTimestamp,
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of additional properties for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The kind of the event source.)')]
        [string]
        [ValidateSet('Microsoft.EventHub', 'Microsoft.IoTHub')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the event source.)')]
        [string]
        $eventSourceName,
        [parameter(mandatory=$False,HelpMessage='The location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeTimeseriesinsightsReferenceDataSet
{
    [Alias('azure_native_timeseriesinsights_referencedataset')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='The reference data set key comparison behavior can be set using this property. By default, the value is ''Ordinal'' - which means case sensitive key comparison will be performed while joining reference data with events or while adding new reference data. When ''OrdinalIgnoreCase'' is set, case insensitive comparison will be used.)')]
        [string]
        [ValidateSet('Ordinal', 'OrdinalIgnoreCase')]
        $dataStringComparisonBehavior,
        [parameter(mandatory=$False,HelpMessage='The list of key properties for the reference data set.)')]
        $keyProperties,
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of additional properties for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Name of the reference data set.)')]
        [string]
        $referenceDataSetName,
        [parameter(mandatory=$False,HelpMessage='The location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Sku
{
    [ValidateSet('S1', 'S2', 'P1', 'L1')]
    [string] $name
    [ValidateSet('S1', 'S2', 'P1', 'L1')]
    [int] $capacity
}
function New-AzureNativeTypeTimeseriesinsightsSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of this SKU.)')]
        [string]
        [ValidateSet('S1', 'S2', 'P1', 'L1')]
        $name,
        [parameter(mandatory=$False,HelpMessage='The capacity of the sku. For Gen1 environments, this value can be changed to support scale out of environments after they have been created.)')]
        [int]
        $capacity
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
class Gen2StorageConfigurationInput
{
    [string] $accountName
    [string] $managementKey
}
function New-AzureNativeTypeTimeseriesinsightsGen2StorageConfigurationInput
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the storage account that will hold the environment''s Gen2 data.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The value of the management key that grants the Time Series Insights service write access to the storage account. This property is not shown in environment responses.)')]
        [string]
        $managementKey
    )

    process
    {
        return $([Gen2StorageConfigurationInput]$PSBoundParameters)
    }
}
class WarmStoreConfigurationProperties
{
    [string] $dataRetention
}
function New-AzureNativeTypeTimeseriesinsightsWarmStoreConfigurationProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='ISO8601 timespan specifying the number of days the environment''s events will be available for query from the warm store.)')]
        [string]
        $dataRetention
    )

    process
    {
        return $([WarmStoreConfigurationProperties]$PSBoundParameters)
    }
}
function New-AzureNativeTimeseriesinsightsGen2Environment
{
    [Alias('azure_native_timeseriesinsights_gen2environment')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The list of event properties which will be used to define the environment''s time series id.)')]
        $timeSeriesIdProperties,
        [parameter(mandatory=$False,HelpMessage='Name of the environment)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='The sku determines the type of environment, either Gen1 (S1 or S2) or Gen2 (L1). For Gen1 environments the sku determines the capacity of the environment, the ingress rate, and the billing rate.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The kind of the environment.
Expected value is ''Gen2''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of additional properties for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The storage configuration provides the connection details that allows the Time Series Insights service to connect to the customer storage account that is used to store the environment''s data.)')]
        [Gen2StorageConfigurationInput]
        $storageConfiguration,
        [parameter(mandatory=$False,HelpMessage='The warm store configuration provides the details to create a warm store cache that will retain a copy of the environment''s data available for faster query.)')]
        [WarmStoreConfigurationProperties]
        $warmStoreConfiguration,
        [parameter(mandatory=$False,HelpMessage='The location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sku"] = $sku
        $resource.properties["storageConfiguration"] = $storageConfiguration
        $resource.properties["timeSeriesIdProperties"] = $timeSeriesIdProperties

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeTimeseriesinsightsEventHubEventSource
{
    [Alias('azure_native_timeseriesinsights_eventhubeventsource')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the service bus that contains the event hub.)')]
        [string]
        $serviceBusNamespace,
        [parameter(mandatory=$False,HelpMessage='The name of the event hub''s consumer group that holds the partitions from which events will be read.)')]
        [string]
        $consumerGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the event source.)')]
        [string]
        $eventSourceName,
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of additional properties for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='An object that represents the local timestamp property. It contains the format of local timestamp that needs to be used and the corresponding timezone offset information. If a value isn''t specified for localTimestamp, or if null, then the local timestamp will not be ingressed with the events.)')]
        [LocalTimestamp]
        $localTimestamp,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='The value of the shared access key that grants the Time Series Insights service read access to the event hub. This property is not shown in event source responses.)')]
        [string]
        $sharedAccessKey,
        [parameter(mandatory=$False,HelpMessage='ISO8601 UTC datetime with seconds precision (milliseconds are optional), specifying the date and time that will be the starting point for Events to be consumed.)')]
        [string]
        $time,
        [parameter(mandatory=$False,HelpMessage='The location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The resource id of the event source in Azure Resource Manager.)')]
        [string]
        $eventSourceResourceId,
        [parameter(mandatory=$False,HelpMessage='The event property that will be used as the event source''s timestamp. If a value isn''t specified for timestampPropertyName, or if null or empty-string is specified, the event creation time will be used.)')]
        [string]
        $timestampPropertyName,
        [parameter(mandatory=$False,HelpMessage='The name of the event hub.)')]
        [string]
        $eventHubName,
        [parameter(mandatory=$False,HelpMessage='The kind of the event source.
Expected value is ''Microsoft.EventHub''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the SAS key that grants the Time Series Insights service access to the event hub. The shared access policies for this key must grant ''Listen'' permissions to the event hub.)')]
        [string]
        $keyName,
        [parameter(mandatory=$False,HelpMessage='The type of the ingressStartAt, It can be "EarliestAvailable", "EventSourceCreationTime", "CustomEnqueuedTime".)')]
        [string]
        [ValidateSet('EarliestAvailable', 'EventSourceCreationTime', 'CustomEnqueuedTime')]
        $type,
        [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:timeseriesinsights:EventHubEventSource")

        $resource.properties["consumerGroupName"] = $consumerGroupName
        $resource.properties["environmentName"] = $environmentName
        $resource.properties["eventHubName"] = $eventHubName
        $resource.properties["eventSourceResourceId"] = $eventSourceResourceId
        $resource.properties["keyName"] = $keyName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["serviceBusNamespace"] = $serviceBusNamespace
        $resource.properties["sharedAccessKey"] = $sharedAccessKey

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeTimeseriesinsightsIoTHubEventSource
{
    [Alias('azure_native_timeseriesinsights_iothubeventsource')]
    param (
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of additional properties for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the iot hub''s consumer group that holds the partitions from which events will be read.)')]
        [string]
        $consumerGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the event source.)')]
        [string]
        $eventSourceName,
        [parameter(mandatory=$False,HelpMessage='The type of the ingressStartAt, It can be "EarliestAvailable", "EventSourceCreationTime", "CustomEnqueuedTime".)')]
        [string]
        [ValidateSet('EarliestAvailable', 'EventSourceCreationTime', 'CustomEnqueuedTime')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='An object that represents the local timestamp property. It contains the format of local timestamp that needs to be used and the corresponding timezone offset information. If a value isn''t specified for localTimestamp, or if null, then the local timestamp will not be ingressed with the events.)')]
        [LocalTimestamp]
        $localTimestamp,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='The value of the Shared Access Policy key that grants the Time Series Insights service read access to the iot hub. This property is not shown in event source responses.)')]
        [string]
        $sharedAccessKey,
        [parameter(mandatory=$False,HelpMessage='ISO8601 UTC datetime with seconds precision (milliseconds are optional), specifying the date and time that will be the starting point for Events to be consumed.)')]
        [string]
        $time,
        [parameter(mandatory=$False,HelpMessage='The location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The resource id of the event source in Azure Resource Manager.)')]
        [string]
        $eventSourceResourceId,
        [parameter(mandatory=$False,HelpMessage='The event property that will be used as the event source''s timestamp. If a value isn''t specified for timestampPropertyName, or if null or empty-string is specified, the event creation time will be used.)')]
        [string]
        $timestampPropertyName,
        [parameter(mandatory=$False,HelpMessage='The kind of the event source.
Expected value is ''Microsoft.IoTHub''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the Shared Access Policy key that grants the Time Series Insights service access to the iot hub. This shared access policy key must grant ''service connect'' permissions to the iot hub.)')]
        [string]
        $keyName,
        [parameter(mandatory=$False,HelpMessage='The name of the iot hub.)')]
        [string]
        $iotHubName,
        [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:timeseriesinsights:IoTHubEventSource")

        $resource.properties["consumerGroupName"] = $consumerGroupName
        $resource.properties["environmentName"] = $environmentName
        $resource.properties["eventSourceResourceId"] = $eventSourceResourceId
        $resource.properties["iotHubName"] = $iotHubName
        $resource.properties["keyName"] = $keyName
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sharedAccessKey"] = $sharedAccessKey

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateLinkServiceConnectionState
{
    [string] $description
    [string] $actionsRequired
    [ValidateSet('Pending', 'Approved', 'Rejected')]
    [string] $status
}
function New-AzureNativeTypeTimeseriesinsightsPrivateLinkServiceConnectionState
{
    param (
        [parameter(mandatory=$False,HelpMessage='The reason for approval/rejection of the connection.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='A message indicating if changes on the service provider require any updates on the consumer.)')]
        [string]
        $actionsRequired,
        [parameter(mandatory=$False,HelpMessage='Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.)')]
        [string]
        [ValidateSet('Pending', 'Approved', 'Rejected')]
        $status
    )

    process
    {
        return $([PrivateLinkServiceConnectionState]$PSBoundParameters)
    }
}
function New-AzureNativeTimeseriesinsightsPrivateEndpointConnection
{
    [Alias('azure_native_timeseriesinsights_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='The provisioning state of the private endpoint connection resource.)')]
        [string[]]
        $groupIds,
        [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:timeseriesinsights:PrivateEndpointConnection")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeTimeseriesinsightsAccessPolicy
{
    [Alias('azure_native_timeseriesinsights_accesspolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Time Series Insights environment associated with the specified resource group.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='Name of the access policy.)')]
        [string]
        $accessPolicyName,
        [parameter(mandatory=$False,HelpMessage='An description of the access policy.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The list of roles the principal is assigned on the environment.)')]
        $roles,
        [parameter(mandatory=$False,HelpMessage='The objectId of the principal in Azure Active Directory.)')]
        [string]
        $principalObjectId,
        [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:timeseriesinsights:AccessPolicy")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeTimeseriesinsightsGen1Environment
{
    [Alias('azure_native_timeseriesinsights_gen1environment')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The list of event properties which will be used to partition data in the environment. Currently, only a single partition key property is supported.)')]
        $partitionKeyProperties,
        [parameter(mandatory=$False,HelpMessage='Name of the environment)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='The sku determines the type of environment, either Gen1 (S1 or S2) or Gen2 (L1). For Gen1 environments the sku determines the capacity of the environment, the ingress rate, and the billing rate.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The kind of the environment.
Expected value is ''Gen1''.)'
)]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of additional properties for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The behavior the Time Series Insights service should take when the environment''s capacity has been exceeded. If "PauseIngress" is specified, new events will not be read from the event source. If "PurgeOldData" is specified, new events will continue to be read and old events will be deleted from the environment. The default behavior is PurgeOldData.)')]
        [string]
        [ValidateSet('PurgeOldData', 'PauseIngress')]
        $storageLimitExceededBehavior,
        [parameter(mandatory=$False,HelpMessage='ISO8601 timespan specifying the minimum number of days the environment''s events will be available for query.)')]
        [string]
        $dataRetentionTime,
        [parameter(mandatory=$False,HelpMessage='The location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeTimeseriesinsightsEnvironment
{
    [Alias('azure_native_timeseriesinsights_environment')]
    param (
        [parameter(mandatory=$False,HelpMessage='The sku determines the type of environment, either Gen1 (S1 or S2) or Gen2 (L1). For Gen1 environments the sku determines the capacity of the environment, the ingress rate, and the billing rate.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Name of the environment)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='Name of an Azure Resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of additional properties for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The kind of the environment.)')]
        [string]
        [ValidateSet('Gen1', 'Gen2')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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