mockolafe/public/olafe.json
2025-01-03 15:44:10 +01:00

843 lines
26 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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"
}
}
}
}
}
}
}