NerdGraphAPIを使用してアラートポリシーを管理できます。
ヒント
NerdGraphおよびNerdGraphエクスプローラーの使用を開始するためのヘルプについては、 NerdGraphの概要を参照してください。
ポリシーの一覧表示とフィルタリング
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
}
}