Event Notification Management, Open API Developer Guide (en anglais seulement)
Utilisez l’API ouverte Event Notification Management pour créer, mettre à jour et supprimer des enregistrements d’événements dans la table Événements [em_event].
Ce guide développeur fournit des informations sur la façon d’étendre l’API ouverte Event Notification Management afin d’effectuer diverses personnalisations.
Extension de l’API ouverte Event Notification Management
Vous pouvez étendre et modifier la fonctionnalité de l’API ouverte Event Notification Management en modifiant les fichiers de script include associés.
- AlarmAPIProcessorOOB : contient des fonctions d’assistance qui prennent en charge les fonctions du script include TMFTopicEventAPIUtil . Pour plus d’informations sur le script include AlarmAPIProcessorOOB , consultez la Guide du développeur de l’API ouverte Alarm Managementsection .
- AlarmAPIProcessor : fichier de script include vide. Mettez à jour ce fichier pour définir toutes les fonctions que vous souhaitez remplacer dans le script include AlarmAPIProcessorOOB .
- JSONSchemaValidation : contient des fonctions pour gérer la validation des schémas pour la charge utile définie dans le script include TMFAlarmAPIConstants . Ce script include se trouve sous le module d’extension tmt_core.
- TMFAlarmAPIConstants : contient les constantes et les informations de paramètres requises. Il contient également les schémas des charges utiles transmises dans le point de terminaison Event Notification Management Open .
- TMFTopicEventAPIUtilOOB : contient des fonctions pour gérer les demandes d’API déclenchées par des flux de définition de déclencheur externes qui ont les actions
AlarmCreateNotification,AlarmChangeNotification,AlarmDeleteNotificationqui créent, mettent à jour et suppriment des événements. - TMFTopicEventAPIUtil : fichier de script include vide. Mettez à jour ce fichier pour définir toutes les fonctions que vous souhaitez remplacer dans le script include TMFTopicEventAPIUtilOOB .
Les sections suivantes fournissent des exemples de personnalisations que vous pouvez apporter au traitement de l’API ouverte Event Notification Management en étendant/modifiant ces fichiers de script include.
Paramètres requis
L’API Event Notification Management utilise des schémas JSON pour définir les paramètres requis. Ces schémas JSON sont définis dans le script include TMFAlarmAPIConstants . Ces schémas sont utilisés pour valider la validité des charges utiles des demandes. Ces schémas ne sont pas directement référencés dans les script includes, mais sont renvoyés par les fonctions suivantes dans le script include TMFTopicEventAPIUtilOOB :
- getAlarmCreateEventSchema() : renvoie le schéma de validation pour la création d’un événement.
- getAlarmDeleteEventSchema() : renvoie le schéma de validation pour la suppression d’une alarme d’événement.
- getAlarmChangeEventSchema() : renvoie le schéma de validation pour modifier les champs d’un événement.
Pour remplacer les schémas existants, définissez de nouveaux schémas dans le script include TMFTopicEventAPIUtilOOB et remplacez les fonctions du script include TMFTopicEventAPIUtil .
Par exemple :
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\"
]
}";
Validation du corps de la demande
Pour effectuer une validation supplémentaire sur le corps de la demande, remplacez les fonctions suivantes dans le script include TMFTopicEventAPIUtilOOB . Ces fonctions sont appelées par les fonctions spécifiées dans le même script include.
- verifyAlarmCreateEventPayload() : appelée par processAlarmCreateEvent().
- verifyAlarmDeleteEventPayload() : appelée par processAlarmDeleteEvent().
- verifyAlarmChangeEventPayload() : appelée par processAlarmChangeEvent().
Toutes ces fonctions renvoient un message de réussite par défaut. Si une fonction d’assistance renvoie une erreur, elle arrête le fonctionnement de l’API.
Pour appliquer des validations personnalisées, remplacez les fonctions d’assistance dans le script include TMFTopicEventAPIUtilOOB par des noms de fonctions et des paramètres identiques dans le script include TMFTopicEventAPIUtil .
Dans cet exemple, une fonction d’un script include TMFTopicEventAPIUtil personnalisé remplace la fonction par défaut du script include TMFTopicEventAPIUtilOOB pour effectuer la validation de l’attribut 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’
});Validation de l’abonnement au corps de la demande
Pour modifier la validation de l’abonnement au corps de la demande pour l’API, vous devez remplacer la fonction validateSubscription() dans le script include TMFTopicEventAPIUtilOOB . Cette fonction valide si l’URL de rappel que vous utilisez pour créer la notification d’événement est enregistrée et détermine si elle eventType est enregistrée pour le rappel déclenché. Cette fonction est appelée par les fonctions processAlarmCreateEvent(),processAlarmDeleteEvent() et processAlarmChangeEvent() qui se trouvent également dans le script include TMFTopicEventAPIUtilOOB .
Mappage de champs
Lors de la création ou de la mise à jour des enregistrements, l’API ouverte Event Notification Management mappe les paramètres de corps de demande aux champs d’enregistrement d’événement. Lors de la récupération des enregistrements, l’API mappe les champs d’enregistrement d’événements aux attributs d’objet de réponse.
Le script include TMFTopicEventAPIUtilOOB contient les fonctions suivantes qui mappent les demandes de modification, de création et de suppression, en fonction de la valeur du eventType paramètre, à un enregistrement dans la table Événement [em_event].
- mapAlarmChangeObjectToEvent()
- mapCreateAlarmObjectToEvent()
- mapDeleteAlarmObjectToEvent()