The policiesSearch query allows you to paginate through all of your alert policies per account. It also allows some filtering functionality on the account policies.
Here's an example:
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
policiesSearch{
policies{
id
name
incidentPreference
}
}
}
}
}
}
In order to paginate through your policies, you must request the nextCursor field on your initial query.
With cursor pagination, you continue to make a request through the result set until the nextCursor that is returned from the response comes back empty. This signifies that you reached the end of your results.
Here's an example:
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
policiesSearch{
nextCursor
policies{
id
name
incidentPreference
}
totalCount
}
}
}
}
}
The code above returns a set of results like this:
The API allows policy queries by name. Use name for matching by exact names or nameLike for a partial match. Both search criteria are case insensitive. This will only return the information for the policies that match the name supplied.
In this example, we want to find policies with DevOps in the name:
In order to create a policy, supply a name and an incidentPreference.
The incident preference will configure how incidents get created for each condition created in the policy. For more information, refer to the documentation about choosing your incident preference.
When you update a policy, note that you don't need to supply all of the attributes on the policy. For example, you only need to supply the name if you only intend to update the name:
mutation{
alertsPolicyUpdate(
accountId:YOUR_ACCOUNT_ID
id:YOUR_POLICY_ID
policy:{name:"Updated Policy Name"}
){
id
name
incidentPreference
}
}
Delete a policy
You can delete policies via the NerdGraph API. Note that only the id may be requested back from a deleted resource: