Public/Get-Output.ps1
|
function Get-Output { [CmdletBinding()] param ( [Parameter( Position=0, Mandatory=$false, ValueFromPipelineByPropertyName=$true )] [string]$Host = $Script:Host, [Parameter( Position=1, Mandatory=$false, ValueFromPipelineByPropertyName=$true )] [string]$SessionKey = $Script:SessionKey, [Parameter( ValueFromPipelineByPropertyName=$true )] [switch]$UseSSL = $Script:UseSSL, [Parameter( ValueFromPipelineByPropertyName=$true )] [switch]$IgnoreCertificateErrors = $Script:IgnoreCertificateErrors, [Parameter()] [int]$Id, [Parameter()] [ValidateRange(1,250)] [int]$Limit = 250 ) begin { if($IgnoreCertificateErrors) { [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true } } } process { $endPoint = "api/devices/outputs" $method = "GET" $contentType = "application/json" $uri = "http" + $(if($UseSSL) { "s" }) + "://$($Host)/$($endPoint)" $headers = @{ Authorization=$SessionKey; } $query = @{ limit=$Limit; } if($Id) { $uri = "$uri/$Id" } Write-Verbose -Message "$($method) $($uri) $($contentType)" Write-Verbose -Message "Query:`n$(ConvertTo-Json $query)" $message = @{ Uri=$uri; Method=$method; Body=$query; ContentType=$contentType; Headers=$headers; UseBasicParsing=$true; } $response = Invoke-RestMethod @message $response | ForEach-Object { New-Object -TypeName PSObject -Property @{ Id=$_.id; Name=$_.name; State=$_.state; } } } end { [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $null } } } |