Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,551,972
Community Members
 
Community Events
184
Community Groups

Cannot close OpsGenie Alert via PS Invoke-RestMethod, "422 Unprocessable Entity"

Edited

I can get an alert successfully created with this PS scriptlet:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$body = @{   
"priority"="P1";   
"message"="TESTING JIMMY example alert message";   
"alias"="testingjimmy";   
"description"="TESTING JIMMY Every alert needs a description"   
}
   
$url="https://api.opsgenie.com/v2/alerts?apiKey=xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"    I
nvoke-RestMethod
-Method Post -ContentType "application/json" -Uri $url -Body (ConvertTo-Json $body)

But, I get "422 Unprocessable Entity" with every single option I chose (id, tiny, alias) in the below with proper modifications:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12    
$header = @{       
"Authorization"="GenieKey "+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"))       
}
       
$url="https://api.opsgenie.com/v2/alerts/testingjimmy/close?identifierType=alias"       
Invoke-RestMethod -Method Post -ContentType "application/json" -Header $header -Uri $url

I've tried RequestIDs and the Tiny#s (alert#) too, with zero luck.  The API service that this is tied to in the back end has the proper settings to close the alert as well.

Any ideas?  I assume

I used several references, this is the one I used the most:

https://docs.opsgenie.com/docs/alert-api

 

 

2 answers

I think I finally got it.  Although the API documentation clearly state that the BODY is not mandatory, it is.  I also needed to convert how I was passing the Authorization variable, I don't need to convert it before passing it.  Here is what finally worked:

To Create:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12$body = @{    "priority"="P1";    "message"="TESTING JIMMY example alert message";    "alias"="testingjimmy";    "description"="TESTING JIMMY Every alert needs a description"    }$url="https://api.opsgenie.com/v2/alerts?apiKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Invoke-RestMethod -Method Post -ContentType "application/json" -Uri $url -Body (ConvertTo-Json $body)

To Close:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12$header = @{    "Authorization"="GenieKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";    }$url="https://api.opsgenie.com/v2/alerts/testingjimmy/close?identifierType=alias"$body = @{    "user"="Jimmy";    "source"="TESTING JIMMY example alert message";    "note"="closed by script";    }Invoke-RestMethod -Method Post -ContentType "application/json" -Header $header -Uri $url -Body (ConvertTo-Json $body)
0 votes
Samir
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 17, 2019

Hi Andrew - It looks like you are passing the URL, and the Headers in the Close request. Could you try including a body in that request too, like you're doing in the Create request? Something similar to this:Alert_API.png

I tried, still same 422 Unprocessable Entity.  I also looked at the variable list for the body in closing the alerts, but they do not match what is required for the alert creation:

user, source and note are the body options for close.

Here is an additional error when I try to navigate to the destination through a browser:

{"code":406,"message":"Could not find acceptable representation","took":0.0,"requestId":"618268d4-efd3-4c34-8722-168a56e936d6"}

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events