Governance & Audit > Resource Watcher > API V2ガイド

Resource WatcherにRESTful APIを呼び出して、イベントやリソースの状態変更に伴う通知を受けるように設定できます。

User Access Key & Secret Access Key

RESTful APIを使うためには、まず、User Access KeyとSecret Access Keyを発行する必要があります。
User Access KeyとSecret Access Keyは APIセキュリティ設定で発行できます。
コンソール右上のアカウントにマウスポインタを合わせると表示されるドロップダウンメニューからAPIセキュリティ設定を選択した後、User Access Key ID作成をクリックします。
セキュリティのため、User Access KeyとSecret Access Keyの両方を作成することを推奨します。

[図1] APIセキュリティ設定位置

[図1] APIセキュリティ設定位置

[図2] APIセキュリティ設定ページ

[図2] APIセキュリティ設定ページ

[図3] UserAccessKeyとSecretAccessKey作成

[図3] User Access KeyとSecret Access Key作成

Public API URL & Appkey確認

RESTful APIを使用するにはAppkeyが必要です。
コンソール右側のURL & Appkeyをクリックすると、発行されたキー情報を確認できます。 [図4] Public API URL & Appkey

[図4] URL & Appkey

RESTful APIガイド

Common Response Body

すべてのAPIリクエストに対してHTTPレスポンスコードは200でレスポンスします。
詳しいレスポンス結果はResponse Bodyのheader項目を参照してください。

Key Type Description
header Header レスポンスヘッダ
  • Header
Key Type Description
isSuccessful boolean 成否(true, false)
resultCode int レスポンスコード。成功時は0、失敗時はエラーコードを返す
resultMessage String レスポンスメッセージ。成功時は"SUCCESS"、失敗時はエラーメッセージを返す
{
  "header": {
    "isSuccessful": true,
    "resultCode": 0,
    "resultMessage": "SUCCESS"
  }
}

1. 通知

1.1通知を登録する

[基本情報]

Method URI
POST /resource-watcher/v2.0/appkeys/{appKey}/event-alarms
権限
ResourceWatcher:Alarms.Create

リソースで発生するイベントに対する通知を設定することができます。

  • 設定するイベント情報はAPIガイド > 3.1. Eventリスト照会APIのレスポンス結果を参照してください。
  • 通知対象にはメンバー、通知受信グループ、ロール、 Webフックタイプがあり、タイプごとに対象を設定できます。 リソース対象には リソースグループ/タグを設定できます。
  • イベント全体に設定すると、特定のリソースで発生するすべてのイベントに対して通知を受信するように設定できます。
  • リソース全体に設定すると、リソースに関係なく、特定のイベントの通知を受信するように設定できます。
  • イベント全体リソース全体は同時に設定できません。

[Request Header]

Key Value
X-TC-AUTHENTICATION-ID コンソールで発行されたUser Access Key
X-TC-AUTHENTICATION-SECRET コンソールで発行されたSecret Access Key

[Path Variable]

Key Value
appKey コンソールで発行されたAppkey

[Request Body]

Key Type Required Description
alarm Alarm Yes 通知情報
alarmTargets AlarmTarget[] Yes 通知受信対象情報
events Event[] No 通知対象イベントリスト
発生するすべてのイベントに対して受信を希望する場合は設定しない。
target Target No 対象リソース情報
リソースに関係なくイベントを受信したい場合は設定しない。
  • Alarm
Key Type Required Description
alarmName String Yes 通知名
最大255文字まで登録可能
description String No 通知説明
最大1,000文字まで登録可能
  • AlarmTarget
Key Type Required Description
alarmTargetTypeCode String Yes 通知対象タイプコード

<種類>
1. UUID:単一組織メンバー対象(NHN Cloud会員、 IAMメンバー)
2. ROLE:組織ロール、プロジェクトロールグループ、プロジェクトロール
3. ALARM_KEY:組織通知受信グループ、プロジェクト通知受信グループ
4. WEBHOOK: Webフック
alarmTarget String No 通知対象情報
<タイプ別設定値>
1. UUID:メンバーUUID
2. ROLE:役割ID(例: ADMIN)
3. ALARM_KEY:通知受信グループID
4. WEBHOOK:入力しない
emailAlarm String No メール受信有無
1. Y:メール受信
2. N:メールを受信しない
WEBHOOK, ALARM_KEYは入力しない
smsAlarm String No SMS受信有無
1. Y: SMS受信
2. N: SMSを受信しない
WEBHOOK, ALARM_KEYは入力しない
webhookUrl String No WebフックURLアドレス
http:// またはhttps://で始まる必要がある
通知対象タイプ WEBHOOK 設定時に入力
webhookSecret String No Webフック秘密鍵
通知対象タイプ WEBHOOK 設定時に入力
  • Event
Key Type Required Description
productId String Yes サービスID
eventId String Yes イベントID

productId, eventId値は APIガイド > 3.1 Eventリスト照会APIレスポンス値を参考してください。

  • Target
Key Type Required Description
resourceGroupIds String[] No リソースグループIDリスト
resourceTagIds Long[] No リソースタグIDリスト
  • 例:
{
  "alarm": {
    "alarmName": "",
    "description": ""
  },
  "alarmTargets": [
    {
      "alarmTarget": "",
      "alarmTargetTypeCode": "",
      "emailAlarm": "",
      "smsAlarm": "",
      "webhookSecret": "",
      "webhookUrl": ""
    }
  ],
  "events": [
    {
      "eventId": "",
      "productId": ""
    }
  ],
  "target": {
    "resourceGroupIds": [
      ""
    ],
    "resourceTagIds": [
      ""
    ]
  }
}

[Response Body]

1.2通知照会

[基本情報]

Method URI
GET /resource-watcher/v2.0/appkeys/{appKey}/event-alarms/{alarmId}
権限
ResourceWatcher:Alarms.Get

登録された通知について照会します。

[Request Header]

Key Value
X-TC-AUTHENTICATION-ID コンソールで発行されたUser Access Key
X-TC-AUTHENTICATION-SECRET コンソールで発行されたSecret Access Key

[Path Variable]

Key Value
appKey コンソールで発行されたAppkey
alarmId 照会する通知のID

[Response Body]

Key Type Description
alarm Alarm 通知情報
alarmTargetAlarmKeys AlarmTargetAlarmKey[] 通知受信対象ALARM_KEY情報リスト
alarmTargetMemberProfiles AlarmTargetMemberProfile[] 通知受信対象UUID情報リスト
alarmTargetRoles AlarmTargetRole[] 通知受信対象ROLEリスト
alarmTargets AlarmTarget[] 通知受信対象リスト
events Event[] 通知イベントリスト
target Target 対象リソース情報
  • Alarm
Key Type Description
alarmId String 通知ID
alarmName String 通知名
alarmRule AlarmRule 通知ルールの詳細情報
alarmStatusCode String 通知ステータスコード

<種類>
1. STABLE:有効
2. DISABLED:無効
3. CLOSED:削除
appKey String Appkey情報
cabAlarmKey String 通知受信グループID
delDatetime Date 削除日時
description String 通知の説明
modDatetime Date 修正日時
operatorUuid String 最終修正したユーザーUUID
regDatetime Date 登録日時
  • AlarmRule
Key Type Description
alarmRuleId String 通知ルールID
alarmRuleStatusCode String 通知ルールのステータスコード

<種類>
1. STABLE:有効
2. DISABLED:無効
3. CLOSED:削除
alarmRuleName String 通知ルールの名前
alarmRuleDescription String 通知ルールの説明
resourceTypes String[] 通知ルールが適用される対象リソースタイプコードリスト
空白の場合、全リソースタイプを対象とする
Stringタイプリスト
  • AlarmTargetAlarmKey
Key Type Description
alarmKey String 通知キー
alarmGroupName String 通知受信グループ名
alarmGroupDesc String 通知受信グループの説明
  • AlarmTargetMemberProfile
Key Type Description
uuid String メンバーUUID
memberType String メンバー区分

<種類>
1. TOAST_CLOUD
2. IAM
name String メンバー名
corporationName String 業者名
email String メンバーのメールアドレス
userId String メンバーID
  • AlarmTargetRole
Key Type Description
type String ロールタイプ
roleId String ロールID
roleName String ロール名
description String ロールの説明
  • AlarmTarget
Key Type Description
alarmTargetTypeCode String 通知対象タイプコード

<種類>
1. UUID:単一組織メンバー対象(NHN Cloud会員、 IAMメンバー)
2. ROLE:組織ロール、プロジェクトロールグループ、プロジェクトロール
3. ALARM_KEY:組織通知受信グループ、プロジェクト通知受信グループ
4. WEBHOOK: Webフック
alarmTarget String 通知対象情報
emailAlarm String メール受信の有無(Y, N)
smsAlarm string SMS受信の有無(Y, N)
webhookUrl string WebフックURLアドレス
webhookSecret string Webフック秘密鍵
  • Event
Key Type Description
productId String 商品ID
eventId String イベントID
  • Target
Key Type Description
resourceGroups ResourceGroup[] リソースグループリスト
resourceTags ResourceTag[] リソースタグリスト
  • ResourceGroup
Key Type Description
resourceGroupId String リソースグループIDリスト
resourceGroupName String リソースタグIDリスト
  • ResourceTag
Key Type Description
tagId Long リソースタグID
tagGroupId Long リソースタググループID
tagName String リソースタグ名
resourceTagTypeCode String リソースタグタイプコード(DEFAULT, NORMAL)
regDatetime Date リソースタグ登録日時
modDatetime Date リソースタグ修正日時
resourceTagGroup ResourceTagGroup リソースタググループ
  • ResourceTagGroup
Key Type Description
tagGroupId Long リソースタググループID
tagGroupKey String リソースタグキー
appKey String アプリキー
creationTypeCode String 作成タイプ(USER, SYSTEM)
regDatetime Date リソースタググループの登録日時
modDatetime Date リソースタググループの修正日時
  • 例:
{
  "header": {
    "isSuccessful": true,
    "resultCode": 0,
    "resultMessage": ""
  },
  "alarm": {
    "alarmId": "",
    "alarmName": "",
    "alarmRule": {
      "alarmRuleDescription": "",
      "alarmRuleId": "",
      "alarmRuleName": "",
      "alarmRuleStatusCode": "",
      "resourceTypes": [
        ""
      ]
    },
    "alarmStatusCode": "",
    "appKey": "",
    "cabAlarmKey": "",
    "delDatetime": "yyyy-MM-ddTHH:mm:SS",
    "description": "",
    "modDatetime": "yyyy-MM-ddTHH:mm:SS",
    "operatorUuid": "",
    "regDatetime": "yyyy-MM-ddTHH:mm:SS"
  },
  "alarmTargetAlarmKeys": [
    {
      "alarmGroupDesc": "",
      "alarmGroupName": "",
      "alarmKey": ""
    }
  ],
  "alarmTargetMemberProfiles": [
    {
      "corporationName": "",
      "email": "",
      "memberType": "",
      "name": "",
      "userId": "",
      "uuid": ""
    }
  ],
  "alarmTargetRoles": [
    {
      "description": "",
      "roleId": "",
      "roleName": "",
      "type": ""
    }
  ],
  "alarmTargets": [
    {
      "alarmTarget": "",
      "alarmTargetTypeCode": "",
      "emailAlarm": "",
      "smsAlarm": "",
      "webhookSecret": "",
      "webhookUrl": ""
    }
  ],
  "events": [
    {
      "eventId": "",
      "productId": ""
    }
  ],
  "target": {
    "resourceGroups": [
      {
        "resourceGroupId": "",
        "resourceGroupName": ""
      }
    ],
    "resourceTags": [
      {
        "tagId": 0,
        "tagGroupId" : 0,
        "tagName": "",
        "resourceTagTypeCode" : "",
        "regDatetime": "yyyy-MM-ddTHH:mm:SS",
        "modDatetime": "yyyy-MM-ddTHH:mm:SS",
        "resourceTagGroup" : {
            "tagGroupId": 0,
            "tagGroupKey": "",
            "appKey": "",
            "creationTypeCode": "",
            "regDatetime": "yyyy-MM-ddTHH:mm:SS",
            "modDatetime": "yyyy-MM-ddTHH:mm:SS"
        }
      }
    ]
  }
}

1.3通知リスト照会

[基本情報]

Method URI
POST /resource-watcher/v2.0/appkeys/{appKey}/event-alarms/search
権限
ResourceWatcher:Alarms.List

登録したイベント通知リストを照会します。 - リクエストに検索条件を指定して、目的の通知リストを照会できます。 - ページングをサポートします。

[Request Header]

Key Value
X-TC-AUTHENTICATION-ID コンソールで発行されたUser Access Key
X-TC-AUTHENTICATION-SECRET コンソールで発行されたSecret Access Key

[Path Variable]

Key Value
appKey コンソールで発行されたAppkey

[Query Parameter]

Key Value Required
page 照会するページ番号
Default値: 0
No
size 照会する通知数
Default値: 10
No
sort ソート対象および方式
Default値: modDatetime, DESC
No

[Request Body]

Key Type Required Description
alarmIds String[] No 通知IDリスト
Stringタイプリスト
alarmNameAnyLike String No 通知名(入力値を含むすべての通知の検索)
alarmRuleIds String[] No 通知ルールIDリスト
Stringタイプリスト
alarmStatusCodes String[] No 通知状の態
Stringタイプリスト
Default値: STABLE, DISABLED

<種類>
1. STABLE:有効
2. DISABLED:無効
3. CLOSED:削除
descriptionAnyLike String No 通知の説明(入力値を含むすべての通知の検索)
modDateFrom Date No 最終更新日時の開始
modDateTo Date No 最終更新日時の終了
operatorUuids String[] No 最終修正者UUIDリスト
Stringタイプリスト
resourceGroupIds String[] No リソースグループリスト
Stringタイプリスト
{
  "alarmIds": [
    ""
  ],
  "alarmNameAnyLike": "",
  "alarmRuleIds": [
    ""
  ],
  "alarmStatusCodes": [
    ""
  ],
  "descriptionAnyLike": "",
  "modDateFrom": "yyyy-MM-ddTHH:mm:SS",
  "modDateTo": "yyyy-MM-ddTHH:mm:SS",
  "operatorUuids": [
    ""
  ],
  "resourceGroupIds": [
    ""
  ]
}

[Response Body]

Key Type Description
alarms Alarm[] 通知リスト
totalItems Long 全体数
  • Alarm
Key Type Description
alarmId String 通知ID
alarmName String 通知名
alarmRule AlarmRule 通知ルールの詳細情報
alarmStatusCode String 通知ステータスコード

<種類>
1. STABLE:有効
2. DISABLED:無効
3. CLOSED:削除
appKey String Appkey情報
cabAlarmKey String 通知受信グループID
description String 通知の説明
operatorUuid String 最終修正したユーザーUUID
delDatetime Date 削除日時
modDatetime Date 修正日時
regDatetime Date 登録日時
  • AlarmRule
Key Type Description
alarmRuleId String 通知ルールID
alarmRuleStatusCode String 通知ルールステータスコード

<種類>
1. STABLE:有効
2. DISABLED:無効
3. CLOSED:削除
alarmRuleName String 通知ルール名
alarmRuleDescription String 通知ルールの説明
resourceTypes String[] 通知ルールが適用される対象リソースタイプのコードリスト
空白の場合、全リソースタイプを対象とする
Stringタイプリスト
  • 例:
{
  "header": {
    "isSuccessful": true,
    "resultCode": 0,
    "resultMessage": ""
  },
  "alarms": [
    {
      "alarmId": "",
      "alarmName": "",
      "alarmRule": {
        "alarmRuleDescription": "",
        "alarmRuleId": "",
        "alarmRuleName": "",
        "alarmRuleStatusCode": "",
        "resourceTypes": [
          ""
        ]
      },
      "alarmStatusCode": "",
      "appKey": "",
      "cabAlarmKey": "",
      "delDatetime": "yyyy-MM-ddTHH:mm:SS",
      "description": "",
      "modDatetime": "yyyy-MM-ddTHH:mm:SS",
      "operatorUuid": "",
      "regDatetime": "yyyy-MM-ddTHH:mm:SS"
    }
  ],
  "totalItems": 0
}

1.4.通知の修正

[基本情報]

Method URI
PUT /resource-watcher/v1.0/appkeys/{appKey}/event-alarms/{alarmId}
権限
ResourceWatcher:Alarms.Update

登録された通知を修正します。 - リクエストした内容を全て変更するため、変更がない内容も既存の設定値を送信する必要があります

[Request Header]

Key Value
X-TC-AUTHENTICATION-ID コンソールで発行されたUser Access Key
X-TC-AUTHENTICATION-SECRET コンソールで発行されたSecret Access Key

[Path Variable]

Key Value
appKey コンソールで発行されたAppkey
alarmId 修正する通知のID

[Request Body]

1.5. 通知の削除

[基本情報]

Method URI
DELETE /resource-watcher/v2.0/appkeys/{appKey}/event-alarms/{alarmId}
権限
ResourceWatcher:Alarms.Delete

登録された通知を削除します。

[Request Header]

Key Value
X-TC-AUTHENTICATION-ID コンソールで発行されたUser Access Key
X-TC-AUTHENTICATION-SECRET コンソールで発行されたSecret Access Key

[Path Variable]

Key Value
appKey コンソールで発行されたAppkey
alarmId 削除する通知のID

[Response Body]

1.6. 複数の通知を削除

[基本情報]

Method URI
DELETE /resource-watcher/v2.0/appkeys/{appKey}/event-alarms
権限
ResourceWatcher:Alarms.Delete

登録された通知を複数削除します。

[Request Header]

Key Value
X-TC-AUTHENTICATION-ID コンソールで発行されたUser Access Key
X-TC-AUTHENTICATION-SECRET コンソールで発行されたSecret Access Key

[Path Variable]

Key Value
appKey コンソールで発行されたAppkey

[Query Parameter]

Key Value Required
alarmIds 削除する通知IDのリスト
必ず1つ以上の値を入力する必要があります。
Yes

[Response Body]

TOP