pspulumiyaml.azurenative.dashboard.psm1

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:dashboard:getGrafana -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDashboardGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The workspace name of Azure Managed Grafana.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The private endpoint connection name of Azure Managed Grafana.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:dashboard:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class PrivateLinkServiceConnectionState
{
    [string] $actionsRequired
    [string] $description
    [ArgumentCompletions('Pending', 'Approved', 'Rejected')]
    [string] $status
}
function New-AzureNativeTypeDashboardPrivateLinkServiceConnectionState
{
    param (
        [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='The reason for approval/rejection of the connection.)')]
        [string]
        $description,
        [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-AzureNativeDashboardPrivateEndpointConnection
{
    [Alias('azure_native_dashboard_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The workspace name of Azure Managed Grafana.)')]
        [string]
        $workspaceName,
        [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 private endpoint connection group ids.)')]
        [string[]]
        $groupIds,
        [parameter(mandatory=$False,HelpMessage='The private endpoint connection name of Azure Managed Grafana.)')]
        [string]
        $privateEndpointConnectionName,
        [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:dashboard:PrivateEndpointConnection")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ManagedServiceIdentity
{
    [ArgumentCompletions('None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned,UserAssigned')]
    [string] $type
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeDashboardManagedServiceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).)')]
        [string]
        [ValidateSet('None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned,UserAssigned')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.)')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([ManagedServiceIdentity]$PSBoundParameters)
    }
}
class ManagedGrafanaProperties
{
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $publicNetworkAccess
    [ArgumentCompletions('Disabled', 'Enabled')]
    [string] $zoneRedundancy
    [ArgumentCompletions('Disabled', 'Enabled')]
    [string] $apiKey
    [ArgumentCompletions('TenantReuse')]
    [string] $autoGeneratedDomainNameLabelScope
    [ArgumentCompletions('Disabled', 'Enabled')]
    [string] $deterministicOutboundIP
}
function New-AzureNativeTypeDashboardManagedGrafanaProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Indicate the state for enable or disable traffic over the public interface.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $publicNetworkAccess,
        [parameter(mandatory=$False,HelpMessage='The zone redundancy setting of the Grafana instance.)')]
        [string]
        [ValidateSet('Disabled', 'Enabled')]
        $zoneRedundancy,
        [parameter(mandatory=$False,HelpMessage='The api key setting of the Grafana instance.)')]
        [string]
        [ValidateSet('Disabled', 'Enabled')]
        $apiKey,
        [parameter(mandatory=$False,HelpMessage='Scope for dns deterministic name hash calculation.)')]
        [string]
        [ValidateSet('TenantReuse')]
        $autoGeneratedDomainNameLabelScope,
        [parameter(mandatory=$False,HelpMessage='Whether a Grafana instance uses deterministic outbound IPs.)')]
        [string]
        [ValidateSet('Disabled', 'Enabled')]
        $deterministicOutboundIP
    )

    process
    {
        return $([ManagedGrafanaProperties]$PSBoundParameters)
    }
}
class ResourceSku
{
    [string] $name
}
function New-AzureNativeTypeDashboardResourceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $name
    )

    process
    {
        return $([ResourceSku]$PSBoundParameters)
    }
}
function New-AzureNativeDashboardGrafana
{
    [Alias('azure_native_dashboard_grafana')]
    param (
        [parameter(mandatory=$False,HelpMessage='The tags for grafana resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The managed identity of the grafana resource.)')]
        [ManagedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The workspace name of Azure Managed Grafana.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Properties specific to the grafana resource.)')]
        [ManagedGrafanaProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Sku of the grafana resource.)')]
        [ResourceSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the grafana resource lives)')]
        [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:dashboard:Grafana")

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

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

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

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

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