É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

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-submitted

order-dropped (*)

order-acknowledged

order-running

order-rejected

order-localloop-saturation (*)

A/S/M

order-network-saturation (*)

A/S/M

order-network-desaturation-planned (*)

A/S/M

order-requalified

A/S/M

order-sensibleaccess

A/S/M

order-sensibleaccess-orderconfirmed

A/S/M

order-delayed

A/S/M

order-delayed-orderconfirmed

A/S/M

order-information-from-provider

A/S/M

order-appointment-confirmed

order-appointment-cancelled

order-appointment-declined

order-appointment-missed

order-appointment-agreed

order-on-site-intervention-succeeded

F

order-on-site-intervention-failed

F

order-cancelled

order-info

order-info (stop_deferred)

order-completed

cri

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 endpoints créés pour la commande

service_uuid

string

Identifiant technique du service créé

service_alias

string

Référence du service créé (appelé aussi kosc service ref)

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 (LL_FREE_DESAT)

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

order-submitted

X

X

X

order-dropped (*)

X

X

X

order-acknowledged

X

X

X

order-running

X

X

X

order-rejected

X

X

X

order-localloop-saturation (*)

X

order-localloop-desaturation-planned (*)

X

order-network-saturation (*)

X

order-network-desaturation-planned (*)

X

order-requalified

X

order-appointment-confirmed

X

order-appointment-cancelled

X

order-appointment-declined

X

order-appointment-missed

X

order-appointment-agreed

X

order-sensibleaccess

X

order-sensibleaccess-orderconfirmed

X

order-delayed

X

order-delayed-orderconfirmed

X

order-information-from-provider

X

X

order-cancelled

X

X

order-info

X

X

order-completed

X

X

X

cri

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.