Public/Resolve-PdqClipboardFormat.ps1

<#
.SYNOPSIS
Outputs a format name and data type for Get-PdqClipboardData.
 
.DESCRIPTION
See Get-PdqClipboardData for an explanation of these format names.
 
.INPUTS
None.
 
.OUTPUTS
System.Collections.Hashtable
 
.EXAMPLE
Resolve-PdqClipboardFormat -Format 'Package'
Outputs a hashtable containing the format name and data type for Packages.
#>

function Resolve-PdqClipboardFormat {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        # The name of the type of data you would like Get-PdqClipboardData to retrieve for you.
        [String]$Format
    )

    $FormatTable = @{
        'AutoReport' = @{
            'Name' = 'x-application/PDQAutoReportDefinitions'
            'Type' = 'JSON'
        }
        'Collection' = @{
            'Name' = 'AdminArsenal.PDQInventory.MainTree.Export'
            'Type' = 'XML'
        }
        'DeployFolder' = @{
            'Name' = 'AdminArsenal.MainTreeControl.Clipboard'
            'Type' = 'XML'
        }
        'Filter' = @{
            'Name' = 'AdminArsenal.Reports.Engine.Basic.FilterViewModel'
            'Type' = 'JSON'
        }
        'Notification' = @{
            'Name' = 'x-application/PDQDeployMailNotification'
            'Type' = 'JSON'
        }
        'Package' = @{
            'Name' = 'AdminArsenal.MainTreeControl.Clipboard'
            'Type' = 'XML'
        }
        'PackageStep' = @{
            'Name' = 'AdminArsenal.PDQDeploy.PackageStepViewModel'
            'Type' = 'JSON'
        }
        'ReportFolder' = @{
            'Name' = 'AdminArsenal.PDQInventory.MainTree.Export'
            'Type' = 'XML'
        }
        'Scanner' = @{
            'Name' = 'AdminArsenal.PDQInventory.Scanners.ScannerViewModel'
            'Type' = 'JSON'
        }
        'ScanProfile' = @{
            'Name' = 'AdminArsenal.PDQInventory.Scanners.ScanProfilesPageViewModel'
            'Type' = 'XML'
        }
        'TargetList' = @{
            'Name' = 'AdminArsenal.MainTreeControl.Clipboard'
            'Type' = 'XML'
        }
        'Tool' = @{
            'Name' = 'AdminArsenal.ComputerToolSettings.Clipboard'
            'Type' = 'XML'
        }
        'Trigger' = @{
            'Name' = 'AdminArsenal.ScheduleTriggers.ScheduleTriggerViewModel'
            'Type' = 'JSON'
        }
        'Variable' = @{
            'Name' = 'AdminArsenal.Variables.CustomVariableViewModel'
            'Type' = 'JSON'
        }
    }

    if ( $Format -notin $FormatTable.Keys ) {

        throw "'$Format' is not a valid format."

    }
    
    $FormatTable.$Format

}