pspulumiyaml.azurenative.datadog.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionDatadogListMonitorLinkedResources
{
    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:datadog:listMonitorLinkedResources -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatadogListMonitorApiKeys
{
    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:datadog:listMonitorApiKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatadogListMonitorMonitoredResources
{
    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:datadog:listMonitorMonitoredResources -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatadogListMonitorHosts
{
    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:datadog:listMonitorHosts -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatadogGetMonitor
{
    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:datadog:getMonitor -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatadogGetMonitorDefaultKey
{
    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:datadog:getMonitorDefaultKey -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class IdentityProperties
{
    [ArgumentCompletions('SystemAssigned', 'UserAssigned')]
    [string] $type
}
function New-AzureNativeTypeDatadogIdentityProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Identity type)')]
        [string]
        [ValidateSet('SystemAssigned', 'UserAssigned')]
        $type
    )

    process
    {
        return $([IdentityProperties]$PSBoundParameters)
    }
}
class DatadogOrganizationProperties
{
    [string] $enterpriseAppId
    [string] $linkingClientId
    [string] $linkingAuthCode
    [string] $applicationKey
    [string] $apiKey
    [string] $redirectUri
}
function New-AzureNativeTypeDatadogDatadogOrganizationProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Id of the Enterprise App used for Single sign on.)')]
        [string]
        $enterpriseAppId,
        [parameter(mandatory=$False,HelpMessage='The client_id from an existing in exchange for an auth token to link organization.)')]
        [string]
        $linkingClientId,
        [parameter(mandatory=$False,HelpMessage='The auth code used to linking to an existing datadog organization.)')]
        [string]
        $linkingAuthCode,
        [parameter(mandatory=$False,HelpMessage='Application key associated to the Datadog organization.)')]
        [string]
        $applicationKey,
        [parameter(mandatory=$False,HelpMessage='Api key associated to the Datadog organization.)')]
        [string]
        $apiKey,
        [parameter(mandatory=$False,HelpMessage='The redirect uri for linking.)')]
        [string]
        $redirectUri
    )

    process
    {
        return $([DatadogOrganizationProperties]$PSBoundParameters)
    }
}
class UserInfo
{
    [string] $emailAddress
    [string] $phoneNumber
    [string] $name
}
function New-AzureNativeTypeDatadogUserInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='Email of the user used by Datadog for contacting them if needed)')]
        [string]
        $emailAddress,
        [parameter(mandatory=$False,HelpMessage='Phone number of the user used by Datadog for contacting them if needed)')]
        [string]
        $phoneNumber,
        [parameter(mandatory=$False,HelpMessage='Name of the user)')]
        [string]
        $name
    )

    process
    {
        return $([UserInfo]$PSBoundParameters)
    }
}
class MonitorProperties
{
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $monitoringStatus
    [DatadogOrganizationProperties] $datadogOrganizationProperties
    [UserInfo] $userInfo
}
function New-AzureNativeTypeDatadogMonitorProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Flag specifying if the resource monitoring is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $monitoringStatus,
        [parameter(mandatory=$False,HelpMessage='Datadog organization properties)')]
        [DatadogOrganizationProperties]
        $datadogOrganizationProperties,
        [parameter(mandatory=$False,HelpMessage='User info)')]
        [UserInfo]
        $userInfo
    )

    process
    {
        return $([MonitorProperties]$PSBoundParameters)
    }
}
class ResourceSku
{
    [string] $name
}
function New-AzureNativeTypeDatadogResourceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the SKU.)')]
        [string]
        $name
    )

    process
    {
        return $([ResourceSku]$PSBoundParameters)
    }
}
function New-AzureNativeDatadogMonitor
{
    [Alias('azure_native_datadog_monitor')]
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [hashtable]
        $tags,
        [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=')')]
        [ResourceSku]
        $sku,
        [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:datadog: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 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        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 'sku')
        {
            $resource.properties["sku"] = $sku
        }

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

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