mockolafe/public/olafe.json

843 lines
26 KiB
JSON
Raw Permalink Normal View History

2025-01-03 15:44:10 +01:00
{
"openapi": "3.0.1",
"info": {
"title": "Api du Centre National des Œuvres Universitaires et Scolaires",
"description": "Spécification d'interface entre l'OLAFE et les établissements",
"version": "0.0.4"
},
"servers": [
{
"url": "http://cnous-olafe.axyus.com:8082",
"description": "Generated server url"
}
],
"paths": {
"/api/v1/notifications/mse/profil-etudiant": {
"post": {
"tags": [
"Service de notifications"
],
"summary": "Notifier la modification des données de profil d'un étudiant",
"operationId": "notifierModificationProfilEtudiant",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationModificationProfilEtudiantRequestVO"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "La demande de modification sera traité dans les meilleurs délai",
"content": {
"*/*": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "La demande ne respecte pas le format attendu",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"401": {
"description": "Authentification échouée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"403": {
"description": "Accès refusé/Interdit - L'utilisateur n'a pas les droits nécessaires pour accéder à cette ressource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"404": {
"description": "Étudiant non trouvé",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"429": {
"description": "La limite du nombre de requêtes/seconde a été dépassée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"500": {
"description": "Une erreur interne côté serveur s'est produite lors du traitement",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
}
}
}
},
"/api/v1/etudiants/{type-id}/{id}/demande-logement": {
"post": {
"tags": [
"Service de demande de logement d'un étudiant"
],
"summary": "Synchroniser la demande de logement d'un étudiant",
"operationId": "synchroniserDemandeLogement",
"parameters": [
{
"name": "type-id",
"in": "path",
"description": "Type de l'identifiant de l'étudiant",
"required": true,
"schema": {
"type": "string",
"description": "Type de lidentifiant de létudiant",
"enum": [
"ine",
"id-pve"
]
}
},
{
"name": "id",
"in": "path",
"description": "Id INE / Id PVE",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DemandeLogementRequestVO"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "La demande de modification a été prise en compte",
"content": {
"*/*": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "La demande ne respecte pas le format attendu",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"401": {
"description": "Authentification échouée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"403": {
"description": "Accès refusé/Interdit - L'utilisateur n'a pas les droits nécessaires pour accéder à cette ressource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"404": {
"description": "Étudiant ou dossier inconnu du système. La demande ne peut pas être prise en compte",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"429": {
"description": "La limite du nombre de requêtes/seconde a été dépassée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"500": {
"description": "Une erreur interne côté serveur s'est produite lors du traitement",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
}
}
}
},
"/api/v1/etudiants/{type-id}/{id}/statut-dse": {
"get": {
"tags": [
"Service de récupération du statut Dossier Social Etudiant d'un étudiant"
],
"summary": "Récupérer le statut Dossier Social Etudiant d'un étudiant",
"operationId": "recupererStatutDSE",
"parameters": [
{
"name": "type-id",
"in": "path",
"description": "Type de l'identifiant de l'étudiant",
"required": true,
"schema": {
"type": "string",
"description": "Type de lidentifiant de létudiant",
"enum": [
"ine",
"id-pve"
]
}
},
{
"name": "id",
"in": "path",
"description": "Id INE / Id PVE",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "anneeGestion",
"in": "query",
"description": "Année de gestion au format 'AAAA'",
"required": true,
"schema": {
"pattern": "^[0-9]{4}$",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Statut DSE avec succès",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatutDseResponseVO"
}
}
}
},
"400": {
"description": "Paramètres de la requête invalides",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"401": {
"description": "Authentification échouée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"403": {
"description": "Accès refusé/Interdit - L'utilisateur n'a pas les droits nécessaires pour accéder à cette ressource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"404": {
"description": "Étudiant non trouvé ou Étudiant connu mais sans DSE pour cette année de gestion",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"429": {
"description": "La limite du nombre de requêtes/seconde a été dépassée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"500": {
"description": "Erreur interne du serveur",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
}
}
}
},
"/api/v1/etudiants/{type-id}/{id}/donnees-sociales": {
"get": {
"tags": [
"Service de récupération des données sociales brutes d'un étudiant"
],
"summary": "Récupérer les données sociales brutes d'un étudiant",
"operationId": "recupererDonneesSociales",
"parameters": [
{
"name": "type-id",
"in": "path",
"description": "Type de l'identifiant de l'étudiant",
"required": true,
"schema": {
"type": "string",
"description": "Type de lidentifiant de létudiant",
"enum": [
"ine",
"id-pve"
]
}
},
{
"name": "id",
"in": "path",
"description": "Id INE / Id PVE",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "anneeGestion",
"in": "query",
"description": "Année de gestion au format 'AAAA'",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Données sociales brutes récupérées avec succès",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DonneesSocialesBrutesResponseVO"
}
}
}
},
"400": {
"description": "La demande ne respecte pas le format attendu",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"401": {
"description": "Authentification échouée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"403": {
"description": "Accès refusé/Interdit - L'utilisateur n'a pas les droits nécessaires pour accéder à cette ressource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"404": {
"description": "Aucun dossier n'a été trouvé",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"429": {
"description": "La limite du nombre de requêtes/seconde a été dépassée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"500": {
"description": "Une erreur interne côté serveur s'est produite lors du traitement",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
}
}
}
},
"/api/v1/dossiers-modifies": {
"get": {
"tags": [
"Service de récupération des dossiers modifiés"
],
"summary": "Récupérer le liste de dossiers qui ont été modifiés depuis la date fournie",
"operationId": "listerDossiersModifies",
"parameters": [
{
"name": "dateHeureDebut",
"in": "query",
"description": "Date de début des modifications",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "pageNbItemMax",
"in": "query",
"description": "Nombre d'éléments maximum de la page",
"required": true,
"schema": {
"minimum": 0,
"type": "integer",
"format": "int32"
}
},
{
"name": "pageIndex",
"in": "query",
"description": "Index de la page à charger. La première page à l'index 0",
"required": true,
"schema": {
"minimum": 0,
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "La liste a été récupérée avec succès et le résultat est paginé",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PageDossiersModifiesResponseVO"
}
}
}
}
},
"400": {
"description": "La demande ne respecte pas le format attendu",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"401": {
"description": "Authentification échouée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"403": {
"description": "Accès refusé/Interdit - L'utilisateur n'a pas les droits nécessaires pour accéder à cette ressource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"429": {
"description": "La limite du nombre de requêtes/seconde a été dépassée",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
},
"500": {
"description": "Une erreur interne côté serveur s'est produite lors du traitement",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErreurReponseVO"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"ErreurReponseVO": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"description": "Date/Heure de l'erreur au format ISO",
"format": "date-time"
},
"status": {
"type": "integer",
"description": "Statut HTTP",
"format": "int32"
},
"error": {
"type": "string",
"description": "Reason Phrase de l'erreur HTTP renvoyée dans status"
},
"message": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/MessageVO"
}
},
"path": {
"type": "string",
"description": "Chemin de l'API"
}
}
},
"MessageVO": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Code de l'erreur ou champ en erreur"
},
"libelle": {
"type": "string",
"description": "Libellé de l'erreur"
}
},
"description": "Message d'erreur"
},
"NotificationModificationProfilEtudiantRequestVO": {
"required": [
"dateEvenement",
"idPVE",
"ine"
],
"type": "object",
"properties": {
"ine": {
"type": "string",
"description": "Identifiant national de l'étudiant"
},
"idPVE": {
"type": "string",
"description": "Identifiant MSE unique de l'étudiant"
},
"dateEvenement": {
"type": "string",
"description": "Date heure à laquelle le dernier changement sur l'étudiant a été fait",
"format": "date-time"
}
}
},
"DemandeLogementRequestVO": {
"required": [
"anneeGestion",
"demande"
],
"type": "object",
"properties": {
"anneeGestion": {
"type": "string",
"description": "Année de gestion au format 'AAAA'"
},
"demande": {
"type": "string",
"description": "État de la demande de logement",
"enum": [
"V",
"N",
"O",
"A"
]
}
}
},
"StatutDseResponseVO": {
"type": "object",
"properties": {
"codeRetour": {
"type": "string",
"description": "Code de retour",
"example": "SUCCES",
"enum": [
"SUCCES",
"DSE_EN_COURS",
"DSE_NON_VALIDE"
]
},
"message": {
"type": "string",
"description": "Libellé correspondant au code retour",
"example": " Dossier valide et instruit"
},
"statut": {
"type": "string",
"description": "Statut boursier de l'étudiant",
"example": "BOURSIER_CONDITIONNEL",
"enum": [
"CREATION",
"DEPOSE",
"INCOMPLET",
"BLOQUE",
"CONDITIONNEL",
"DEFINITIF",
"REFUSE",
"SUSPENDU",
"SUPPRIME",
"SUPPRIME_PAR_BENEFICIAIRE"
]
}
}
},
"AdresseFiscaleResponseVO": {
"type": "object",
"properties": {
"voie": {
"type": "string",
"description": "Voie",
"nullable": true
},
"complement": {
"type": "string",
"description": "Complément d'adresse",
"nullable": true
},
"codePostal": {
"type": "string",
"description": "Code postal",
"nullable": true
},
"codeINSEE": {
"type": "string",
"description": "Code INSEE de la commune",
"nullable": true
},
"commune": {
"type": "string",
"description": "Commune",
"nullable": true
},
"codePays": {
"type": "string",
"description": "Code Pays (code BCN sur 3 caractères)",
"nullable": true
},
"coordonnees": {
"type": "string",
"description": "Coordonnées fournies par l'API adresse si adresse en France au format GeoJSON exprimées en WGS-84 (EPSG 4326)",
"nullable": true
}
},
"description": "Adresse fiscale de l'étudiant (adresse utilisée pour le calcul de distance)",
"nullable": true
},
"DonneesBrutesResponseVO": {
"type": "object",
"properties": {
"revenuBrutGlobal": {
"type": "number",
"description": "Revenu global brut utilisé pour le calcul de la bourse",
"format": "float",
"nullable": true
},
"pointsChargeFamille": {
"type": "integer",
"description": "Nombre de points de charge famille",
"format": "int32",
"nullable": true
},
"adresseFiscale": {
"$ref": "#/components/schemas/AdresseFiscaleResponseVO"
}
},
"description": "Données brutes concernant le dossier de l'étudiant",
"nullable": true
},
"DonneesSocialesBrutesResponseVO": {
"type": "object",
"properties": {
"codeRetour": {
"type": "string",
"description": "Code retour fonctionnel"
},
"message": {
"type": "string",
"description": "Motif texte permettant dexpliciter le retour donné"
},
"idPVE": {
"type": "string",
"description": "Identifiant MSE unique de l'étudiant"
},
"anneeGestion": {
"type": "string",
"description": "Année de gestion au format 'AAAA'"
},
"refDossier": {
"type": "string",
"description": "Numéro de dossier long sur lequel le système a récupéré les données"
},
"statutDossier": {
"type": "string",
"description": "Statut du dossier de demande de bourse",
"enum": [
"CREATION",
"DEPOSE",
"INCOMPLET",
"CONDITIONNEL",
"REFUSE",
"DEFINITIF",
"SUSPENDU",
"BLOQUE",
"SUPPRIME",
"SUPPRIME_PAR_BENEFICIAIRE"
]
},
"donneesBrutes": {
"$ref": "#/components/schemas/DonneesBrutesResponseVO"
}
}
},
"DossierModifieResponseVO": {
"type": "object",
"properties": {
"refDossier": {
"type": "string",
"description": "Numéro de référence du dossier"
},
"idPVE": {
"type": "string",
"description": "Identifiant MSE unique de l'étudiant rattaché au dossier"
},
"anneeGestion": {
"type": "string",
"description": "Année de gestion du dossier",
"example": "2023"
},
"dateMAJ": {
"type": "string",
"description": "Date et heure de la dernière modification du dossier",
"format": "date-time"
}
},
"description": "Contenu de la page courante"
},
"PageDossiersModifiesResponseVO": {
"type": "object",
"properties": {
"totalPages": {
"type": "integer",
"description": "Nombre total de pages",
"format": "int32",
"example": 1
},
"contenu": {
"type": "array",
"description": "Contenu de la page courante",
"items": {
"$ref": "#/components/schemas/DossierModifieResponseVO"
}
}
}
}
}
}
}