アラーム管理オープン API 開発者ガイド

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む8読むのに数分
  • アラーム管理オープン API を使用して、イベント [em_event] テーブルのデータを作成および更新します。

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

    アラーム管理オープン API の拡張

    アラーム管理オープン API は、スクリプトインクルードを編集することによって拡張できます。

    これらのスクリプトインクルードは、変更の結果を理解した上でのみ編集する必要があります。
    • TMFAlarmAPIConstants:定数と必要なパラメーター情報が含まれています。
    • TMFAlarmAPIUtil:API 要求を処理する関数が含まれています。
    • AlarmAPIProcessorOOBTMFAlarmAPIUtil 内の関数をサポートするヘルパー関数が含まれています。
    • AlarmAPIProcessor:空のスクリプトインクルードファイル。このファイルを使用して、AlarmAPIProcessorOOB から上書きする関数を定義します。

    アラーム管理オープン API を拡張して、次のカスタマイズを行います。

    必要なパラメーター

    アラーム管理 API は、JSON スキーマを使用して必要なパラメータ情報を保持します。この JSON スキーマは、TMFAlarmAPIConstants スクリプトインクルードで定義されています。これらのスキーマを使用して、要求ペイロードが有効かどうかを検証します。これらのスキーマはスクリプトインクルード内で直接参照されず、AlarmAPIProcessorOOB スクリプトインクルード内の次のメソッドによって返されます。
    • getCreateEventSchema:イベントを作成するための検証スキーマを返します。
    • getClearEventSchema:イベントアラームをクリアするための検証スキーマを返します。
    • getPatchEventSchema:イベントをパッチ適用するための検証スキーマを返します。
    既存のスキーマを上書きするには、AlarmAPIProcessor スクリプトインクルードで新しいスキーマを定義し、AlarmAPIProcessorOOB スクリプトインクルードのメソッドを上書きします。
    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
    	// Define getCreateEventSchema here to override OOTB method in AlarmAPIProcessorOOB
    	getCreateEventSchema: function() {
    		return JSON.parse(AlarmAPIProcessor.CUSTOMIZED_SCHEMA);
    	},
        type: 'AlarmAPIProcessor'
    });
    
    // Define a new schema
    AlarmAPIProcessor.CUSTOMIZED_SCHEMA = "{\"title\":\"CreateAlarm\",\"type\":\"object\",
    \"properties\":{\"externalAlarmId\":{\"type\":\"string\"},\"alarmType\":{\"type\":\"string\"},
    \"perceivedSeverity\":{\"type\":\"string\"},\"probableCause\":{\"type\":\"string\"},
    \"alarmedObject\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},
    \"href\":{\"type\":\"string\"}},\"required\":[\"id\"]},\"sourceSystemId\":{\"type\":\"string\"}},
    \"required\":[\"externalAlarmId\",\"alarmType\",\"perceivedSeverity\",\"probableCause\",
    \"alarmedObject\",\"sourceSystemId\"]}";

    要求本文の検証

    要求本文で追加の検証を実行するには、AlarmAPIProcessorOOB スクリプトインクルード の次の関数を上書きします。これらの関数は、 TMFAlarmAPIUtil スクリプトインクルードで指定された関数によって呼び出されます。
    • verifyCreateEventPayload()processCreateEvent()によって呼び出されます。
    • verifyClearEventPayload()processClearEvent()によって呼び出されます。
    • verifyPatchEventPayload()processPatchEvent()によって呼び出されます。
    これらの関数はすべて、デフォルトで true を返します。ヘルパー関数が false を返すと、API 操作が停止します。
    カスタム検証を適用するには、AlarmAPIProcessor 内の同じ名前の関数名とパラメーターで、AlarmAPIProcessorOOB ヘルパー関数を上書きします。新しい AlarmAPIProcessor 関数が TMFAlarmAPIUtil によって呼び出され、デフォルトの AlarmAPIProcessorOOB ヘルパー関数を置き換えます。
    この例では、カスタムの AlarmAPIProcessor スクリプトインクルード内の関数が AlarmAPIProcessorOOB のデフォルト関数を上書きして、name 属性の検証を実行します。
    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
        verifyCreateEventPayload: function(eventPayload, apiResponseProcessor){
            // Returning false terminates the POST request
            // Make sure to assign error message and reason
            if (eventPayload.type != "unique") {
                apiResponseProcessor.setMessage("Failed");
                apiResponseProcessor.setReason("No reason needed");
                return false;
            }
        },
    	
        type: 'AlarmAPIProcessor'
    });

    追加の REST 操作

    既存の GET、PATCH、および POST 操作以外の操作を追加するには、アラーム管理オープン API のスクリプト化された REST リソースを追加で作成します 。新しいスクリプト化済み REST リソースのロジックは、既存の操作と一致する必要があります。新しい操作の関数は TMFAlarmAPIUtil で定義します。

    フィールドマッピング

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

    AlarmAPIProcessorOOB スクリプトインクルードには、PATCH または POST 要求の本文をイベント [em_event] テーブルのレコードにマッピングする次の関数が含まれています。
    • mapCreateAlarmObjectToEvent()
    • mapClearAlarmObjectToEvent()
    • mapPatchAlarmObjectToEvent()
    また、イベントの GlideRecord を GET、PATCH、または POST 要求の JSON 応答オブジェクトにマッピングする次の関数も含まれています。
    • modifyCreateEventResponse()
    • modifyClearEventResponse()
    • modifyPatchEventResponse()
    フィールドマッピングを使用して、追加のイベント [em_event] テーブルフィールドのデータを追加および取得したり、デフォルトのフィールドマッピングを変更したりできます。マッピングを操作するには、同じ名前とパラメーターを持つ関数を AlarmAPIProcessor 内に作成して、AlarmAPIProcessorOOB のマッピング関数を上書きします。TMFAlarmAPIUtilAlarmAPIProcessor 関数を使用して、デフォルトの AlarmAPIProcessorOOB ヘルパー関数を置き換えます。
    次の例では、2 つの AlarmAPIProcessor 関数が AlarmAPIProcessorOOB のデフォルト関数を上書きして、 タイプのマッピングを変更し、[重大度] フィールドのマッピングを追加します。
    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
        // Function name and parameters must be identical to the function it overrides
        mapCreateAlarmObjectToEvent: function(eventGr, eventObject){
            // Override default mapping for the severity field
            eventGr.severity = "High";
        },
    
        modifyCreateEventResponse: function(eventGr, eventObject){
            // Override default mapping for the type field
            eventGr.type = "Customized Event"; 
        },
    	
        type: 'AlarmAPIProcessor'
    });