Événements¶
Covage met à disposition des événements sous la forme de documents ayant chacun un identifiant unique, un type, des données génériques et des données spécifiques.
Ces événements peuvent concerner des commandes (order
) ou des services (service
) et peuvent être récupérés de façon globale, sur un type d'objet ou sur un objet en particulier.
Champs d'un événement¶
Nom du champ |
Type |
Description |
---|---|---|
model |
string |
|
event_uuid |
string |
Identifiant de l'événement |
type |
string |
Type de l'événement |
object_type |
string |
Type de l'objet concerné par l'événement |
object_uuid |
string |
Identifiant de l'objet concerné par l'événement |
creation_date |
ISO Datetime |
Date et heure de création de l'objet |
modification_date |
ISO Datetime |
Date et heure de dernière modification de l'objet |
event_date |
ISO Datetime |
Date et heure de l'événement de l'objet |
data |
dictionnaire |
Données spécifiques au type de l'événement |
Exemple :
{
"event_uuid": "olub9zkm",
"type": "order-running",
"object_type": "order",
"object_alias": "O191128_31846",
"object_uuid": "6c293bdc-9a79-4a94-9331-452de9a7db4e",
"event_date": "2019-11-28T11:00:31.315356Z",
"data": {},
"creation_date": "2019-11-28T11:00:31.315589Z",
}
Lister les événements¶
Lister les événements peut être utile pour plusieurs raisons :
Mettre à jour votre système d'information en récupérant régulièrement les nouveaux événements afin d'être tenu informé de l'avancement de toutes vos commandes et des événements sur vos services,
Déclencher les interventions humaines de votre équipe de support lorsque cela s'avère nécessaire,
Afficher l'historique d'une commande ou d'un service sur votre backoffice.
Note
L'url /api/events/
supporte la pagination, ce qui vous permet de récupérer les événements bloc par bloc.
Note
Vous ne devriez pas récupérer les nouveaux événements plus d'une fois toutes les trente secondes. Les requêtes d'API trop fréquentes peuvent entrainer des blocages temporaires.
Se tenir à jour de tous les événement vous concernant¶
Par défault, l'URL /api/events/
renvoie tous les événements vous concernant en les triant par event_date
décroissante.
En triant les résultats grace au paramètre ?sort=creation_date
vous pouvez les trier par event_date
croissante et récupérer en premier les plus anciens. En préfixant le paramètre sort
par le caractère -
, vous pouvez inverser l'ordre du tri.
Vous pourrez ensuite prendre le champ sort_value
du dernier élément de la liste et faire un appel à la même url en y ajoutant le paramètre after={sort_value}
, l'API vous renverra les événements dont la date de création est postérieure à celle de votre dernier événement. Lorsque le résultat de l'appel vous renverra une liste vide, vous pouvez attendre quelques minutes et recommencer pour récupérer les événements créés depuis le dernier appel.
Requête :
GET /api/events/?sort=-event_date&limit=2 HTTP/1.1
Host: extranet.kosc-telecom.fr
Réponse :
HTTP/1.1 200 OK
Content-Type: application/json
[{
"model": "event",
"creation_date": "2017-05-09T15:58:59.011698",
"modification_date": "2017-05-09T15:58:59.011698",
"sort_value": "WyIyMDE3LTA1LTA5VDE2OjAxOjA0LjYzNzc2NiJd",
"event_uuid": "lrgecnfi",
"type": "order-running",
"object_type": "order",
"object_uuid": "1i0cvu4c",
"event_date": "2017-05-09T16:01:04.637766",
"data": null
},
{
"model": "event",
"creation_date": "2017-05-09T15:57:59.311887",
"modification_date": "2017-05-09T15:57:59.311887",
"sort_value": "WyIyMDE3LTA1LTA5VDE1OjU3OjU5LjU3MzM5MyJd",
"event_uuid": "109ao75u",
"type": "order-running",
"object_type": "order",
"object_uuid": "9h3gy2i9",
"event_date": "2017-05-09T15:57:59.573393",
"data": null
}
]
Note
Attention, il est important de classer les résultat par creation_date
et non par event_date
. Certains prestataires pourraient fournir des événements avec un délai, ce qui engendrerait la perte d'un événement par votre système d'information.
Lister les événements sur un objet en particulier¶
Vous avez la possibilité de filtrer les événements sur un type d'objet (order
our service
) en ajoutant le paramètre ?object_type={object_type}
à votre requête.
Vous pouvez filtrer les résultats sur une commande ou un service en particulier en ajoutant son identifiant aux paramètres : object_uuid={object_uuid}
.
Requête :
GET /api/events/?object_type=order&object_uuid=e73cafe9-4785-441e-ab75-22ffa806a313&limit=2 HTTP/1.1
Host: extranet.kosc-telecom.fr
Réponse :
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"model": "event",
"creation_date": "2017-05-09T15:57:59.311887",
"modification_date": "2017-05-09T15:57:59.311887",
"sort_value": "WyIyMDE3LTA1LTA5VDE1OjU3OjU5LjMxMTg4NyJd",
"event_uuid": "109ao75u",
"type": "order-running",
"object_type": "order",
"object_uuid": "e73cafe9-4785-441e-ab75-22ffa806a313",
"event_date": "2017-05-09T15:57:59.573393",
"data": null
},
{
"model": "event",
"creation_date": "2017-05-09T13:51:16.972576",
"modification_date": "2017-05-09T13:51:16.972576",
"sort_value": "WyIyMDE3LTA1LTA5VDEzOjUxOjE2Ljk3MjU3NiJd",
"event_uuid": "zk5c0whk",
"type": "order-submitted",
"object_type": "order",
"object_uuid": "e73cafe9-4785-441e-ab75-22ffa806a313",
"event_date": "2017-05-09T13:51:16.400666",
"data": null
}
]
Récupérer un événement¶
Pour récupérer un événement, il faut effectuer un GET
sur l'url /api/events/{event_uuid}/
.
Requête :
GET /api/events/3cpkp1f1/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Réponse :
HTTP/1.1 200 OK
Content-Type: application/json
{
"model": "event",
"creation_date": "2017-05-09T15:59:55.669742",
"modification_date": "2017-05-09T15:59:55.669742",
"event_uuid": "3cpkp1f1",
"type": "order-running",
"object_type": "order",
"object_uuid": "1i0cvu4c",
"event_date": "2017-05-09T16:01:06.196355",
"data": null
}
Liste d'événements¶
Lorsque la famille n'est pas précisée, l'événement est susceptible de s'appliquer à toutes les commandes.
Nom |
Familles |
---|---|
order-dropped (*) |
|
A/S/M |
|
A/S/M |
|
A/S/M |
|
A/S/M |
|
A/S/M |
|
A/S/M |
|
A/S/M |
|
A/S/M |
|
A/S/M |
|
F |
|
F |
|
F |
Événements sur un order
¶
order-submitted¶
La commande a été soumise avec succès.
{
"kosc_order_ref": "O170331_12004"
}
order-acknowledged¶
La commande a été validée par Covage.
order-running¶
La commande est en cours de traitement.
order-completed¶
La commande a été finalisée avec succès.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
endpoints |
liste de dictionnaires |
Liste des |
service_uuid |
string |
Identifiant technique du service créé |
service_alias |
string |
Référence du service créé (appelé aussi |
order-on-site-intervention-succeeded¶
L'intervention sur site est un succès.
Les données disponibles dans le champ data
sont les suivantes :
Field name |
Type |
Description |
---|---|---|
message |
string |
Message du provider |
Exemple :
{
"message": "Lorem ipsum ..."
}
order-on-site-intervention-failed¶
L'intervention sur site est un échec.
Les données disponibles dans le champ data
sont les suivantes :
Field name |
Type |
Description |
---|---|---|
message |
string |
Message du provider |
Exemple :
{
"message": "Lorem ipsum ..."
}
order-appointment-deferred¶
L'intervention sur site a été repoussée.
Les données disponibles dans le champ data
sont les suivantes :
Field name |
Type |
Description |
---|---|---|
message |
string |
Message du provider |
Exemple :
{
"message": "Lorem ipsum ..."
}
order-rejected¶
La commande a été rejetée par un fournisseur.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
reject_reason |
string |
Raison du rejet |
reject_code |
string |
Code de rejet |
reject_subcode |
string |
Sous-code de rejet |
reject_description |
string |
Description du rejet |
Exemple :
{
"reject_reason": "ar_ko",
"reject_code": "CDE_ANNUL",
"reject_subcode": "CLI003",
"reject_description": null
}
order-cancelled¶
La commande a été annulée à votre demande.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
reason |
string |
Raison pour laquelle la commande a été annulée |
Exemple :
{
"reason": "sensible access"
}
order-appointment-agreed¶
L'opérateur de boucle locale et le client final ont fixé un rendez-vous.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
start_date |
ISO Datetime |
Date et heure du début du créneau horaire |
end_date |
ISO Datetime |
Date et heure de fin du créneau horaire (nulle sur fibre) |
Exemple :
{
"start_date": "2017-04-22T10:00:00.459593",
"end_date": "2017-04-22T12:00:00.459593"
}
order-localloop-desaturation-planned¶
La désaturation de la boucle locale a été planifiée.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
desaturation_type |
ISO Datetime |
Type de désaturation ( |
Exemple :
{
"desaturation_type": "LL_FREE_DESAT"
}
order-info¶
Message d'information sous la forme de texte.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
message |
string |
Message d'information |
Exemple :
{
"message": "Lorem ipsum ..."
}
Exemple de création d'un événement de type order-info
pour une commande,
afin de pouvoir créer un événement, il faut faire partie soit du groupe 'admin' soit du groupe 'delivery'
où {{order_uuid}} est l'uuid de la commande sur laquelle vous voulez créer l'événement:
POST /api/v2/orders/{{order_uuid}}/events/info
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"message":"Hello there"
}
Attention : Vous devez attendre 5 minutes avant de pouvoir de nouveaux créer un événement sur une commande Sinon, la requête sera bloqué.
order-info (stop_deferred)¶
Message d'information sous la forme de texte.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
message |
string |
Message d'information |
stop_deferred |
bool |
Boolean permetant de mettre fin au deferred (sous condition) |
Exemple :
POST /api/v2/orders/{{order_uuid}}/events/info
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"message": "Votre message pour avoir résolu le problème en cours",
"stop_deferred": true
}
Attention : Vous devez attendre 5 minutes avant de pouvoir de nouveaux créer un événement sur une commande Sinon, la requête sera bloqué.
order-appointment-confirmed¶
L'opérateur de boucle locale a confirmé le rendez-vous avec le client final.
Cet événement ne propose aucune donnée supplémentaire.
order-appointment-cancelled¶
L'opérateur de boucle locale a annulé le rendez-vous avec le client final.
Cet événement ne propose aucune donnée supplémentaire.
order-appointment-declined¶
L'opérateur de boucle locale a décliné le rendez-vous avec le client final.
Cet événement ne propose aucune donnée supplémentaire.
order-appointment-missed¶
Cet événement ne propose aucune donnée supplémentaire.
order-localloop-saturation¶
La boucle locale est saturée, le rendez-vous est caduque. Un delai supplémentaire dans la livraison est attendu.
Cet événement de propose aucune donnée supplémentaire.
order-localloop-desaturation-quote-emitted¶
Cet événement ne propose aucune donnée supplémentaire.
order-localloop-desaturation-quote-accepted¶
Cet événement ne propose aucune donnée supplémentaire.
order-network-saturation¶
Une saturation des resources réseaux a été detectée.
Cet événement ne propose aucune donnée supplémentaire.
order-network-desaturation-planned¶
La désaturation du réseau a été planifiée.
Cet événement ne propose aucune donnée supplémentaire.
order-sensibleaccess¶
La commande risque d'écraser un accès dit 'sensible'. Vous devez la confirmer pour qu'elle se poursuive.
Cet événement ne propose aucune donnée supplémentaire.
order-sensibleaccess-orderconfirmed¶
La commande sur un accès 'sensible' a été confirmée.
Cet événement ne propose aucune donnée supplémentaire.
order-delayed¶
La commande subit un délai. Veuillez la confirmer ou annuler.
Cet événement ne propose aucune donnée supplémentaire.
order-delayed-orderconfirmed¶
Le délai de la commande a été confirmé.
Cet événement ne propose aucune donnée supplémentaire.
order-information-from-provider¶
Message d'information provenant du provider sous la forme de texte.
Les données disponibles dans le champ data
sont les suivantes :
Nom du champ |
Type |
Description |
---|---|---|
message |
string |
Précision sur le motif |
description |
string |
Motif de l'information |
Exemple :
{
"message": "The order is awaiting the activation status report (OK or NOK)",
"description": "Activation Status Report"
}
order-requalified¶
Activate / create request requalified. The appointment is cancelled.
Cet événement ne propose aucune donnée supplémentaire.
CRI¶
Le Compte-Rendu d'Intervention a été mis à disposition par le sous-traitant.
Le fichier est hébergé sur la solution de stockage azure blob.
Chaque fichier contient une URL permettant d'y accéder.
Chaque url se termine par un token permettant d'accéder au fichier 30 minutes après sa génération.
Le token est généré dès que l'on affiche l'url grâce à une requête.
Les urls sont affichées dans le champs data
.
{
"fichier 1": "https://covdevpvi.blob.core.windows.net/pvi/{{order_alias}}/{{work_order_alias}}/Public/file_name.pdf?se={{token}}
}
Événements par type d'order
¶
Event Type |
Activate Activate |
Activate Create |
Terminate |
---|---|---|---|
|
X |
X |
X |
|
X |
X |
X |
|
X |
X |
X |
|
X |
X |
X |
|
X |
X |
X |
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
||
|
X |
X |
|
|
X |
X |
|
|
X |
X |
|
|
X |
X |
X |
|
X |
X |
Événements sur un service
¶
service-activated¶
Le service a été activé.
Cet événement ne propose aucune donnée supplémentaire.
service-terminated¶
Le service a été résilié.
Cet événement ne propose aucune donnée supplémentaire.
service-modified¶
Cet événement ne propose aucune donnée supplémentaire.
service-slammed¶
Le service a été écrasé par une autre ligne.
Cet événement ne propose aucune donnée supplémentaire.
service-updated¶
Cet événement ne propose aucune donnée supplémentaire.
service-info¶
Cet événement ne propose aucune donnée supplémentaire.