Skip to content

Instantly share code, notes, and snippets.

@clodio
Created January 19, 2018 09:59
Show Gist options
  • Save clodio/d4e1fbcb610faf3a7c990b36d050018b to your computer and use it in GitHub Desktop.
Save clodio/d4e1fbcb610faf3a7c990b36d050018b to your computer and use it in GitHub Desktop.
Contrat de service swagger de l'api qualif adresse
swagger: "2.0"
info:
version: "1.0.0"
title: "API Qualification Adresse"
contact:
email: "ld-bscc-service-qualification-adresse@laposte.fr"
description: |
**Ce service permet de réaliser des traitements sur une ou plusieurs adresses et récupérer des informations associées:**
- adresse existante et associéee à une tournée facteur
- informations détaillées de la tournée facteur
- établissement postal réalisant la distribution
- identifiants uniques d'adresses
- ...
**Engagements de service**
- Disponibilité : 24h/24 7J/7
- SLA : 99.5%
- Plages de maintenance : Non
- Perte de donnée maximale : 15 mins
- Durée maximale d'interruption : 4h00
- Performances : traitement unitaire < 500ms, traitement fichier : 150 000 adresses/heure
- Plan de reprise d'activité : Non
- Limites d'utilisation par client : 150 000 adresses par fichier, 150 000 adresses par heure
- Capacité de traitement : 250 000 adresses par heure
- Disponibilité : 24h/24 - 7J/7
Donnez votre avis sur le service : http://bit.ly/APIQADR_votre_avis
**Intégration**
Le fichier swagger http://ws-apiqa-sint.apps.paas.int.net-courrier.extra.laposte.fr/swagger/API_qualif_address_swagger.yaml.php peut être importé dans l'outil de test postman (pour faire des tests simplemment) ou dans l'éditeur http://editor.swagger.io (pour génération de code client)
host: "ws-apiqa-sint.apps.paas.int.net-courrier.extra.laposte.fr"
basePath: "/address/v1"
schemes:
- "http"
- "https"
consumes:
- "application/json"
produces:
- "application/json"
paths:
/single_analysis:
get:
tags:
- Appel unitaire
summary: "Traitement d'une adresse unique"
description: "
**Traitement d'une adresse unique**
\n**Note** : le contenu détaillé des données retournées est présent dans le \"Model\" accessible dans swagger
```\n# Exemple de récupération deliverable et de l'indentifiant regate du site de distribution pour l'adresse
\n# 61 RUE DE CAULAINCOURT 75018 PARIS
\nCURL -X GET -G \"http://ws-apiqa-sint.apps.paas.int.net-courrier.extra.laposte.fr/address/v1/single_analysis\"
\\\n-d \"params=deliverable,distribution_site\"
\\\n--data-urlencode \"address_row4=61 RUE DE CAULAINCOURT&address_row6=75018 PARIS\"
\nRéponse :
\n{\n \"deliverable\": true,\n \"distribution_site\": {\n \"id\": \"670770\",\n \"id_roc\": \"A21588\",\n \"label\": \"OBERNAI PDC1\" }\n }\n}
```
"
parameters:
- name: "params"
in: "query"
description: |
**Liste des traitements et informations à retourner** (champs séparés par des virgules) :
Ex ?params=deliverable,distribution_site
**rnvp**: réalise un traitement RNVP (Restructuration, Normalisation et validation Postale de l'adresse) et renvoie le retour du traitement ainsi que l'adresse corrigée.
**deliverable**: retourne un booléen indiquant si l'adresse est prestable. Une adresse est delivrable si elle existe, est affectée à une et une seule tournée facteur, n'est pas de type cedex (Boite Postale).
**round**: retourne les informations de tournée (id, libellé, rang)
**round_detail**: retourne le détail des informations de tournée (locomotion)
**distribution_site**: retourne les identifiants de l'établissement de distribution (code regate, code roc et libellé court)
**distribution_site_detail**: permet de récupérer des informations détaillées du site de distribution (code regate, code roc, libellé court et adresse)
**address_ids**: retourne la liste des identifiants d'adresses (cea), l'identifiant d'adresse le plus fin et son type
**cabin_site**: permet de récupérer l'établissement cabine (id_roc et id regate) à partir son cea cp-commune (address_ids.row56)
**collection_site**: retourne les identifiants du site de collecte (code regate, code roc et libellé court)
**parcel_site**: retourne les identifiants de l'établissement de colis (code regate, code roc et libellé court)
**Note** : le contenu détaillé des données est présent dans le "Model" accessible dans swagger
type: "array"
items:
type: "string"
enum:
- rnvp
- deliverable
- round
- round_detail
- distribution_site
- distribution_site_detail
- address_ids
- cabin_site
- collection_site
- parcel_site
- name: "address_max_length"
in: "query"
type: "integer"
description: |
**Taille maximale des lignes d'adresse.**
Par défaut, la taille est de 38 caractères. Le maximum autorisé est de 100. Si une adresse fournie dépasse cette valeur, elle sera refusée.
- name: "address_row1"
in: "query"
type: "string"
description: |
**Identité du destinataire** (titre ou qualité, prénom, nom, raison sociale)
Ex : M Jean Dupond
- name: "address_row2"
in: "query"
type: "string"
description: |
**Point de remise** (n° d'appartement, étage, couloir, escalier, chez)
Ex: Chez Mireille Durand APPARTEMENT 3
- name: "address_row3"
in: "query"
type: "string"
description: |
**Lieu géographique** (résidence, bâtiment, immeuble, tour, entrée)
Ex: RESIDENCE DES LILAS
- name: "address_row4"
in: "query"
type: "string"
description: |
**N°, extension(B, T), type (rue, avenue ...) et nom de la voie**
Ex : 3 B RUE DES LILAS
- name: "address_row5"
in: "query"
type: "string"
description: |
**Ancienne commune, Lieu-dit ou service particulier de distribution**
Ex : VENARSAL
- name: "address_row6"
in: "query"
type: "string"
description: |
**Code postal et localité**
Ex: 19360 MALEMORT
- name: "offline"
in: "query"
type: "array"
items:
type: "string"
enum:
- rnvp
- cpn
- orgate
description: "Permet pour un traitement de bouchonner les services distants (RNVP, CPN, ORGATE)"
- name: "exclude"
in: "query"
type: "string"
items:
type: "string"
enum:
- distribution_office
description: "Permet d'exclure les adresses sans distribution en face à face (Boîte Postale, Garde Courrier, Poste Restante)"
responses:
200:
description: "Traitement réalisé avec succès"
schema:
$ref: "#/definitions/address"
400:
schema:
$ref: "#/definitions/Error"
description: |
Erreur coté client
[RU-060] Champs 'address' prèsent mais sans valeur
[RU-061] Aucun champ d'adresse n'est présent dans la requête
[RU-062] Champ 'address_rowX' présent, mais sans valeur
[RU-065] 'address' et 'address_rowX' présent veuillez choisir un format
[RU-066] Champs 'address' dupliqué
[RU-067] Champs 'address_rowX' dupliqué
401:
description: "Authentification erronée"
403:
description: "Authentification réalisée, mais habilitation insuffisante"
429:
description: "Dépassement du quota d'appel autorisé"
500:
schema:
$ref: "#/definitions/Error"
description: |
Erreur coté serveur
[RU-100] Mauvaise requête vers le CPN
[RU-101] Problème avec le CPN
[RU-102] CPN trop lent
[RU-200] Mauvaise requête vers ORGATE
[RU-201] ORGATE trop lent
[RU-202] Problème avec ORGATE
[RU-300] Mauvaise requête vers SOURCE_ORGA
[RU-301] SOURCE_ORGA trop lent
[RU-302] Problème avec SOURCE_ORGA
[RU-400] Mauvaise requête vers RZP
[RU-401] RZP trop lent
[RU-402] Problème avec RZP
502:
description: "Service temporairement indisponible"
503:
description: "Service temporairement indisponible"
504:
description: "Service temporairement indisponible"
/batch_analysis:
post:
consumes:
- "multipart/form-data"
tags:
- "Appel massif"
summary: "Traitement d'une liste d'adresses CSV"
description: "
**Traitement d'une liste d'adresses CSV.**
\n**Note** : le contenu détaillé des données retournées est présent dans le \"Model\" accessible dans swagger
\n**Fichier CSV**
\n- Le fichier csv doit contenir les champs d'adresses à traiter : address_row1,..., address_row6,
\n- Le séparateur de champs doit être le point-virgule
\n- Le fichier peut contenir des champs personnels.
Ex :
\nmon_id;address_row1;address_row2;address_row3;address_row4;address_row5;address_row6
\n1111;M Jean Dupond;Chez Mireille Durand;RESIDENCE DE LILAS;61 rue caulaincourt;75018 PARIS
Un fichier exemple est disponible http://ws-apiqa-sint.apps.paas.int.net-courrier.extra.laposte.fr/swagger/address_sample.csv
```\n# Exemple de traitement d'un fichier csv pour récupérer l'information distribuable,
\n# le site de distribution, ainsi que tous les champs du fichier initial.
\nCURL -X POST \"http://ws-apiqa-sint.apps.paas.int.net-courrier.extra.laposte.fr/address/v1/batch_analysis?params=deliverable&my_fields=ALL\"
\\\n--form data=@address_sample.csv
\nRéponse :
\nheader.location= /address/v1/batch_analysis/5f235275-e4cf-4da0-b64d-ecf463dc4e77
\nhttp.code : 202
```
"
parameters:
- name: data
in: formData
description: |
**Fichier d'adresses à traiter** (CSV), voir plus haut le détail du fichier
type: file
- name: notification_email
in: query
type: string
format: email
description: |
**Email de notification et de réception du résultat du traitement**
Ex: notification_email=my-email@bigcompany.com
- name: data_format
in: query
type: string
description: |
**Précise le format de votre fichier si celui-ci ne suit pas
le nommage standard [address_row1,...,address_row6|address]**
Ce champ ne peut s'appliquer que si le fichier d'entrée est au format CSV.
Le principe est d'indiquer quelle position de colonne correspond à quelle donnée
connue de ce service de qualification d'adresse.
Ex: **data_format=;;address_row4;address_row6** => votre troisième colonne est une ligne4 d'adresse, et votre quatrième colonne une ligne6 d'adresse
Ex: **data_format=;postal_code;locality** => votre deuxième colonne est un code postal seul, et la troisième colonne une ville seule
- name: csv_numeric_format
in: query
type: string
enum:
- excel_string
description: |
**Echapement des colonnes numériques dans excel pour accommoder les contraintes client**
Un seul cas possible pour le moment, ajoute ="xxx" pour un usage simplifié dans Excel
- name: address_max_length
in: query
type: integer
description: |
**Taille maximale des lignes d'adresse.**
Par défaut, la taille est de 38 caractères. Le maximum autorisé est de 100. Si une adresse fournie dépasse cette valeur, elle sera refusée.
- name: params
in: query
description: |
**Liste des traitements et informations à retourner** (champs séparés par des virgules) :
Ex: ?params=deliverable,distribution_site
**rnvp**: réalise un traitement RNVP (Restructuration, Normalisation et validation Postale de l'adresse) et renvoie le retour du traitement ainsi que l'adresse corrigée
**deliverable**: retourne un booléen indiquant si l'adresse est prestable. Une adresse est delivrable si elle existe, est affectée à une et une seule tournée facteur, n'est pas de type cedex (Boite Postale).
**round**: retourne les informations de tournée (id, libellé, rang)
**round_detail**: retourne le détail des informations de tournée (locomotion)
**distribution_site**: retourne les identifiants de l'établissement de distribution (code regate, code roc et libellé court)
**distribution_site_detail**: permet de récupérer des informations détaillées du site de distribution (code regate, code roc, libellé court et adresse)
**address_ids**: retourne la liste des identifiants d'adresses (cea), l'identifiant d'adresse le plus fin et son type
**cabin_site**: permet de récupérer l'établissement cabine (id_roc et id regate) à partir son cea cp-commune (address_ids.row56)
**collection_site**: retourne les identifiants du site de collecte (code regate, code roc et libellé court)
**parcel_site**: retourne les identifiants de l'établissement de colis (code regate, code roc et libellé court)
**Note** : le contenu détaillé des données retournées est présent dans le "Model" accessible dans swagger
type: array
items:
type: string
enum:
- rnvp
- deliverable
- round
- round_detail
- distribution_site
- distribution_site_detail
- address_ids
- cabin_site
- collection_site
- parcel_site
- name: "exclude"
in: "query"
type: "string"
items:
type: "string"
enum:
- distribution_office
description: "Permet d'exclure les adresses sans distribution en face à face (Boîte Postale, Garde Courrier, Poste Restante)"
- name: my_fields
in: query
type: string
description: |
**Liste des champs à récupérer du fichier d'adresses initial**
- ALL : récupère tous les champs
- NONE : ne récupère aucun champ (non disponible pour l'instant)
- personnalisé : liste des champs à récupérer séparés par des virgules (non disponible pour l'instant)
Ex: my_fields=ALL OU my_fields=my_id,my_date
items:
type: string
default: ALL
- name: offline
in: query
type: array
description: "Permet pour un traitement de bouchonner les services distants (RNVP, CPN, ORGATE)"
items:
type: string
enum:
- rnvp
- cpn
- orgate
responses:
202:
description: "Demande reçue, le traitement va être lancé"
headers:
location:
description: "Adresse url permettant de récupérer le résultat du traitement qui vient d'être lancé"
type: string
400:
schema:
$ref: '#/definitions/Error'
description: |
Erreur coté client
[RU-063] json invalide
[RU-068] CSV invalide
[RU-069] La balise 'adresses' n'est pas présente dans le json
[RU-070] Le champ "data" manquant dans le body du post
[RU-071] Aucun fichier chargé
[RU-072] le fichier contient un ou plusieurs mots réservé ('rnvp','deliverable','round','address_ids','distribution_site','distribution_site_detail','cabin_site','collection_site','parcel_site')
[RU-073] L'adresse mail fournis dans le paramétre 'notification_email' est mal formaté
[RU-074] Le paramétre 'notification_email' est fourni mais vide
[RU-075] Le paramétre 'data_format' doit uniquement contenir les mots-clef séparés de ';'
[RU-076] Champ 'data_format' présent, mais sans valeur
[RU-077] Le champ 'data_format' contient plusieurs fois le même mot-clef
[RU-O78] Le champ 'data_format' ne dois pas contenir le duo de mot-clef 'locality' et 'postal_code' et le mot-clef address_row6
[RU-079] Si le champ 'data_format' contient le mot-clef 'address', il ne peut pas contenir d'autres mot-clef tel que 'address_rowX', 'locality' ou postal_code etc...
[RU-080] Le champ 'data_format' ne contient aucun mot-clef
[RU-083] Nom de fichier trop long : 'filename'
401:
description: "Authentification erronée"
403:
description: "Authentification réalisée, mais habilitation insuffisante"
415:
description: "[RU-064] Format de fichier non supporté (seulement JSON ou CSV)"
429:
description: "Dépassement du quota d'appels autorisés"
500:
schema:
$ref: '#/definitions/Error'
description: |
Erreur coté serveur
[RU-999] erreur interne de l'api
502:
description: "Service temporairement indisponible"
503:
description: "Service temporairement indisponible"
504:
description: "Service temporairement indisponible"
/batch_analysis/{id}:
get:
tags:
- Appel massif
summary: "Récupération du statut ou du résultat d'un traitement massif"
description: "
**Récupération du résultat d'un traitement massif sous forme de fichier CSV (ou du statut si pas terminé)**
"
produces:
- "text/csv"
parameters:
- name: id
in: path
required: true
description: |
**Identifiant du traitement** massif envoyé lors de la soummission du fichier dans la balise header.location retournée
Ex /address/v1/batch_analysis/5f235275-e4cf-4da0-b64d-ecf463dc4e77
id: 5f235275-e4cf-4da0-b64d-ecf463dc4e77
type: string
- name: csv_numeric_format
in: query
type: string
enum:
- excel_string
description: |
**Echapement des colonnes numériques pour accommoder les contraintes client**
Un seul cas possible pour le moment, ajoute ="xxx" pour un usage simplifié dans Excel
responses:
200:
description: "statut et résultat du traitement si terminé"
schema:
$ref: '#/definitions/BatchResult'
204:
description: "Les données ont été purgées et ne sont plus disponibles"
400:
schema:
$ref: '#/definitions/Error'
description: |
Erreur coté client
[RU-081] Mauvaise valeur trouvé dans le champ 'csv_numeric_format', la seule valeur accepté est 'excel_string'
401:
description: "Authentification erronée"
403:
description: "Authentification réalisée, mais habilitation insuffisante"
404:
description: "La ressource demandée n'existe pas"
schema:
$ref: '#/definitions/Error'
429:
description: "Dépassement du quota d'appel autorisé"
500:
schema:
$ref: '#/definitions/Error'
description: "Erreur coté serveur"
502:
description: "Service temporairement indisponible"
503:
description: "Service temporairement indisponible"
504:
description: "Service temporairement indisponible"
/batch_analysis/{id}/original_file:
get:
tags:
- Appel massif
summary: "Récupération du fichier client originel."
description: "
**Récupération du fichier client originel.**
"
produces:
- "text/csv"
parameters:
- name: id
in: path
required: true
description: |
**Identifiant du traitement** massif envoyé lors de la soummission du fichier dans la balise header.location retournée
Ex /address/v1/batch_analysis/5f235275-e4cf-4da0-b64d-ecf463dc4e77
id: 5f235275-e4cf-4da0-b64d-ecf463dc4e77
type: string
responses:
200:
description: "fichier client originel"
204:
description: "Les données ont été purgées et ne sont plus disponibles"
400:
schema:
$ref: '#/definitions/Error'
description: |
Erreur coté client
401:
description: "Authentification erronée"
403:
description: "Authentification réalisée, mais habilitation insuffisante"
404:
description: "La ressource demandée n'existe pas"
schema:
$ref: '#/definitions/Error'
429:
description: "Dépassement du quota d'appel autorisé"
500:
schema:
$ref: '#/definitions/Error'
description: "Erreur coté serveur"
502:
description: "Service temporairement indisponible"
503:
description: "Service temporairement indisponible"
504:
description: "Service temporairement indisponible"
definitions:
BatchResult:
description: "Résultat détaillé concernant un traitement demandé. Si le traitement n'est pas terminé, un statut indique la progression de celui-ci."
properties:
addresses:
type: array
items:
$ref: "#/definitions/address"
address:
description: "Information sur l'adresse saisie"
properties :
rnvp:
$ref: "#/definitions/rnvp"
deliverable :
description: |
**Indique si l'adresse est délivrable**
Une adresse est delivrable si elle existe, est affectée à une et une seule tournée facteur, n'est pas de type cedex (Boite Postale).
type: boolean
status :
description: |
**Indique le statut du traitement**
ok - le traitement s'est bien déroulé,
ko - le traitement ne s'est pas déroulé
type: string
message :
description: |
**Message précisant le statut du traitement**
Ex The maximum length of an address field is 38
type: string
round:
$ref: "#/definitions/round"
address_ids:
$ref: "#/definitions/address_ids"
distribution_site:
$ref: "#/definitions/distribution_site"
cabin_site:
$ref: "#/definitions/cabin_site"
collection_site:
$ref: "#/definitions/collection_site"
parcel_site:
$ref: "#/definitions/parcel_site"
rnvp:
description: "Réalise un traitement RNVP (Restructuration, Normalisation et validation Postale de l'adresse) et renvoie le retour du traitement ainsi que l'adresse corrigée"
properties:
address_row1:
type: string
address_row2:
type: string
address_row3:
type: string
address_row4:
type: string
address_row5:
type: string
address_row6:
type: string
address_row7:
type: string
status:
type: string
description: |
**Indique le statut du traitement du traitement ok, ko, correction, error**
Valeurs possibles ok (adresse traitée), correction (modifications mineures sur l'adresse), ko (l'adresse n'a pas pu être traitée), error (erreur de notre service api).
message:
type: string
description: |
**Liste des corrections apportées sur l'adresse séparées par des virgules ,**
Ex : "Informations ligne 5 remontées en fin de ligne 4,Voie corrigée"
round:
description: "Informations sur la tournée de référence issue de Orgate"
properties:
id:
type: string
description : "Identifiant unique de tournée"
rank:
type: string
description : "Rang de l'adresse dans la tournée"
label:
type: string
description : |
Libellé de la tournée (Ex TL0001), le libellé commence par le type de tournée
- "BP : Boite Postale"
- "CS : Course Speciale"
- "TL : Tournee Lettre"
- "TM : Tournee mixte : la tournée contient une partie Courrier et une partie Colis"
- "TC : Tournee Courrier"
- "KI : Kiosque"
address_ids:
description: "Contient la liste des identifiants d'adresses (cea) de l'adresse"
properties:
id:
type: string
description: |
**Identifiant d'adresse (cea) le plus fin identifié**
Ex 75118224SS
internal_service:
type: string
description: |
**Identifiant des services internes**
EX:SI_4490040644
cedex_id:
type: string
description: |
**Identifiant d'adresse du cedex**
EX: CX_469550
row3:
type: string
description: |
**Identifiant d'adresse (cea) du niveau ligne3**
aussi appelé cea3, row3, idRAO
Ex: 45118224SS
row4_number:
type: string
description: |
**Identifiant d'adresse (cea) du niveau numéro dans la voie**
aussi appelé cea4Numero, points, idRAO
Ex: 75118224SS
row4_road:
type: string
description: |
**Identifiant d'adresse (cea) du niveau voie**
aussi appelé cea4Voie, row4_road, idRAO
Ex: 7511822262
row56:
type: string
description: |
**Identifiant d'adresse (cea) du couple ligne5-ligne6**
Aussi appelé cea56, row56, za, zone adresse, idligne56, cp-commune, idZA, idRAO
Ex: 7511822U3E
type:
type: string
description: |
**Type de l'identifiant d'adresse (cea) le plus fin trouvé**
internal_service>cedex_id>row3>row4_number>row4_road>row56
Ex: row3
distribution_site:
description: |
**Identifiants du site de distribution**
properties:
id:
type: string
description: |
**Identifiant regate du site de distribution** (issu de Orgate à partir de la tournée de référence)
Ex: 752310
id_roc:
type: string
description: |
**Identifiant roc du site de distribution** (issu de Orgate à partir de la tournée de référence)
Ex: A21588
label:
type: string
description: |
**Libellé court du site de distribution** (issu de SOURCE_ORGA à partir de la tournée de référence)
Ex: OBERNAI PDC1
dscc_label:
type: string
description: |
** Rattachement hiérarchique des données ** (issu de SOURCE_ORGA à partir de la tournée de référence)
Ex: SAINT ETIENNE DSCC
dec_label:
type: string
description: |
** Rattachement hiérarchique des données ** (issu de SOURCE_ORGA à partir de la tournée de référence)
Ex: PARIS DEC SUD
departement_number:
type: string
description: |
** Numéro de département ** (issu de SOURCE_ORGA à partir de la tournée de référence)
Ex: 26
address:
properties:
row3:
type: string
description: |
**address_row3**
Ex: FOXHOLS FARM
row4:
type: string
description: |
**address_row4**
Ex: 3 RUE TRAVERSIERE
row5:
type: string
description: |
**address_row5**
Ex: ACCOLAY
row6:
type: string
description: |
**address_row6**
Ex: 89460 DEUX RIVIERES
row7:
type: string
description: |
**address_row7**
Ex: FRANCE
cabin_site:
description: |
**Identifiants du site de cabine**
properties:
id:
type: string
description: |
**Code regate du site de cabine** (issu de SOURCE_ORGA à partir du code roc du site de cabine)
Ex: 752310
id_roc:
type: string
description: |
**Code roc du site de cabine** (issu de RZP à partir de l'identifiant d'adresse et de son type)
Ex: A21588
collection_site:
description: |
**Identifiants du site de collecte**
properties:
id:
type: string
description: |
**Code regate du site de collecte** (issu de SOURCE_ORGA à partir du code roc du site de collecte)
Ex: 752310
id_roc:
type: string
description: |
**Code roc du site de collecte** (issu de RZP à partir de l'identifiant d'adresse et de son type)
Ex: A21588
label:
type: string
description: |
**Libellé court du site de collecte** (issu de SOURCE_ORGA)
Ex: OBERNAI PDC1
parcel_site:
description: |
**Identifiants de l'établissement de colis**
properties:
id:
type: string
description: |
**Code regate de l'établissement de colis** (issu de SOURCE_ORGA à partir du code roc de l'établissement de colis)
Ex: 752310
id_roc:
type: string
description: |
**Code roc de l'établissement de colis** (issu de RZP à partir de l'identifiant d'adresse et de son type)
Ex: A21588
label:
type: string
description: |
**Libellé court de l'établissement de colis** (issu de SOURCE_ORGA)
Ex: OBERNAI PDC1
Error:
properties:
errors:
type: array
items:
properties:
code:
type : string
description: "code de l'erreur"
message:
type: string
description: "description de l'erreur"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment