Event-Filter¶
L'API Event-Filter permet de consulter, créer et supprimer des règles d'enrichissement.
Pour plus d'informations sur ce qu'est une règle d'enrichissement, consulter la documentation du moteur Che.
Création d'une règle¶
Crée une nouvelle règle à partir du corps de la requête.
URL : /api/v2/eventfilter/rules
Méthode : POST
Authentification requise : Oui
Permissions requises : Aucune
Exemple de corps de requête :
{ "type": "enrichment", "pattern": { "component": "192.168.0.1" }, "actions": [ { "type": "set_field", "name": "Component", "value": "example.com" } ], "priority": 101, "on_success": "pass", "on_failure": "pass" }
Exemple de requête curl pour utilisateur root
avec mot de passe root
qui veut ajouter le JSON ci-dessus :
curl -X POST -u root:root -H "Content-Type: application/json" -d '{ "type": "enrichment", "pattern": { "component": "192.168.0.1" }, "actions": [ { "type": "set_field", "name": "Component", "value": "example.com" } ], "priority": 101, "on_success": "pass", "on_failure": "pass" }' 'http://<Canopsis_URL>/api/v2/eventfilter/rules'
Réponse en cas de réussite¶
Condition : la règle est créée
Code : 200 OK
Exemple du corps de la réponse :
{ "_id": "6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd" }
Réponse en cas d'erreur¶
Condition : Si le corps de la requête n'est pas valide.
Code : 400 BAD REQUEST
Exemple du corps de la réponse :
{ "name": "", "description": "Malformed JSON: Extra data: line 1 column 66 - line 1 column 275 (char 65 - 274)" }
Condition : Si une règle portant un _id
similaire existe déjà en base.
Code : 400 BAD REQUEST
Exemple du corps de la réponse :
{ "name": "", "description": "Operation failure while doing insert: E11000 duplicate key error collection: canopsis.eventfilter index: _id_ dup key: { : \"6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd\" }" }
Modification de Règle¶
Modifie une règle à partir du corps de la requête.
URL : /api/v2/eventfilter/rules/<rule_id>
Méthode : PUT
Authentification requise : Oui
Permissions requises : Aucune
Exemple de corps de requête :
{ "type": "enrichment", "pattern": { "component": "192.168.0.8" }, "actions": [ { "type": "set_field", "name": "Component", "value": "example.net" } ], "priority": 101, "on_success": "pass", "on_failure": "pass" }
Exemple de requête curl pour utilisateur root
avec mot de passe root
qui veut envoyer le JSON ci-dessus pour modifier la règle dont l'_id
vaut 6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd
:
curl -X PUT -u root:root -H "Content-Type: application/json" -d '{ "type": "enrichment", "pattern": { "component": "192.168.0.8" }, "actions": [ { "type": "set_field", "name": "Component", "value": "example.net" } ], "priority": 101, "on_success": "pass", "on_failure": "pass" }' 'http://<Canopsis_URL>/api/v2/eventfilter/rules/6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd'
Réponse en cas de réussite¶
Condition : la règle est modifiée
Code : 200 OK
Exemple du corps de la réponse :
{ }
Suppression de Règle¶
Supprime une règle en fonction de son id
.
URL : /api/v2/eventfilter/rules/<rule_id>
Méthode : DELETE
Authentification requise : Oui
Permissions requises : Aucune
Exemple de requête curl pour utilisateur root
avec mot de passe root
qui veut supprimer la règle avec l'id
6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd
:
curl -X DELETE -u root:root 'http://<Canopsis_URL>/api/v2/eventfilter/rules/6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd'
Réponse en cas de réussite¶
Condition : La suppression de la règle a réussi.
Code : 200 OK
Exemple du corps de la réponse :
{ }
Réponse en cas d'erreur¶
Condition : En cas d'absence de règle avec l'_id
dans la base de données.
Code : 400 BAD REQUEST
Exemple du corps de la réponse :
{ "name": "", "description": "No rule with id: 6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd" }
Récupération des règles¶
Récupère une ou plusieurs règles créées en base.
Récupération d'une règle par id¶
URL : /api/v2/eventfilter/rules/<rule_id>
Méthode : GET
Authentification requise : Oui
Permissions requises : Aucune
Exemple de requête curl pour utilisateur root
avec mot de passe root
pour récupérer la règle avec l'id
6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd
:
curl -X GET -u root:root 'http://<Canopsis_URL>/api/v2/eventfilter/rules/6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd'
Réponse en cas de réussite¶
Condition : Une règle correspondant à l'id
est trouvée.
Code : 200 OK
Exemple du corps de la réponse :
{ "pattern": { "component": "192.168.0.1" }, "actions": [{ "type": "set_field", "name": "Component", "value": "example.com" }], "priority": 101, "on_failure": "pass", "_id": "6dacc239-59e8-4ba9-b1d0-e9c08ab8eacd", "type": "enrichment", "on_success": "pass" }
Réponse en cas d'erreur¶
Condition : Aucune règle correspondant à l'id
n'est trouvée.
Code : 404 NOT FOUND
Exemple du corps de la réponse :
{ "name": "", "description": "No rule with id: 6dacc239-59e8-4ba9-b1d0-e9c08ab8ea444cd" }
Récupération de toutes les règles en base de données¶
Récupère toutes les règles stockées en base
URL : /api/v2/eventfilter/rules
Méthode : GET
Authentification requise : Oui
Permissions requises : Aucune
Exemple de requête curl pour utilisateur root
avec mot de passe root
pour récupérer toutes les règles :
curl -X GET -u root:root 'http://<Canopsis_URL>/api/v2/eventfilter/rules'
Réponse en cas de réussite¶
Condition : aucune.
Code : 200 OK
Exemple du corps de la réponse :
[{ "pattern": { "component": "192.168.0.1" }, "actions": [{ "type": "set_field", "name": "Component", "value": "example.com" }], "priority": 101, "on_failure": "pass", "_id": "4da620cd-5883-4952-8eac-b61f597fa622", "type": "enrichment", "on_success": "pass" }, { "pattern": { "component": "192.168.0.2" }, "actions": [{ "type": "set_field", "name": "Component", "value": "example2.com" }], "priority": 101, "on_failure": "pass", "_id": "f62b37c5-e301-4bfc-ba52-8ff2454cc0aa", "type": "enrichment", "on_success": "pass" }]