Public/Get-DwImportDevice.ps1

function Get-DwImportDevice {
    <#
        .SYNOPSIS
        Gets a Dashworks device from the import API.

        .DESCRIPTION
        Gets a Dashworks device from the import API.
        Takes the ImportId and UniqueComputerIdentifier as an input.

        .PARAMETER Instance

        Dashworks instance. For example, myinstance.dashworks.app

        .PARAMETER Port

        Dashworks API port number. Default = 8443

        .PARAMETER APIKey

        Dashworks API Key.

        .PARAMETER UniqueComputerIdentifier

        UniqueComputerIdentifier for the device.

        .PARAMETER ImportId

        ImportId for the device.

        .PARAMETER InfoLevel

        Optional. Sets the level of information that this function returns. Accepts Basic or Full.
        Basic returns only the UniqueComputerIdentifier, use when confirming a device exists.
        Full returns the full json object for the device.
        Default is Basic.

        .EXAMPLE
        PS> Get-DwImportDevice -ImportId 1 -UniqueComputerIdentifier "w123abc" -Instance "myinstance.dashworks.app" -APIKey "xxxxx"
    #>


    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [string]$Instance,
        [Parameter(Mandatory=$false)]
        [int]$Port = 8443,
        [Parameter(Mandatory=$true)]
        [string]$APIKey,
        [parameter(Mandatory=$true)]
        [string]$UniqueComputerIdentifier,
        [parameter(Mandatory=$true)]
        [int]$ImportId,
        [parameter(Mandatory=$false)]
        [ValidateSet("Basic", "Full")]
        [string]$InfoLevel = "Basic"
    )

    $uri = "https://{0}:{1}/apiv2/imports/devices/{2}/items/{3}" -f $Instance, $Port, $ImportId, $UniqueComputerIdentifier
    $headers = @{'x-api-key' = $APIKey}

    $device = ''
    try {
        $result = Invoke-WebRequest -Uri $uri -Method GET -Headers $headers -ContentType "application/json"
        $device = switch($InfoLevel) {
            "Basic" { ($result.Content | ConvertFrom-Json).UniqueComputerIdentifier }
            "Full"  { $result.Content }
        }
    }
    catch {
        if ($_.Exception.Response.StatusCode.Value__ -eq 404) {
            Write-Information "device not found" -InformationAction Continue
        }
        else {
            Write-Error ("{0}. {1}" -f $_.Exception.Response.StatusCode.Value__, $_.Exception.Message)
        }
    }

    return $device
}