pspulumiyaml.azurenative.logz.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionLogzListMonitorUserRoles
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Email of the user used by Logz for contacting them if needed)')]
        [string]
        $emailAddress,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

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

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

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

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

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:listMonitorVMHosts -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogzGetSubAccountTagRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Sub Account resource name)')]
        [string]
        $subAccountName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $ruleSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["ruleSetName"] = $ruleSetName
        $arguments["subAccountName"] = $subAccountName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:getSubAccountTagRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogzGetMetricsSourceTagRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Metrics Account resource name)')]
        [string]
        $metricsSourceName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $ruleSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["metricsSourceName"] = $metricsSourceName
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["ruleSetName"] = $ruleSetName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:getMetricsSourceTagRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogzGetSubAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Sub Account resource name)')]
        [string]
        $subAccountName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["subAccountName"] = $subAccountName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:getSubAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogzGetMetricsSource
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Metrics Account resource name)')]
        [string]
        $metricsSourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["metricsSourceName"] = $metricsSourceName
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:getMetricsSource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogzListSubAccountVMHosts
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Sub Account resource name)')]
        [string]
        $subAccountName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["subAccountName"] = $subAccountName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:listSubAccountVMHosts -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogzListSubAccountMonitoredResources
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Sub Account resource name)')]
        [string]
        $subAccountName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["subAccountName"] = $subAccountName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:listSubAccountMonitoredResources -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogzGetTagRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $ruleSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["ruleSetName"] = $ruleSetName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logz:getTagRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class IdentityProperties
{
    [ArgumentCompletions('SystemAssigned', 'UserAssigned')]
    [string] $type
}
function New-AzureNativeTypeLogzIdentityProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        [ValidateSet('SystemAssigned', 'UserAssigned')]
        $type
    )

    process
    {
        return $([IdentityProperties]$PSBoundParameters)
    }
}
class PlanData
{
    [string] $billingCycle
    [string] $planDetails
    [string] $usageType
    [string] $effectiveDate
}
function New-AzureNativeTypeLogzPlanData
{
    param (
        [parameter(mandatory=$False,HelpMessage='different billing cycles like MONTHLY/WEEKLY. this could be enum)')]
        [string]
        $billingCycle,
        [parameter(mandatory=$False,HelpMessage='plan id as published by Logz)')]
        [string]
        $planDetails,
        [parameter(mandatory=$False,HelpMessage='different usage type like PAYG/COMMITTED. this could be enum)')]
        [string]
        $usageType,
        [parameter(mandatory=$False,HelpMessage='date when plan was applied)')]
        [string]
        $effectiveDate
    )

    process
    {
        return $([PlanData]$PSBoundParameters)
    }
}
class UserInfo
{
    [string] $lastName
    [string] $emailAddress
    [string] $firstName
    [string] $phoneNumber
}
function New-AzureNativeTypeLogzUserInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='Last Name of the user)')]
        [string]
        $lastName,
        [parameter(mandatory=$False,HelpMessage='Email of the user used by Logz for contacting them if needed)')]
        [string]
        $emailAddress,
        [parameter(mandatory=$False,HelpMessage='First Name of the user)')]
        [string]
        $firstName,
        [parameter(mandatory=$False,HelpMessage='Phone number of the user used by Logz for contacting them if needed)')]
        [string]
        $phoneNumber
    )

    process
    {
        return $([UserInfo]$PSBoundParameters)
    }
}
class LogzOrganizationProperties
{
    [string] $singleSignOnUrl
    [string] $companyName
    [string] $enterpriseAppId
}
function New-AzureNativeTypeLogzLogzOrganizationProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The login URL specific to this Logz Organization.)')]
        [string]
        $singleSignOnUrl,
        [parameter(mandatory=$False,HelpMessage='Name of the Logz organization.)')]
        [string]
        $companyName,
        [parameter(mandatory=$False,HelpMessage='The Id of the Enterprise App used for Single sign on.)')]
        [string]
        $enterpriseAppId
    )

    process
    {
        return $([LogzOrganizationProperties]$PSBoundParameters)
    }
}
class MonitorProperties
{
    [PlanData] $planData
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $monitoringStatus
    [UserInfo] $userInfo
    [LogzOrganizationProperties] $logzOrganizationProperties
    [ArgumentCompletions('Active', 'Suspended')]
    [string] $marketplaceSubscriptionStatus
}
function New-AzureNativeTypeLogzMonitorProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [PlanData]
        $planData,
        [parameter(mandatory=$False,HelpMessage='Flag specifying if the resource monitoring is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $monitoringStatus,
        [parameter(mandatory=$False,HelpMessage=')')]
        [UserInfo]
        $userInfo,
        [parameter(mandatory=$False,HelpMessage=')')]
        [LogzOrganizationProperties]
        $logzOrganizationProperties,
        [parameter(mandatory=$False,HelpMessage='Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in time, the resource will go in Suspended state.)')]
        [string]
        [ValidateSet('Active', 'Suspended')]
        $marketplaceSubscriptionStatus
    )

    process
    {
        return $([MonitorProperties]$PSBoundParameters)
    }
}
function New-AzureNativeLogzSubAccount
{
    [Alias('azure_native_logz_subaccount')]
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [IdentityProperties]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Properties specific to the monitor resource.)')]
        [MonitorProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Sub Account resource name)')]
        [string]
        $subAccountName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class FilteringTag
{
    [string] $value
    [ArgumentCompletions('Include', 'Exclude')]
    [string] $action
    [string] $name
}
function New-AzureNativeTypeLogzFilteringTag
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value of the tag.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Valid actions for a filtering tag. Exclusion takes priority over inclusion.)')]
        [string]
        [ValidateSet('Include', 'Exclude')]
        $action,
        [parameter(mandatory=$False,HelpMessage='The name (also known as the key) of the tag.)')]
        [string]
        $name
    )

    process
    {
        return $([FilteringTag]$PSBoundParameters)
    }
}
class LogRules
{
    [bool] $sendAadLogs
    [bool] $sendSubscriptionLogs
    [bool] $sendActivityLogs
    [FilteringTag[]] $filteringTags
}
function New-AzureNativeTypeLogzLogRules
{
    param (
        [parameter(mandatory=$False,HelpMessage='Flag specifying if AAD logs should be sent for the Monitor resource.)')]
        [bool]
        $sendAadLogs,
        [parameter(mandatory=$False,HelpMessage='Flag specifying if subscription logs should be sent for the Monitor resource.)')]
        [bool]
        $sendSubscriptionLogs,
        [parameter(mandatory=$False,HelpMessage='Flag specifying if activity logs from Azure resources should be sent for the Monitor resource.)')]
        [bool]
        $sendActivityLogs,
        [parameter(mandatory=$False,HelpMessage='List of filtering tags to be used for capturing logs. This only takes effect if SendActivityLogs flag is enabled. If empty, all resources will be captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include actions are specified, the rules will only include resources with the associated tags.)')]
        $filteringTags
    )

    process
    {
        return $([LogRules]$PSBoundParameters)
    }
}
class MonitoringTagRulesProperties
{
    [LogRules] $logRules
}
function New-AzureNativeTypeLogzMonitoringTagRulesProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Set of rules for sending logs for the Monitor resource.)')]
        [LogRules]
        $logRules
    )

    process
    {
        return $([MonitoringTagRulesProperties]$PSBoundParameters)
    }
}
function New-AzureNativeLogzSubAccountTagRule
{
    [Alias('azure_native_logz_subaccounttagrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='Sub Account resource name)')]
        [string]
        $subAccountName,
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Definition of the properties for a TagRules resource.)')]
        [MonitoringTagRulesProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $ruleSetName,
        [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,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeLogzMetricsSource
{
    [Alias('azure_native_logz_metricssource')]
    param (
        [parameter(mandatory=$False,HelpMessage='Metrics Account resource name)')]
        [string]
        $metricsSourceName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [IdentityProperties]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Properties specific to the monitor resource.)')]
        [MonitorProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeLogzTagRule
{
    [Alias('azure_native_logz_tagrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Definition of the properties for a TagRules resource.)')]
        [MonitoringTagRulesProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $ruleSetName,
        [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,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class MetricRules
{
    [FilteringTag[]] $filteringTags
    [string] $subscriptionId
}
function New-AzureNativeTypeLogzMetricRules
{
    param (
        [parameter(mandatory=$False,HelpMessage='List of filtering tags to be used for capturing metrics. If empty, all resources will be captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include actions are specified, the rules will only include resources with the associated tags.)')]
        $filteringTags,
        [parameter(mandatory=$False,HelpMessage='Subscription Id for which filtering tags are applicable)')]
        [string]
        $subscriptionId
    )

    process
    {
        return $([MetricRules]$PSBoundParameters)
    }
}
class MetricsTagRulesProperties
{
    [MetricRules[]] $metricRules
    [bool] $sendMetrics
}
function New-AzureNativeTypeLogzMetricsTagRulesProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        $metricRules,
        [parameter(mandatory=$False,HelpMessage='Flag specifying if metrics from Azure resources should be sent for the Monitor resource.)')]
        [bool]
        $sendMetrics
    )

    process
    {
        return $([MetricsTagRulesProperties]$PSBoundParameters)
    }
}
function New-AzureNativeLogzMetricsSourceTagRule
{
    [Alias('azure_native_logz_metricssourcetagrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Definition of the properties for a TagRules resource.)')]
        [MetricsTagRulesProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Metrics Account resource name)')]
        [string]
        $metricsSourceName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $ruleSetName,
        [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,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeLogzMonitor
{
    [Alias('azure_native_logz_monitor')]
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [IdentityProperties]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Properties specific to the monitor resource.)')]
        [MonitorProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

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