Public/Restore-TEApiTest.ps1

function Restore-TEApiTest {
     <#
    .SYNOPSIS
    Restore Backed up test created by Backup-TEApiTest
    .DESCRIPTION
     
    .EXAMPLE
     
    .EXAMPLE
    
    .PARAMETER apiVersion
     
    .PARAMETER aid
    Account Group ID
    .PARAMETER id
    Test ID for Restore
    .PARAMETER restoreLocation
    Location to restore from, defaults to $PWD
    #>

    [CmdletBinding()]
    param(
        [int]$apiVersion = 6,

        [string]$aid,

        [Parameter(ParameterSetName="TestBackup",
                   Position=0,
                   Mandatory=$True,
                   ValueFromPipeline=$true,
                   HelpMessage="Agent ID")]
        [string[]]$id,

        [Parameter(ParameterSetName="TestBackup",
                   HelpMessage="Restore File Location")]
        [string]$restoreLocation = $PWD

    )
    BEGIN {}
    PROCESS {
            ForEach ($test in $id) {
                $testRestore = $restoreLocation + "\$test" + ".xml"
                $testDetailsObject = Import-Clixml -Path  $testRestore

                $testObject = $testDetailsObject.test

                $body = @{}

                switch (($testObject | Get-member).name) {
                    'testName'      {$body.testName     =   $testObject.testname}
                    'dnsServers'    {$body.dnsServers   =   $testObject.dnsServers}
                    Default {}
                }

                switch ($testObject.type) {
                    'page-load'         { Write-Output "page Load Test";  break}
                    'agent-to-server'   { Write-Output "agent to Server";  break}
                    'agent-to-agent'    { Write-Output "agent to agent";  break}
                    'bgp'               { Write-Output "bgp";  break}
                    'http-server'       { Write-Output "http server";  break}
                    'transactions'      { Write-Output "transactions";  break}
                    'ftp-server'        { Write-Output "ftp-server";  break}
                    'dns-trace'         { Write-Output "dns-trace";  break}
                    'dns-server'        { Write-Output $body} #New-TEApiTest $testObject; break}
                    'dns-dnssec'        { Write-Output "dns-dnssec";  break}
                    'dnsp-domain'       { Write-Output "dnsp-domain";  break}
                    'dnsp-server'       { Write-Output "dnsp-server";  break}
                    'voice'             { Write-Output "voice";  break}
                    Default {}
                }
            }
    }
    END {}
}