private/Invoke-RHSMApiRequest.ps1
|
function Invoke-RHSMApiRequest { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [String]$Path, [Parameter(Mandatory = $false)] [Hashtable]$Query ) $headers = Get-RHSMAuthorizationHeader $headers['Accept'] = 'application/json' $uri = '{0}/{1}' -f $script:RHSMSession.BaseUri.TrimEnd('/'), $Path.TrimStart('/') if ($Query -and $Query.Count -gt 0) { $pairs = foreach ($key in $Query.Keys) { '{0}={1}' -f [Uri]::EscapeDataString($key), [Uri]::EscapeDataString([String]$Query[$key]) } $uri = '{0}?{1}' -f $uri, ($pairs -join '&') } Write-Verbose -Message ('GET {0}' -f $uri) try { Invoke-RestMethod -Uri $uri -Method Get -Headers $headers } catch { Write-Error -Message ('Error encountered calling the Red Hat Subscription Management API: {0}' -f $_) -ErrorAction Stop } } |