Public/Acronis/Invoke-AcronisApi.ps1
function Invoke-AcronisApi { [CmdletBinding()] param ( [Parameter(Mandatory)] [string]$Uri, [Parameter()] [Microsoft.PowerShell.Commands.WebRequestMethod] $Method = 'Get', [Parameter()] $Body, [Parameter()] $RawBody = $null, [Parameter()] [string]$ContentType = 'application/x-www-form-urlencoded' ) try { # Get access token $token = Get-AcronisAccessToken $baseURI = 'https://dk01-cloud.acronis.com/' $params = @{ Uri = $baseURI + $Uri Method = $Method Headers = @{ Authorization = 'Bearer ' + $token.AccessToken 'Content-Type' = $ContentType } } if ($Body) { $params.Body = $Body | ConvertTo-Json -Depth 100 } elseif ($RawBody) { $params.Body = $RawBody } Write-ModuleLog -Message "Invoking Acronis API at $($params.Uri) with method $($params.Method)" -Level Verbose -Component 'AcronisApi' $response = Invoke-RestMethod @params return $response } catch { throw } } |