アラートポリシーは、GraphQL NerdGraph APIを使って管理することができます。ここでは、 NerdGraph API explorer で開発できるいくつかのクエリとミューテーションを紹介します。
ポリシーの一覧表示とフィルタリング
policiesSearch
クエリを使うと、アカウントごとにすべてのポリシーをページングすることができます。また、アカウントのポリシーに対するフィルタリング機能もあります。
次の例を見てみましょう。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
policiesSearch {
policies {
id
name
incidentPreference
}
}
}
}
}
}
ポリシーをページネーションするためには、最初のクエリで nextCursor
フィールドをリクエストする必要があります。
カーソルページネーションでは、レスポンスから返される nextCursor
が空になるまで、結果セットを介してリクエストを続けます。これは、結果の最後に到達したことを意味します。
次の例を見てみましょう。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
policiesSearch {
nextCursor
policies {
id
name
incidentPreference
}
totalCount
}
}
}
}
}
上のコードは、次のような結果のセットを返します。
"nextCursor": "/8o0y2qiR54m6thkdgHgwg==:jZTXDFKbTkhKwvMx+CtsPVM=",
"incidentPreference": "PER_POLICY",
"name": "First Policy Name"
"incidentPreference": "PER_POLICY",
// ... more policies here in reality
そのため、その後のリクエストでは、カーソルが空になるまで、このようにカーソルを提供します。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
policiesSearch(cursor: "/8o0y2qiR54m6thkdgHgwg==:jZTXDFKbTkhKwvMx+CtsPVM=") {
nextCursor
policies {
id
name
incidentPreference
}
totalCount
}
}
}
}
}
このAPIでは、IDのサブセレクトによるポリシークエリが可能です。これは、あなたが提供したこれらのポリシーの情報のみを返します。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
policiesSearch(searchCriteria: {
ids: [A_POLICY_ID, ANOTHER_POLICY_ID]
}) {
policies {
id
name
incidentPreference
}
}
}
}
}
}
APIでは、名前によるポリシークエリが可能です。完全な名前でのマッチングには name
を、部分的なマッチングには nameLike
を使用します。どちらの検索条件も大文字小文字を区別しません。これにより、指定した名前にマッチするポリシーの情報のみが返されます。
この例では、名前に「"DevOps" 」が含まれるポリシーを探します。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
policiesSearch(searchCriteria: {
nameLike: "DevOps"
}) {
policies {
id
name
}
}
}
}
}
}
APIでは、ポリシーIDでの検索が可能です。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
policy(id: YOUR_POLICY_ID) {
id
name
incidentPreference
}
}
}
}
}
ポリシーの作成
ポリシーを作成するには、名前と incidentPreference
を指定します。
インシデントの優先順位は、ポリシーで作成された各条件に対してインシデントがどのように作成されるかを設定します。詳細については、 インシデント設定の選択 に関するドキュメントを参照してください。
mutation {
alertsPolicyCreate(accountId: YOUR_ACCOUNT_ID, policy: {
name: "Your Policy Name"
incidentPreference: PER_CONDITION
}) {
id
name
incidentPreference
}
}
ポリシーの更新
ポリシーを更新する際には、ポリシーのすべての属性を指定する必要はないことに注意してください。例えば、名前だけを更新する場合は、名前だけを指定する必要があります。
mutation {
alertsPolicyUpdate(accountId: YOUR_ACCOUNT_ID, id: YOUR_POLICY_ID, policy: {
name: "Updated Policy Name"
}) {
id
name
incidentPreference
}
}
ポリシーを削除する
ポリシーの削除は NerdGraph API で行うことができる。なお、削除されたリソースからは、idのみを要求することができます。
mutation {
alertsPolicyDelete(accountId: YOUR_ACCOUNT_ID, id: YOUR_POLICY_ID) {
id
}
}