イベント通知管理オープン API 開発者ガイド

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:10分
  • イベント通知管理オープン API を使用して、イベント [em_event] テーブルのイベントレコードを作成、更新、および削除します。

    この開発者ガイドでは、 イベント通知管理オープン API を拡張してさまざまなカスタマイズを行う方法について説明します。

    イベント通知管理オープン API の拡張

    関連するスクリプトインクルードファイルを編集することで、 イベント通知管理オープン API の機能を拡張および変更できます。

    以下は、API に渡されたイベント 通知要求を処理するためにイベント通知管理オープン API が使用するスクリプトインクルードです。
    • AlarmAPIProcessorOOB: TMFTopicEventAPIUtil スクリプトインクルードの関数をサポートするヘルパー関数が含まれています。AlarmAPIProcessorOOB スクリプトインクルードの詳細については、アラーム管理オープン API 開発者ガイドを参照してください。
    • AlarmAPIProcessor:空のスクリプトインクルードファイル。このファイルを更新して、 AlarmAPIProcessorOOB スクリプトインクルードで上書きする関数を定義します。
    • JSONSchemaValidation: TMFAlarmAPIConstants スクリプトインクルードで定義されたペイロードのスキーマの検証を処理する関数が含まれています。このスクリプトインクルードは tmt_core プラグインの下にあります。
    • TMFAlarmAPIConstants:定数と必要なパラメーター情報が含まれています。また、 Event Notification Management Open エンドポイントで渡されるペイロードのスキーマも含まれています。
    • TMFTopicEventAPIUtilOOB:イベントを作成、更新、削除するアクション AlarmCreateNotificationAlarmChangeNotificationAlarmDeleteNotification を持つ外部トリガー定義フローによってトリガーされる API 要求を処理する関数が含まれています。
    • TMFTopicEventAPIUtil:空のスクリプトインクルードファイル。このファイルを更新して、 TMFTopicEventAPIUtilOOB スクリプトインクルードで上書きする関数を定義します。

    次のセクションでは、これらのスクリプトインクルードファイルを拡張/変更することによって 、イベント通知管理オープン API 処理に加えることができるカスタマイズの例を示します。

    必須パラメーター

    イベント通知管理 API は、JSON スキーマを利用して必須パラメーターを定義します。この JSON スキーマは、TMFAlarmAPIConstants スクリプトインクルードで定義されています。これらのスキーマを使用して、要求ペイロードが有効かどうかを検証します。これらのスキーマは、スクリプトインクルードでは直接参照されませんが、 TMFTopicEventAPIUtilOOB スクリプトインクルードの次の関数によって返されます。

    • getAlarmCreateEventSchema():イベントを作成するための検証スキーマを返します。
    • getAlarmDeleteEventSchema():イベントアラームを削除するための検証スキーマを返します。
    • getAlarmChangeEventSchema():イベント内のフィールドを変更するための検証スキーマを返します。

    既存のスキーマを上書きするには、 TMFTopicEventAPIUtilOOB スクリプトインクルードで新しいスキーマを定義し、 TMFTopicEventAPIUtil スクリプトインクルード関数を上書きします。

    たとえば、次のようになります。

    var TMFTopicEventAPIUtil = Class.create();
    TMFTopicEventAPIUtil.prototype = Object.extendsObject(TMFTopicEventAPIUtilOOB, {
    	// Define overriding functions here	
    	// Define getAlarmCreateEventSchema here to override OOTB function in TMFTopicEventAPIUtilOOB
    	getAlarmCreateEventSchema: function() {
    		return JSON.parse(TMFTopicEventAPIUtil.CUSTOMIZED_SCHEMA);
    	},
        type: ‘TMFTopicEventAPIUtil’
    });
    
    // New schema
    TMFTopicEventAPIUtil.CUSTOMIZED_SCHEMA = "{
      \"title\":\"AlarmCreateEvent\",
      \"type\":\"object\",
      \"properties\":{
        \"event\":{
          \"type\":\"object\",
          \"properties\":{
            \"alarm\":{
              \"type\":\"object\",
              \"properties\":{
                \"id\":{
                  \"type\":\"string\"
                },
                \"href\":{
                  \"type\":\"string\"
                },
                \"externalAlarmId\":{
                  \"type\":\"string\"
                },
                \"alarmType\":{
                  \"type\":\"string\"
                },
                \"perceivedSeverity\":{
                  \"type\":\"string\"
                },
                \"probableCause\":{
                  \"type\":\"string\"
                },
                \"alarmedObject\":{
                  \"type\":\"object\",
                  \"properties\":{
                    \"id\":{
                      \"type\":\"string\"
                    },
                    \"href\":{
                      \"type\":\"string\"
                    }
                  },
                  \"required\":[
                    \"id\"
                  ]
                },
                \"crossedThresholdInformation\":{
                  \"type\":\"object\",
                  \"properties\":{
                    \"thresholdId\":{
                      \"type\":\"string\"
                    }
                  },
                  \"required\":[
                    \"thresholdId\"
                  ]
                },
                \"affectedService\":{
                  \"type\":\"array\",
                  \"properties\":{
                    \"id\":{
                      \"type\":\"string\"
                    },
                    \"href\":{
                      \"type\":\"string\"
                    }
                  },
                  \"items\":{
                    \"type\":\"object\",
                    \"required\":[
                      \"id\"
                    ]
                  }
                },
                \"sourceSystemId\":{
                  \"type\":\"string\"
                },
                \"specificProblem\":{
                  \"type\":\"string\"
                }
              },
              \"required\":[
                \"externalAlarmId\",\"alarmType\",\"perceivedSeverity\",\"probableCause\",\"sourceSystemId\",\"alarmedObject\"
              ]
            }
          },
          \"required\":[
            \"alarm\"
          ]
        }
      },
      \"required\":[
        \"event\"
      ]
    }";

    要求本文の検証

    要求本文で追加の検証を実行するには、 TMFTopicEventAPIUtilOOB スクリプトインクルードで次の関数を上書きします。これらの関数は、同じスクリプトインクルード内の指定された関数によって呼び出されます。

    • verifyAlarmCreateEventPayload():processAlarmCreateEvent() によって呼び出されます。
    • verifyAlarmDeleteEventPayload():processAlarmDeleteEvent() によって呼び出されます。
    • verifyAlarmChangeEventPayload():processAlarmChangeEvent() によって呼び出されます。

    これらの関数はすべて、デフォルトで成功を返します。ヘルパー関数がエラーを返すと、API 操作が停止します。

    カスタム検証を適用するには、 TMFTopicEventAPIUtilOOB スクリプトインクルードのヘルパー関数を、 TMFTopicEventAPIUtil スクリプトインクルードの同じ関数名とパラメーターでオーバーライドします。

    この例では、カスタム TMFTopicEventAPIUtil スクリプトインクルードの関数が TMFTopicEventAPIUtilOOB スクリプトインクルードのデフォルト関数をオーバーライドして、name 属性の検証を実行します。

    var TMFTopicEventAPIUtil = Class.create();
    TMFTopicEventAPIUtil.prototype = Object.extendsObject(TMFTopicEventAPIUtilOOB, {
    
        // Define overriding functions here
        verifyAlarmCreateEventPayload: function(eventPayload,responseObject){
    
            // Returning error status terminates the POST request
            // Make sure to assign error message and reason
            if (eventPayload.type != "unique") {
                responseObject.setMessage("Failed");
                responseObject.setReason("No reason needed");
                return responseObject.status = “error”;
            }
        },
    	
        type: ‘TMFTopicEventAPIUtil’
    });

    要求本文のサブスクリプション検証

    API の要求本文のサブスクリプション検証を変更するには、TMFTopicEventAPIUtilOOB スクリプトインクルードで validateSubscription() 関数をオーバーライドする必要があります。この関数は、イベント通知の作成に使用している callbackURL が登録されているかどうかを検証し、発生したコールバックに eventType が登録されているかどうかを判断します。この関数は、TMFTopicEventAPIUtilOOB スクリプトインクルードにもある processAlarmCreateEvent()、processAlarmDeleteEvent()、および processAlarmChangeEvent() 関数によって呼び出されます。

    フィールドマッピング

    レコードを作成または更新するときに、 イベント通知管理オープン API は要求本文パラメーターをイベントレコードフィールドにマッピングします。レコードを取得する際、API はイベントレコードフィールドを応答オブジェクト属性にマッピングします。

    TMFTopicEventAPIUtilOOB スクリプトインクルードには、eventType パラメーターの値に基づいて変更要求、作成要求、および削除要求をイベント [em_event] テーブルのレコードにマッピングする次の関数が含まれています。

    • mapAlarmChangeObjectToEvent()
    • マップCreateアラームオブジェクトToEvent()
    • マップDeleteアラームオブジェクトからイベントへ()
    フィールドマッピングをカスタマイズすると、イベント [em_event] テーブルの他のフィールドに対してデータを追加・取得したり、デフォルトのフィールドマッピングを変更したりすることが可能です。マッピングを操作するには、 TMFTopicEventAPIUtil で同じ名前とパラメーターを持つ関数を作成して、 TMFTopicEventAPIUtilOOB マッピング関数をオーバーライドします。