{ "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 l’identifiant 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 l’identifiant 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 l’identifiant 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 d’expliciter 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" } } } } } } }