I've made a few successful API calls using the same integration key (Get Alerts, Update Description, Add Tag), but while trying to CLOSE ALERT, I get "The remote server returned an error: (400) Bad Request"
Any idea what I could be missing here?
<SNIP>
PS C:\> $closeAlertURL
https://api.opsgenie.com/v2/alerts/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxxxxxxxxx/close
PS C:\> Invoke-RestMethod -Method POST -Uri $closeAlertURL -Headers $global:OpsGenieAPIHeader
Invoke-RestMethod : The remote server returned an error: (400) Bad Request.
At line:1 char:1
+ Invoke-RestMethod -Method POST -Uri $closeAlertURL -Headers $global:O ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
<SNIP>
I figured out the problem.
Even though I'm not using any of the OPTIONAL fields in the JSON body, I MUST have an empty JSON body passed with the request.
Here's what worked for me:
<SNIP>
PS C:\Windows\System32> $closeAlertURL
https://api.opsgenie.com/v2/alerts/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxxxxxxxxx/close
PS C:\> $post_message = @{}
$post_message_JSON = $post_message | ConvertTo-Json
PS C:\> Invoke-RestMethod -Method POST -Uri $closeAlertURL -Headers $global:OpsGenieAPIHeader -Body $post_message_JSON
</SNIP>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.