{
  "openapi" : "3.1.0",
  "components" : {
    "schemas" : {
      "Abonnement" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "affectationId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveNom" : {
            "type" : "string"
          },
          "montantXof" : {
            "type" : "integer",
            "format" : "int64"
          },
          "periodicite" : {
            "type" : "string"
          },
          "periodeDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "statut" : {
            "type" : "string"
          },
          "financeRef" : {
            "type" : "string"
          },
          "montantAvoirXof" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "AccesRequest" : {
        "type" : "object",
        "required" : [ "accesFinance" ],
        "properties" : {
          "accesFinance" : {
            "type" : "boolean"
          }
        }
      },
      "AccesTransport" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "role" : {
            "type" : "string"
          },
          "accordeLe" : {
            "$ref" : "#/components/schemas/Instant"
          }
        }
      },
      "AccorderInput" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string"
          }
        }
      },
      "Affectation" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveNom" : {
            "type" : "string"
          },
          "elevePrenom" : {
            "type" : "string"
          },
          "ligneId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneNom" : {
            "type" : "string"
          },
          "sens" : {
            "type" : "string"
          },
          "arretMonteeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretMonteeNom" : {
            "type" : "string"
          },
          "arretDescenteId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretDescenteNom" : {
            "type" : "string"
          },
          "periodeDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "statut" : {
            "type" : "string"
          },
          "rangAttente" : {
            "type" : "integer",
            "format" : "int32"
          },
          "demandeeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "confirmeeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "resilieeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "motifResiliation" : {
            "type" : "string"
          }
        }
      },
      "AffectationDto" : {
        "type" : "object",
        "properties" : {
          "disciplineId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "AffectationFamilleInput" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretMonteeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretDescenteId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periodeDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "AffectationFamilleView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneNom" : {
            "type" : "string"
          },
          "sens" : {
            "type" : "string"
          },
          "arretMonteeNom" : {
            "type" : "string"
          },
          "arretDescenteNom" : {
            "type" : "string"
          },
          "periodeDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "statut" : {
            "type" : "string"
          },
          "rangAttente" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "AffectationInput" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretMonteeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretDescenteId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periodeDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "AjustementInput" : {
        "type" : "object",
        "properties" : {
          "typeSanctionId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "nbJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "messageFamille" : {
            "type" : "string"
          },
          "motifHorsBareme" : {
            "type" : "string"
          }
        }
      },
      "AlignementMembreRequest" : {
        "type" : "object",
        "required" : [ "niveauId", "disciplineLibelle" ],
        "properties" : {
          "niveauId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "disciplineLibelle" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          }
        }
      },
      "AlignementRequest" : {
        "type" : "object",
        "required" : [ "libelle" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "membres" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AlignementMembreRequest"
            }
          }
        }
      },
      "AnneeCreationRequest" : {
        "type" : "object",
        "required" : [ "libelle", "dateDebut", "dateFin" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 20,
            "pattern" : "\\S"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "modele" : {
            "type" : "string",
            "pattern" : "TRIMESTRES|SEMESTRES|SEQUENCES"
          },
          "parCycle" : {
            "type" : "boolean"
          },
          "libellePeriode" : {
            "type" : "string",
            "maxLength" : 60
          }
        }
      },
      "AnneeModificationRequest" : {
        "type" : "object",
        "required" : [ "libelle", "dateDebut", "dateFin" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 20,
            "pattern" : "\\S"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "AnneeRef" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libelle" : {
            "type" : "string"
          },
          "debut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "fin" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "AppelRetenueRequest" : {
        "type" : "object",
        "properties" : {
          "absents" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          },
          "motifCorrection" : {
            "type" : "string"
          }
        }
      },
      "ApplyRequest" : {
        "type" : "object",
        "required" : [ "templateId" ],
        "properties" : {
          "templateId" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "nbClassesParNiveau" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "integer",
              "format" : "int32"
            }
          },
          "matieresAjoutees" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "matieresSupprimees" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "volumesHorairesOverrides" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "integer",
              "format" : "int32"
            }
          },
          "customCycles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomCycle"
            }
          },
          "customNiveaux" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomNiveau"
            }
          },
          "customMatieres" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomMatiere"
            }
          },
          "customCreneaux" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomCreneau"
            }
          },
          "customVolumes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomVolume"
            }
          },
          "customProfesseurs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomProfesseur"
            }
          },
          "customReservations" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomReservation"
            }
          },
          "customPreferences" : {
            "$ref" : "#/components/schemas/CustomPreferences"
          },
          "professeursPrincipaux" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProfesseurPrincipalLink"
            }
          }
        }
      },
      "AppreciationInput" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "texte" : {
            "type" : "string"
          }
        }
      },
      "AppreciationsInput" : {
        "type" : "object",
        "properties" : {
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periodeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "matiereId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "appreciations" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AppreciationInput"
            }
          }
        }
      },
      "Arret" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pointRepere" : {
            "type" : "string"
          },
          "horaireTheorique" : {
            "type" : "string"
          }
        }
      },
      "ArretFeuille" : {
        "type" : "object",
        "properties" : {
          "arretId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "horaireTheorique" : {
            "type" : "string"
          },
          "eleves" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EleveAttendu"
            }
          }
        }
      },
      "ArretInput" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pointRepere" : {
            "type" : "string"
          },
          "horaireTheorique" : {
            "type" : "string"
          }
        }
      },
      "AssignRequest" : {
        "type" : "object",
        "properties" : {
          "assigneeUserId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "AssignRequest1" : {
        "type" : "object",
        "properties" : {
          "assigneeUserId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "AttachAlertsRequest" : {
        "type" : "object",
        "properties" : {
          "alertIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        }
      },
      "AttachRequest" : {
        "type" : "object",
        "properties" : {
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "commercialId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "retroactive" : {
            "type" : "boolean"
          }
        }
      },
      "AttachmentRequest" : {
        "type" : "object",
        "properties" : {
          "filename" : {
            "type" : "string"
          },
          "contentType" : {
            "type" : "string"
          },
          "base64" : {
            "type" : "string"
          }
        }
      },
      "AttenteResume" : {
        "type" : "object",
        "properties" : {
          "affectationId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveNom" : {
            "type" : "string"
          },
          "rang" : {
            "type" : "integer",
            "format" : "int32"
          },
          "demandeeLe" : {
            "$ref" : "#/components/schemas/Instant"
          }
        }
      },
      "Audience" : {
        "type" : "object",
        "properties" : {
          "role" : {
            "type" : "string"
          },
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "AvisInput" : {
        "type" : "object",
        "properties" : {
          "appreciationGenerale" : {
            "type" : "string"
          },
          "decision" : {
            "type" : "string"
          }
        }
      },
      "BaremeInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "noteMax" : {
            "type" : "number"
          },
          "isDefault" : {
            "type" : "boolean"
          },
          "valeurs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BaremeValeurVue"
            }
          }
        }
      },
      "BaremeInput1" : {
        "type" : "object",
        "properties" : {
          "lignes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneBareme"
            }
          }
        }
      },
      "BaremeValeurVue" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "equivalentNumerique" : {
            "type" : "number"
          },
          "description" : {
            "type" : "string"
          }
        }
      },
      "BatchEditsRequest" : {
        "type" : "object",
        "properties" : {
          "ops" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EditOp"
            }
          },
          "commit" : {
            "type" : "boolean"
          }
        }
      },
      "BlockRequest" : {
        "type" : "object",
        "properties" : {
          "listType" : {
            "type" : "string"
          },
          "subjectType" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          },
          "reason" : {
            "type" : "string"
          }
        }
      },
      "BroadcastRequest" : {
        "type" : "object",
        "properties" : {
          "audience" : {
            "$ref" : "#/components/schemas/Audience"
          },
          "title" : {
            "type" : "string"
          },
          "body" : {
            "type" : "string"
          },
          "url" : {
            "type" : "string"
          }
        }
      },
      "CampaignRequest" : {
        "type" : "object",
        "properties" : {
          "role" : {
            "type" : "string"
          },
          "locale" : {
            "type" : "string"
          },
          "userId" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "emails" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "etablissementId" : {
            "type" : "string"
          },
          "subject" : {
            "type" : "string"
          },
          "body" : {
            "type" : "string"
          }
        }
      },
      "CanalPrefs" : {
        "type" : "object",
        "properties" : {
          "typeEvenement" : {
            "type" : "string"
          },
          "inApp" : {
            "type" : "boolean"
          },
          "email" : {
            "type" : "boolean"
          },
          "whatsapp" : {
            "type" : "boolean"
          }
        }
      },
      "ChangePasswordRequest" : {
        "type" : "object",
        "required" : [ "ancienMotDePasse", "nouveauMotDePasse" ],
        "properties" : {
          "ancienMotDePasse" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "nouveauMotDePasse" : {
            "type" : "string",
            "minLength" : 8,
            "maxLength" : 128,
            "pattern" : "\\S"
          }
        }
      },
      "ClasseRef" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libelle" : {
            "type" : "string"
          },
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "instance" : {
            "type" : "string"
          }
        }
      },
      "ClassifyRequest" : {
        "type" : "object",
        "properties" : {
          "disposition" : {
            "type" : "string"
          },
          "measures" : {
            "type" : "string"
          },
          "close" : {
            "type" : "boolean"
          }
        }
      },
      "ClickBody" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string"
          }
        }
      },
      "CoefficientInput" : {
        "type" : "object",
        "properties" : {
          "matiereId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "coefficient" : {
            "type" : "number"
          }
        }
      },
      "CoefficientsInput" : {
        "type" : "object",
        "properties" : {
          "lignes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CoefficientInput"
            }
          }
        }
      },
      "CollectPayload" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "visitorId" : {
            "type" : "string"
          },
          "sessionId" : {
            "type" : "string"
          },
          "path" : {
            "type" : "string"
          },
          "referrer" : {
            "type" : "string"
          },
          "utmSource" : {
            "type" : "string"
          },
          "utmMedium" : {
            "type" : "string"
          },
          "utmCampaign" : {
            "type" : "string"
          },
          "gclid" : {
            "type" : "string"
          },
          "fbclid" : {
            "type" : "string"
          },
          "tz" : {
            "type" : "string"
          },
          "device" : {
            "type" : "string"
          }
        }
      },
      "CommentRequest" : {
        "type" : "object",
        "properties" : {
          "body" : {
            "type" : "string"
          }
        }
      },
      "CommissionRateChange" : {
        "type" : "object",
        "properties" : {
          "rate" : {
            "type" : "number"
          }
        }
      },
      "CommissionSettingsPatch" : {
        "type" : "object",
        "properties" : {
          "qualificationThreshold" : {
            "type" : "integer",
            "format" : "int32"
          },
          "defaultCommissionRatePct" : {
            "type" : "number",
            "format" : "double"
          },
          "schoolYearStartMonth" : {
            "type" : "integer",
            "format" : "int32"
          },
          "durationMonths" : {
            "type" : "integer",
            "format" : "int32"
          },
          "retroactiveMonths" : {
            "type" : "integer",
            "format" : "int32"
          },
          "baseOnNet" : {
            "type" : "boolean"
          },
          "payoutThresholdXof" : {
            "type" : "integer",
            "format" : "int64"
          },
          "model" : {
            "type" : "string"
          },
          "degressiveRatesPct" : {
            "type" : "string"
          },
          "residualRatePct" : {
            "type" : "number",
            "format" : "double"
          },
          "tierThreshold" : {
            "type" : "integer",
            "format" : "int32"
          },
          "tierBonusPct" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "CommunityInput" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "networkType" : {
            "type" : "string"
          },
          "url" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "locale" : {
            "type" : "string"
          },
          "enabled" : {
            "type" : "boolean"
          },
          "sortOrder" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CompleteProfileRequest" : {
        "type" : "object",
        "properties" : {
          "telephone" : {
            "type" : "string"
          },
          "paysCode" : {
            "type" : "string"
          },
          "locale" : {
            "type" : "string"
          }
        }
      },
      "CompleteSignupRequest" : {
        "type" : "object",
        "required" : [ "email", "telephone", "etablissementNom" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "telephone" : {
            "type" : "string",
            "maxLength" : 40,
            "pattern" : "\\S"
          },
          "etablissementNom" : {
            "type" : "string",
            "maxLength" : 255,
            "pattern" : "\\S"
          },
          "locale" : {
            "type" : "string",
            "maxLength" : 10
          },
          "password" : {
            "type" : "string",
            "minLength" : 8,
            "maxLength" : 128
          },
          "paysCode" : {
            "type" : "string",
            "minLength" : 2,
            "maxLength" : 2
          }
        }
      },
      "ConducteurRef" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          }
        }
      },
      "ConfirmRequest" : {
        "type" : "object",
        "properties" : {
          "notes" : {
            "type" : "string",
            "maxLength" : 1024
          }
        }
      },
      "ConseilView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "incidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveNom" : {
            "type" : "string"
          },
          "elevePrenom" : {
            "type" : "string"
          },
          "classe" : {
            "type" : "string"
          },
          "instance" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "lieu" : {
            "type" : "string"
          },
          "statut" : {
            "type" : "string"
          },
          "presidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "presidentNom" : {
            "type" : "string"
          },
          "membres" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MembreView"
            }
          },
          "nbReports" : {
            "type" : "integer",
            "format" : "int32"
          },
          "decision" : {
            "type" : "string"
          },
          "decisionSanctionId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "pv" : {
            "type" : "string"
          },
          "famillePresente" : {
            "type" : "boolean"
          },
          "sanctionOrigineId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "tenuLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "motifAnnulation" : {
            "type" : "string"
          },
          "parentsConvoques" : {
            "type" : "integer",
            "format" : "int32"
          },
          "commence" : {
            "type" : "boolean"
          }
        }
      },
      "ConvocationFamilleView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "instance" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "lieu" : {
            "type" : "string"
          },
          "statut" : {
            "type" : "string"
          },
          "relaxe" : {
            "type" : "boolean"
          }
        }
      },
      "ConvocationInput" : {
        "type" : "object",
        "properties" : {
          "incidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "sanctionOrigineId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "lieu" : {
            "type" : "string"
          },
          "presidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "membres" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MembreInput"
            }
          }
        }
      },
      "Cookie" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          },
          "version" : {
            "type" : "integer",
            "format" : "int32"
          },
          "path" : {
            "type" : "string"
          },
          "domain" : {
            "type" : "string"
          }
        }
      },
      "CopieGrilleRequest" : {
        "type" : "object",
        "required" : [ "anneeSourceId", "anneeCibleId", "pourcentage" ],
        "properties" : {
          "anneeSourceId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "anneeCibleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "pourcentage" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CorrectionInput" : {
        "type" : "object",
        "properties" : {
          "statut" : {
            "type" : "string"
          },
          "motif" : {
            "type" : "string"
          }
        }
      },
      "CreateEtablissementRequest" : {
        "type" : "object",
        "properties" : {
          "nomEtablissement" : {
            "type" : "string"
          },
          "adminEmail" : {
            "type" : "string"
          },
          "adminNom" : {
            "type" : "string"
          },
          "adminPrenoms" : {
            "type" : "string"
          }
        }
      },
      "CreateFeatureRequest" : {
        "type" : "object",
        "required" : [ "titre", "description" ],
        "properties" : {
          "titre" : {
            "type" : "string",
            "maxLength" : 160,
            "pattern" : "\\S"
          },
          "description" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "CreateKeyRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "environment" : {
            "type" : "string"
          },
          "scopes" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "rateLimitPerMin" : {
            "type" : "integer",
            "format" : "int32"
          },
          "acceptedTerms" : {
            "type" : "boolean"
          },
          "expiresInDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "ipAllowlist" : {
            "type" : "string"
          }
        }
      },
      "CreateRequest" : {
        "type" : "object",
        "required" : [ "etablissementId", "plan", "debut", "fin" ],
        "properties" : {
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "plan" : {
            "type" : "string"
          },
          "debut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "fin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "montantMensuelXof" : {
            "type" : "integer",
            "format" : "int32"
          },
          "moyenPaiement" : {
            "type" : "string"
          }
        }
      },
      "CreateRequest1" : {
        "type" : "object",
        "required" : [ "code", "type", "validFrom", "validUntil" ],
        "properties" : {
          "code" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "description" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "value" : {
            "type" : "integer",
            "format" : "int32"
          },
          "applicablePlans" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "maxUses" : {
            "type" : "integer",
            "format" : "int32"
          },
          "validFrom" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "validUntil" : {
            "$ref" : "#/components/schemas/Instant"
          }
        }
      },
      "CreateRequest2" : {
        "type" : "object",
        "required" : [ "plan", "durationId", "paymentMethod", "idempotencyKey" ],
        "properties" : {
          "plan" : {
            "$ref" : "#/components/schemas/Plan"
          },
          "durationId" : {
            "$ref" : "#/components/schemas/Duration"
          },
          "totalAmountXof" : {
            "type" : "integer",
            "exclusiveMinimum" : 0,
            "format" : "int64"
          },
          "paymentMethod" : {
            "$ref" : "#/components/schemas/MoyenPaiement"
          },
          "depositPhone" : {
            "type" : "string",
            "maxLength" : 32
          },
          "depositReference" : {
            "type" : "string",
            "maxLength" : 64
          },
          "promoCode" : {
            "type" : "string",
            "maxLength" : 32
          },
          "idempotencyKey" : {
            "type" : "string",
            "maxLength" : 64,
            "pattern" : "\\S"
          }
        }
      },
      "CreateRequest3" : {
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string",
            "examples" : [ "https://exemple.com/webhooks/yaplanning" ],
            "description" : "URL HTTPS de réception."
          },
          "events" : {
            "type" : "array",
            "examples" : [ [ "timetable.published", "timetable.job.completed" ] ],
            "items" : {
              "type" : "string"
            },
            "description" : "Événements souscrits."
          }
        }
      },
      "CreateRequest4" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "priority" : {
            "type" : "string"
          },
          "summary" : {
            "type" : "string"
          },
          "alertIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        }
      },
      "CreateRequest5" : {
        "type" : "object",
        "properties" : {
          "label" : {
            "type" : "string"
          },
          "momo" : {
            "type" : "boolean"
          }
        }
      },
      "CreateSignalementRequest" : {
        "type" : "object",
        "required" : [ "type", "titre", "description" ],
        "properties" : {
          "type" : {
            "$ref" : "#/components/schemas/Type"
          },
          "titre" : {
            "type" : "string",
            "maxLength" : 160,
            "pattern" : "\\S"
          },
          "description" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "severite" : {
            "$ref" : "#/components/schemas/Severite"
          },
          "anonyme" : {
            "type" : "boolean"
          },
          "pageUrl" : {
            "type" : "string",
            "maxLength" : 500
          },
          "userAgent" : {
            "type" : "string",
            "maxLength" : 300
          }
        }
      },
      "CreateUserReq" : {
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string"
          },
          "nom" : {
            "type" : "string"
          },
          "prenoms" : {
            "type" : "string"
          },
          "role" : {
            "type" : "string"
          },
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "CustomCreneau" : {
        "type" : "object",
        "properties" : {
          "jour" : {
            "type" : "string"
          },
          "debut" : {
            "type" : "string"
          },
          "fin" : {
            "type" : "string"
          },
          "estPause" : {
            "type" : "boolean"
          },
          "libelle" : {
            "type" : "string"
          },
          "cyclesAutorises" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "CustomCycle" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "nom" : {
            "type" : "string"
          },
          "nombreHeureAutorise" : {
            "type" : "integer",
            "format" : "int32"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CustomMatiere" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "code" : {
            "type" : "string"
          },
          "couleur" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "plagesPreferees" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomPlageHoraire"
            }
          }
        }
      },
      "CustomNiveau" : {
        "type" : "object",
        "properties" : {
          "cycle" : {
            "type" : "string"
          },
          "libelleBase" : {
            "type" : "string"
          },
          "nbClasses" : {
            "type" : "integer",
            "format" : "int32"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CustomPlageHoraire" : {
        "type" : "object",
        "properties" : {
          "debut" : {
            "type" : "string"
          },
          "fin" : {
            "type" : "string"
          }
        }
      },
      "CustomPreferences" : {
        "type" : "object",
        "properties" : {
          "nbJoursLibresProfPref" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pauseMidiAuto" : {
            "type" : "boolean"
          },
          "pauseMidiDebut" : {
            "type" : "string"
          },
          "pauseMidiFin" : {
            "type" : "string"
          },
          "seuilApresMidi" : {
            "type" : "string"
          },
          "amplitudeMaxEleveHeures" : {
            "type" : "integer",
            "format" : "int32"
          },
          "chargeMinJourClasse" : {
            "type" : "integer",
            "format" : "int32"
          },
          "chargeMaxJourClasse" : {
            "type" : "integer",
            "format" : "int32"
          },
          "chargeMaxJourProf" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CustomProfesseur" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          },
          "prenoms" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "telephone" : {
            "type" : "string"
          },
          "matricule" : {
            "type" : "string"
          },
          "nombreHeureAutorise" : {
            "type" : "integer",
            "format" : "int32"
          },
          "margeDepassementQuota" : {
            "type" : "integer",
            "format" : "int32"
          },
          "statut" : {
            "type" : "string"
          },
          "diplomes" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "matieres" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "cycles" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "CustomReservation" : {
        "type" : "object",
        "properties" : {
          "jour" : {
            "type" : "string"
          },
          "debut" : {
            "type" : "string"
          },
          "fin" : {
            "type" : "string"
          },
          "libelle" : {
            "type" : "string"
          },
          "cyclesConcernes" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "niveauxConcernes" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "CustomVolume" : {
        "type" : "object",
        "properties" : {
          "matiere" : {
            "type" : "string"
          },
          "cycle" : {
            "type" : "string"
          },
          "niveaux" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "heures" : {
            "type" : "integer",
            "format" : "int32"
          },
          "minHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          },
          "blocObligatoire" : {
            "type" : "boolean"
          },
          "facultatif" : {
            "type" : "boolean"
          },
          "intervallesAutorisesJournee" : {
            "type" : "boolean"
          },
          "autoriseGroupesParalleles" : {
            "type" : "boolean"
          }
        }
      },
      "CycleInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 80
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CycleInput1" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CycleRequest" : {
        "type" : "object",
        "required" : [ "libelle" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 80,
            "pattern" : "\\S"
          },
          "nombreHeureAutorise" : {
            "type" : "integer",
            "format" : "int32"
          },
          "nombreHeureServiceMax" : {
            "type" : "integer",
            "format" : "int32"
          },
          "nombreHeureServiceMin" : {
            "type" : "integer",
            "format" : "int32"
          },
          "margeDepassementQuota" : {
            "type" : "integer",
            "format" : "int32"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "DateConseilInput" : {
        "type" : "object",
        "properties" : {
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "DayOfWeek" : {
        "type" : "string",
        "enum" : [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ]
      },
      "DecisionInput" : {
        "type" : "object",
        "properties" : {
          "decision" : {
            "type" : "string"
          },
          "pv" : {
            "type" : "string"
          },
          "famillePresente" : {
            "type" : "boolean"
          },
          "typeSanctionId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "nbJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "messageFamille" : {
            "type" : "string"
          }
        }
      },
      "DecisionRequest" : {
        "type" : "object",
        "properties" : {
          "motif" : {
            "type" : "string"
          }
        }
      },
      "DecisionVue" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string"
          },
          "libelle" : {
            "type" : "string"
          },
          "portee" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "actif" : {
            "type" : "boolean"
          }
        }
      },
      "DecisionsInput" : {
        "type" : "object",
        "properties" : {
          "decisions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DecisionVue"
            }
          }
        }
      },
      "DedoublementRequest" : {
        "type" : "object",
        "required" : [ "niveauId", "disciplineLibelle" ],
        "properties" : {
          "niveauId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "disciplineLibelle" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "nbGroupes" : {
            "type" : "integer",
            "exclusiveMinimum" : 0,
            "format" : "int32"
          }
        }
      },
      "DeleteRequest" : {
        "type" : "object",
        "required" : [ "confirmation" ],
        "properties" : {
          "password" : {
            "type" : "string"
          },
          "confirmation" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "DemandeConsultationRequest" : {
        "type" : "object",
        "required" : [ "nomEleve", "niveauLibelle", "canalPrefere" ],
        "properties" : {
          "nomEleve" : {
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 100,
            "pattern" : "\\S"
          },
          "nomParent" : {
            "type" : "string",
            "maxLength" : 100
          },
          "niveauLibelle" : {
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 80,
            "pattern" : "\\S"
          },
          "lienParente" : {
            "type" : "string",
            "maxLength" : 30
          },
          "contactEmail" : {
            "type" : "string",
            "maxLength" : 254
          },
          "contactWhatsapp" : {
            "type" : "string",
            "maxLength" : 30,
            "pattern" : "^[+0-9\\s().-]*$"
          },
          "canalPrefere" : {
            "type" : "string",
            "pattern" : "(?i)EMAIL|WHATSAPP"
          },
          "captchaToken" : {
            "type" : "string",
            "maxLength" : 2048
          }
        }
      },
      "DemandePlanRequest" : {
        "type" : "object",
        "required" : [ "eleveId", "message" ],
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "message" : {
            "type" : "string",
            "minLength" : 5,
            "maxLength" : 500,
            "pattern" : "\\S"
          }
        }
      },
      "DemiJourneeRequest" : {
        "type" : "object",
        "required" : [ "eleveId", "date", "demiJournee", "statut" ],
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "demiJournee" : {
            "type" : "string",
            "pattern" : "MATIN|APRES_MIDI"
          },
          "statut" : {
            "type" : "string",
            "pattern" : "ABSENT|PRESENT|DISPENSE"
          },
          "motifCorrection" : {
            "type" : "string",
            "maxLength" : 500
          }
        }
      },
      "DemoDatasetChange" : {
        "type" : "object",
        "properties" : {
          "avance" : {
            "type" : "boolean"
          }
        }
      },
      "DisableRequest" : {
        "type" : "object",
        "required" : [ "password", "code" ],
        "properties" : {
          "password" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "code" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "DisciplineFamilleView" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "prenom" : {
            "type" : "string"
          },
          "classe" : {
            "type" : "string"
          },
          "sanctions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SanctionFamilleView"
            }
          },
          "convocations" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConvocationFamilleView"
            }
          }
        }
      },
      "DisciplineInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 120
          },
          "code" : {
            "type" : "string",
            "maxLength" : 40
          },
          "couleur" : {
            "type" : "string",
            "maxLength" : 20
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "DisciplineInput1" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "code" : {
            "type" : "string"
          },
          "couleur" : {
            "type" : "string"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "DisciplineRequest" : {
        "type" : "object",
        "required" : [ "libelle" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "code" : {
            "type" : "string",
            "maxLength" : 20
          },
          "couleur" : {
            "type" : "string",
            "maxLength" : 7
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "typeSalleRequis" : {
            "type" : "string",
            "maxLength" : 40
          },
          "plagesPreferees" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PlageHoraireRequest"
            }
          }
        }
      },
      "DossierView" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "prenom" : {
            "type" : "string"
          },
          "classe" : {
            "type" : "string"
          },
          "du" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "au" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periodeLibelle" : {
            "type" : "string"
          },
          "nbIncidents" : {
            "type" : "integer",
            "format" : "int64"
          },
          "nbSanctions" : {
            "type" : "integer",
            "format" : "int64"
          },
          "joursExclusion" : {
            "type" : "integer",
            "format" : "int64"
          },
          "evenements" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EvenementDossierView"
            }
          },
          "periodes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PeriodeRef"
            }
          }
        }
      },
      "DuplicationRequest" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 20
          }
        }
      },
      "Duration" : {
        "type" : "string",
        "enum" : [ "MENSUELLE", "TRIMESTRE", "SEMESTRE", "ANNEE" ]
      },
      "EcheancePlanInput" : {
        "type" : "object",
        "required" : [ "date", "montant" ],
        "properties" : {
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "montant" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "EcheancePosteInput" : {
        "type" : "object",
        "required" : [ "date", "montant" ],
        "properties" : {
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "montant" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "EcheancesPosteRequest" : {
        "type" : "object",
        "required" : [ "echeances" ],
        "properties" : {
          "echeances" : {
            "type" : "array",
            "maxItems" : 12,
            "minItems" : 1,
            "items" : {
              "$ref" : "#/components/schemas/EcheancePosteInput"
            }
          }
        }
      },
      "EditOp" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "lessonAId" : {
            "type" : "string"
          },
          "lessonBId" : {
            "type" : "string"
          },
          "lessonId" : {
            "type" : "string"
          },
          "jour" : {
            "$ref" : "#/components/schemas/DayOfWeek"
          },
          "debut" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "fin" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "pinned" : {
            "type" : "boolean"
          }
        }
      },
      "EleveAccountRequest" : {
        "type" : "object",
        "required" : [ "email" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "EleveAttendu" : {
        "type" : "object",
        "properties" : {
          "affectationId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "elevePrenom" : {
            "type" : "string"
          },
          "arretId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretNom" : {
            "type" : "string"
          },
          "montee" : {
            "$ref" : "#/components/schemas/Pointage"
          },
          "descente" : {
            "$ref" : "#/components/schemas/Pointage"
          },
          "arretMonteeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretMonteeNom" : {
            "type" : "string"
          },
          "arretDescenteId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "arretDescenteNom" : {
            "type" : "string"
          },
          "sansDescente" : {
            "type" : "boolean"
          }
        }
      },
      "EleveImpliqueView" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "prenom" : {
            "type" : "string"
          },
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "classe" : {
            "type" : "string"
          },
          "instance" : {
            "type" : "string"
          }
        }
      },
      "EleveRef" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "prenom" : {
            "type" : "string"
          },
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "classe" : {
            "type" : "string"
          },
          "maClasse" : {
            "type" : "boolean"
          }
        }
      },
      "EleveRequest" : {
        "type" : "object",
        "required" : [ "nom", "prenom" ],
        "properties" : {
          "matricule" : {
            "type" : "string",
            "maxLength" : 64
          },
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "prenom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "dateNaissance" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "sexe" : {
            "type" : "string",
            "maxLength" : 1
          },
          "configNiveauId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "email" : {
            "type" : "string"
          }
        }
      },
      "ElevesRetenueRequest" : {
        "type" : "object",
        "properties" : {
          "sanctionIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        }
      },
      "EncaissementRequest" : {
        "type" : "object",
        "required" : [ "echeancierId", "montant", "mode", "datePaiement", "cleIdempotence" ],
        "properties" : {
          "echeancierId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "montant" : {
            "type" : "integer",
            "format" : "int64"
          },
          "mode" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "reference" : {
            "type" : "string",
            "maxLength" : 80
          },
          "datePaiement" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "echeancesChoisies" : {
            "type" : "array",
            "maxItems" : 24,
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          },
          "cleIdempotence" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "EtabInput" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "pays" : {
            "type" : "string"
          }
        }
      },
      "EtabInput1" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "pays" : {
            "type" : "string"
          }
        }
      },
      "EtablissementChange" : {
        "type" : "object",
        "properties" : {
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "EtablissementUpdateRequest" : {
        "type" : "object",
        "required" : [ "nom", "pays" ],
        "properties" : {
          "nom" : {
            "type" : "string",
            "maxLength" : 255,
            "pattern" : "\\S"
          },
          "pays" : {
            "type" : "string",
            "minLength" : 2,
            "maxLength" : 2,
            "pattern" : "\\S"
          },
          "ville" : {
            "type" : "string",
            "maxLength" : 120
          },
          "adresse" : {
            "type" : "string"
          },
          "telephone" : {
            "type" : "string",
            "maxLength" : 40
          },
          "emailContact" : {
            "type" : "string",
            "maxLength" : 255
          },
          "sigle" : {
            "type" : "string",
            "maxLength" : 40
          },
          "typeEtablissement" : {
            "type" : "string"
          },
          "typeEtablissementAutre" : {
            "type" : "string",
            "maxLength" : 120
          },
          "region" : {
            "type" : "string",
            "maxLength" : 120
          },
          "directionRegionale" : {
            "type" : "string",
            "maxLength" : 120
          },
          "ministereTutelle" : {
            "type" : "string",
            "maxLength" : 120
          },
          "affiliation" : {
            "type" : "string",
            "maxLength" : 120
          },
          "siteWeb" : {
            "type" : "string",
            "maxLength" : 255
          }
        }
      },
      "EvaluationInput" : {
        "type" : "object",
        "properties" : {
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "matiereId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periodeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "baremeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libelle" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "coefficient" : {
            "type" : "number"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "EvenementDossierView" : {
        "type" : "object",
        "properties" : {
          "incident" : {
            "$ref" : "#/components/schemas/IncidentResumeView"
          },
          "lieu" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "sanctions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SanctionView"
            }
          },
          "conseils" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConseilView"
            }
          }
        }
      },
      "ExportLimitUpdateRequest" : {
        "type" : "object",
        "properties" : {
          "exportClassLimit" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unlimited" : {
            "type" : "boolean"
          },
          "motif" : {
            "type" : "string"
          }
        }
      },
      "ExtendRequest" : {
        "type" : "object",
        "properties" : {
          "months" : {
            "type" : "integer",
            "exclusiveMinimum" : 0,
            "format" : "int32"
          },
          "reason" : {
            "type" : "string"
          }
        }
      },
      "FaqUpsert" : {
        "type" : "object",
        "properties" : {
          "question" : {
            "type" : "string"
          },
          "answer" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "published" : {
            "type" : "boolean"
          }
        }
      },
      "FeuilleRoute" : {
        "type" : "object",
        "properties" : {
          "trajetId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneNom" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "statutTrajet" : {
            "type" : "string"
          },
          "retardMinutes" : {
            "type" : "integer",
            "format" : "int32"
          },
          "arrets" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ArretFeuille"
            }
          },
          "sens" : {
            "type" : "string"
          },
          "nombreSansDescente" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "FooterUpdate" : {
        "type" : "object",
        "properties" : {
          "footer" : {
            "type" : "string"
          }
        }
      },
      "ForgotPasswordRequest" : {
        "type" : "object",
        "required" : [ "email" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "GenerateRequest" : {
        "type" : "object",
        "properties" : {
          "durationMinutes" : {
            "type" : "integer",
            "format" : "int32",
            "examples" : [ 5 ],
            "description" : "Durée max de résolution en minutes (optionnel)."
          }
        }
      },
      "GenerationIndividuelleRequest" : {
        "type" : "object",
        "required" : [ "anneeId", "eleveId" ],
        "properties" : {
          "anneeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "aPartirDu" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "GenerationInput" : {
        "type" : "object",
        "properties" : {
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periodeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "anneeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "annuel" : {
            "type" : "boolean"
          }
        }
      },
      "GenerationRequest" : {
        "type" : "object",
        "required" : [ "anneeId" ],
        "properties" : {
          "anneeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "GenererCodeRequete" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "lienSuggere" : {
            "type" : "string"
          }
        }
      },
      "GrantRequest" : {
        "type" : "object",
        "properties" : {
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "GrilleRequest" : {
        "type" : "object",
        "required" : [ "anneeId" ],
        "properties" : {
          "anneeId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "GroupeRequest" : {
        "type" : "object",
        "required" : [ "libelle" ],
        "properties" : {
          "niveauId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libelle" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "type" : {
            "type" : "string",
            "maxLength" : 20
          },
          "partitionKey" : {
            "type" : "string",
            "maxLength" : 40
          },
          "effectif" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "HoraireInput" : {
        "type" : "object",
        "properties" : {
          "jour" : {
            "type" : "string",
            "maxLength" : 12
          },
          "heureDebut" : {
            "type" : "string",
            "maxLength" : 8
          },
          "heureFin" : {
            "type" : "string",
            "maxLength" : 8
          },
          "estPause" : {
            "type" : "boolean"
          },
          "libelle" : {
            "type" : "string",
            "maxLength" : 80
          }
        }
      },
      "HoraireInput1" : {
        "type" : "object",
        "properties" : {
          "jour" : {
            "type" : "string"
          },
          "heureDebut" : {
            "type" : "string"
          },
          "heureFin" : {
            "type" : "string"
          },
          "estPause" : {
            "type" : "boolean"
          },
          "libelle" : {
            "type" : "string"
          }
        }
      },
      "HoraireRequest" : {
        "type" : "object",
        "required" : [ "jour", "heureDebut", "heureFin" ],
        "properties" : {
          "jour" : {
            "$ref" : "#/components/schemas/DayOfWeek"
          },
          "heureDebut" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "heureFin" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "estPause" : {
            "type" : "boolean"
          },
          "libelle" : {
            "type" : "string",
            "maxLength" : 80
          },
          "cyclesAutorises" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "niveauxAutorises" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "IncidentFamilleView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneNom" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "type" : {
            "type" : "string"
          },
          "retardMinutes" : {
            "type" : "integer",
            "format" : "int32"
          },
          "detail" : {
            "type" : "string"
          }
        }
      },
      "IncidentInput" : {
        "type" : "object",
        "properties" : {
          "typeIncidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "gravite" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "lieu" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "eleveIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          },
          "temoins" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TemoinInput"
            }
          },
          "propositionTypeSanctionId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "soumettre" : {
            "type" : "boolean"
          }
        }
      },
      "IncidentInput1" : {
        "type" : "object",
        "properties" : {
          "ligneId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "type" : {
            "type" : "string"
          },
          "retardMinutes" : {
            "type" : "integer",
            "format" : "int32"
          },
          "detail" : {
            "type" : "string"
          }
        }
      },
      "IncidentLigne" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneNom" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "type" : {
            "type" : "string"
          },
          "retardMinutes" : {
            "type" : "integer",
            "format" : "int32"
          },
          "detail" : {
            "type" : "string"
          },
          "declareLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "declareParNom" : {
            "type" : "string"
          },
          "parentsPrevenus" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "IncidentResumeView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "statut" : {
            "type" : "string"
          },
          "typeCode" : {
            "type" : "string"
          },
          "typeLibelle" : {
            "type" : "string"
          },
          "gravite" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "eleves" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EleveImpliqueView"
            }
          },
          "auteurNom" : {
            "type" : "string"
          },
          "soumisLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "joursAttente" : {
            "type" : "integer",
            "format" : "int64"
          },
          "enRetard" : {
            "type" : "boolean"
          },
          "nbSanctions" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "IncidentView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "statut" : {
            "type" : "string"
          },
          "typeCode" : {
            "type" : "string"
          },
          "typeLibelle" : {
            "type" : "string"
          },
          "gravite" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "eleves" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EleveImpliqueView"
            }
          },
          "auteurNom" : {
            "type" : "string"
          },
          "soumisLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "joursAttente" : {
            "type" : "integer",
            "format" : "int64"
          },
          "enRetard" : {
            "type" : "boolean"
          },
          "nbSanctions" : {
            "type" : "integer",
            "format" : "int64"
          },
          "typeIncidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "lieu" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "auteurId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "auteurEstMoi" : {
            "type" : "boolean"
          },
          "temoins" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TemoinView"
            }
          },
          "piecesJointes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PieceJointeView"
            }
          },
          "sanctions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SanctionView"
            }
          },
          "conseils" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConseilView"
            }
          },
          "motifClassement" : {
            "type" : "string"
          },
          "motifAnnulation" : {
            "type" : "string"
          },
          "modifiable" : {
            "type" : "boolean"
          },
          "creeLe" : {
            "$ref" : "#/components/schemas/Instant"
          }
        }
      },
      "IndispoRequest" : {
        "type" : "object",
        "required" : [ "jour", "heureDebut", "heureFin" ],
        "properties" : {
          "jour" : {
            "$ref" : "#/components/schemas/DayOfWeek"
          },
          "heureDebut" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "heureFin" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "motif" : {
            "type" : "string"
          }
        }
      },
      "InitiateRequest" : {
        "type" : "object",
        "required" : [ "subscriptionRequestId", "phone" ],
        "properties" : {
          "subscriptionRequestId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "phone" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "paymentMethod" : {
            "type" : "string"
          },
          "mmoProvider" : {
            "type" : "string"
          }
        }
      },
      "InstanceCycleView" : {
        "type" : "object",
        "properties" : {
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "cycle" : {
            "type" : "string"
          },
          "instance" : {
            "type" : "string"
          },
          "parDefaut" : {
            "type" : "boolean"
          }
        }
      },
      "InstanceInput" : {
        "type" : "object",
        "properties" : {
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "instance" : {
            "type" : "string"
          }
        }
      },
      "InstancesInput" : {
        "type" : "object",
        "properties" : {
          "instances" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/InstanceInput"
            }
          }
        }
      },
      "Instant" : {
        "type" : "string",
        "format" : "date-time",
        "examples" : [ "2022-03-10T16:15:50Z" ]
      },
      "InvaliderRequest" : {
        "type" : "object",
        "properties" : {
          "reason" : {
            "type" : "string"
          }
        }
      },
      "InviteUserRequest" : {
        "type" : "object",
        "required" : [ "email", "nom", "role" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "prenoms" : {
            "type" : "string",
            "maxLength" : 120
          },
          "role" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "Issue" : {
        "type" : "string",
        "enum" : [ "APPLIQUE", "REJOUE", "SUPPLANTE", "CONFLIT" ]
      },
      "JourNonOuvreRequest" : {
        "type" : "object",
        "required" : [ "dateDebut", "dateFin", "libelle", "type" ],
        "properties" : {
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "libelle" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "type" : {
            "type" : "string",
            "pattern" : "VACANCES|FERIE|FERMETURE"
          }
        }
      },
      "Ligne" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "sens" : {
            "type" : "string"
          },
          "vehiculeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "vehiculeLibelle" : {
            "type" : "string"
          },
          "capacite" : {
            "type" : "integer",
            "format" : "int32"
          },
          "conducteurId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "conducteurLibelle" : {
            "type" : "string"
          },
          "accompagnateurId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "accompagnateurLibelle" : {
            "type" : "string"
          },
          "tarifMensuelXof" : {
            "type" : "integer",
            "format" : "int64"
          },
          "statut" : {
            "type" : "string"
          },
          "arrets" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Arret"
            }
          },
          "placesConfirmees" : {
            "type" : "integer",
            "format" : "int32"
          },
          "placesRestantes" : {
            "type" : "integer",
            "format" : "int32"
          },
          "enAttente" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "LigneBareme" : {
        "type" : "object",
        "properties" : {
          "typeIncidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "gravite" : {
            "type" : "string"
          },
          "typeSanctionIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        }
      },
      "LigneFamille" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "sens" : {
            "type" : "string"
          },
          "tarifMensuelXof" : {
            "type" : "integer",
            "format" : "int64"
          },
          "arrets" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Arret"
            }
          },
          "complete" : {
            "type" : "boolean"
          }
        }
      },
      "LigneGpaVue" : {
        "type" : "object",
        "properties" : {
          "lettre" : {
            "type" : "string"
          },
          "noteMin" : {
            "type" : "number"
          },
          "points" : {
            "type" : "number"
          }
        }
      },
      "LigneInput" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          },
          "sens" : {
            "type" : "string"
          },
          "vehiculeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "capacite" : {
            "type" : "integer",
            "format" : "int32"
          },
          "conducteurId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "accompagnateurId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "tarifMensuelXof" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "LigneResume" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "sens" : {
            "type" : "string"
          },
          "statut" : {
            "type" : "string"
          },
          "capacite" : {
            "type" : "integer",
            "format" : "int32"
          },
          "placesConfirmees" : {
            "type" : "integer",
            "format" : "int32"
          },
          "enAttente" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "LigneRetenueView" : {
        "type" : "object",
        "properties" : {
          "sanctionId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "prenom" : {
            "type" : "string"
          },
          "classe" : {
            "type" : "string"
          },
          "presence" : {
            "type" : "string"
          }
        }
      },
      "LigneStat" : {
        "type" : "object",
        "properties" : {
          "cle" : {
            "type" : "string"
          },
          "code" : {
            "type" : "string"
          },
          "libelle" : {
            "type" : "string"
          },
          "n" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "LimitsRequest" : {
        "type" : "object",
        "properties" : {
          "maxEtablissements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "weeklyGenerationQuota" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "LinkProfesseurRequest" : {
        "type" : "object",
        "required" : [ "userId" ],
        "properties" : {
          "userId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "LocalDate" : {
        "type" : "string",
        "format" : "date",
        "examples" : [ "2022-03-10" ]
      },
      "LocalTime" : {
        "type" : "string",
        "format" : "local-time",
        "examples" : [ "13:45:30.123456789" ],
        "externalDocs" : {
          "description" : "As defined by 'partial-time' in RFC3339",
          "url" : "https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6"
        }
      },
      "LoginRequest" : {
        "type" : "object",
        "required" : [ "email", "password" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "password" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "MeasuresRequest" : {
        "type" : "object",
        "properties" : {
          "measures" : {
            "type" : "string"
          }
        }
      },
      "MembreInput" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nomLibre" : {
            "type" : "string"
          },
          "qualite" : {
            "type" : "string"
          }
        }
      },
      "MembreView" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "qualite" : {
            "type" : "string"
          }
        }
      },
      "MentionVue" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string"
          },
          "libelle" : {
            "type" : "string"
          },
          "seuil" : {
            "type" : "number"
          }
        }
      },
      "MesDroits" : {
        "type" : "object",
        "properties" : {
          "gestion" : {
            "type" : "boolean"
          },
          "pointage" : {
            "type" : "boolean"
          },
          "admin" : {
            "type" : "boolean"
          }
        }
      },
      "MessageResponse" : {
        "type" : "object",
        "properties" : {
          "message" : {
            "type" : "string"
          },
          "timestamp" : {
            "$ref" : "#/components/schemas/Instant"
          }
        }
      },
      "ModificationEvaluationInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "coefficient" : {
            "type" : "number"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "baremeId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "MomoAccountInput" : {
        "type" : "object",
        "properties" : {
          "operator" : {
            "type" : "string"
          },
          "contact" : {
            "type" : "string"
          },
          "preferred" : {
            "type" : "boolean"
          }
        }
      },
      "MotifAbsenceRequest" : {
        "type" : "object",
        "required" : [ "libelle" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 80,
            "pattern" : "\\S"
          },
          "justifiantParDefaut" : {
            "type" : "boolean"
          },
          "actif" : {
            "type" : "boolean"
          }
        }
      },
      "MotifBody" : {
        "type" : "object",
        "properties" : {
          "motif" : {
            "type" : "string"
          }
        }
      },
      "MotifInput" : {
        "type" : "object",
        "properties" : {
          "motif" : {
            "type" : "string"
          }
        }
      },
      "MotifInput1" : {
        "type" : "object",
        "properties" : {
          "motif" : {
            "type" : "string"
          }
        }
      },
      "MotifRequest" : {
        "type" : "object",
        "required" : [ "motif" ],
        "properties" : {
          "motif" : {
            "type" : "string",
            "minLength" : 5,
            "maxLength" : 500,
            "pattern" : "\\S"
          }
        }
      },
      "MotifRequest1" : {
        "type" : "object",
        "required" : [ "motif" ],
        "properties" : {
          "motif" : {
            "type" : "string",
            "minLength" : 5,
            "maxLength" : 500,
            "pattern" : "\\S"
          }
        }
      },
      "MotifRequest2" : {
        "type" : "object",
        "properties" : {
          "motif" : {
            "type" : "string"
          }
        }
      },
      "MoveLessonRequest" : {
        "type" : "object",
        "properties" : {
          "jour" : {
            "$ref" : "#/components/schemas/DayOfWeek"
          },
          "debut" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "fin" : {
            "$ref" : "#/components/schemas/LocalTime"
          }
        }
      },
      "MoyenPaiement" : {
        "type" : "string",
        "enum" : [ "ORANGE_MONEY", "MTN_MOMO", "WAVE", "MOOV", "CB", "VIREMENT", "MOBILE_MONEY" ]
      },
      "NiveauInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 80
          },
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "effectif" : {
            "type" : "integer",
            "format" : "int32"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "NiveauInput1" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "effectif" : {
            "type" : "integer",
            "format" : "int32"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "NiveauRequest" : {
        "type" : "object",
        "required" : [ "libelle", "cycleId" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 80,
            "pattern" : "\\S"
          },
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "effectif" : {
            "type" : "integer",
            "format" : "int32"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          },
          "professeurPrincipalId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "NoteInput" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "statut" : {
            "type" : "string"
          },
          "valeurNumerique" : {
            "type" : "number"
          },
          "valeurTexte" : {
            "type" : "string"
          },
          "appreciation" : {
            "type" : "string"
          }
        }
      },
      "NoteReq" : {
        "type" : "object",
        "properties" : {
          "text" : {
            "type" : "string"
          }
        }
      },
      "NotesInput" : {
        "type" : "object",
        "properties" : {
          "notes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NoteInput"
            }
          }
        }
      },
      "NotifyRequest" : {
        "type" : "object",
        "properties" : {
          "etablissementId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "titre" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string"
          }
        }
      },
      "NpsRequest" : {
        "type" : "object",
        "properties" : {
          "score" : {
            "type" : "integer",
            "format" : "int32",
            "maximum" : 10,
            "minimum" : 0
          },
          "commentaire" : {
            "type" : "string"
          }
        }
      },
      "OptionRequest" : {
        "type" : "object",
        "required" : [ "souscrite" ],
        "properties" : {
          "souscrite" : {
            "type" : "boolean"
          }
        }
      },
      "ParametresInput" : {
        "type" : "object",
        "properties" : {
          "delaiInstructionJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "seuilExclusionConseilJours" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ParametresNotesVue" : {
        "type" : "object",
        "properties" : {
          "regleAbsence" : {
            "type" : "string"
          },
          "rangVisibleParents" : {
            "type" : "boolean"
          },
          "notesVisiblesParents" : {
            "type" : "boolean"
          }
        }
      },
      "ParametresRequest" : {
        "type" : "object",
        "required" : [ "heureLimiteMatin", "heureRecap" ],
        "properties" : {
          "delaiVerrouillageHeures" : {
            "type" : "integer",
            "format" : "int32",
            "maximum" : 720,
            "minimum" : 1
          },
          "seuilRetardMinutes" : {
            "type" : "integer",
            "format" : "int32",
            "maximum" : 240,
            "minimum" : 1
          },
          "seuilAlerteDemiJournees" : {
            "type" : "integer",
            "format" : "int32",
            "maximum" : 200,
            "minimum" : 1
          },
          "heureLimiteMatin" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "heureRecap" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "ParametresRequest1" : {
        "type" : "object",
        "properties" : {
          "codeRecu" : {
            "type" : "string",
            "maxLength" : 12
          },
          "plafondRemisePct" : {
            "type" : "integer",
            "format" : "int32"
          },
          "fratrieActive" : {
            "type" : "boolean"
          },
          "fratriePct2e" : {
            "type" : "integer",
            "format" : "int32"
          },
          "fratriePct3ePlus" : {
            "type" : "integer",
            "format" : "int32"
          },
          "paliersRelance" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          },
          "jourEcheanceMensuelle" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ParametresView" : {
        "type" : "object",
        "properties" : {
          "delaiInstructionJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "seuilExclusionConseilJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "instances" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/InstanceCycleView"
            }
          },
          "typesIncident" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TypeIncidentView"
            }
          },
          "typesSanction" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TypeSanctionView"
            }
          },
          "bareme" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneBareme"
            }
          }
        }
      },
      "ParentLinkRequest" : {
        "type" : "object",
        "required" : [ "lien" ],
        "properties" : {
          "parentEmail" : {
            "type" : "string"
          },
          "lien" : {
            "type" : "string",
            "maxLength" : 16,
            "pattern" : "\\S"
          },
          "nom" : {
            "type" : "string"
          },
          "prenoms" : {
            "type" : "string"
          }
        }
      },
      "PeriodeRef" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libelle" : {
            "type" : "string"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "PeriodeRequest" : {
        "type" : "object",
        "required" : [ "libelle", "dateDebut", "dateFin" ],
        "properties" : {
          "libelle" : {
            "type" : "string",
            "maxLength" : 80,
            "pattern" : "\\S"
          },
          "type" : {
            "type" : "string",
            "pattern" : "TRIMESTRE|SEMESTRE|SEQUENCE|BIMESTRE"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32",
            "maximum" : 99,
            "minimum" : 1
          },
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "fenetreSaisieDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "fenetreSaisieFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateConseilClasse" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "PersonnelRef" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          },
          "role" : {
            "type" : "string"
          }
        }
      },
      "PieceJointeView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nomOriginal" : {
            "type" : "string"
          },
          "typeMime" : {
            "type" : "string"
          },
          "taille" : {
            "type" : "integer",
            "format" : "int64"
          },
          "ajouteeLe" : {
            "$ref" : "#/components/schemas/Instant"
          }
        }
      },
      "PinLessonRequest" : {
        "type" : "object",
        "properties" : {
          "pinned" : {
            "type" : "boolean"
          }
        }
      },
      "PlageHoraireRequest" : {
        "type" : "object",
        "required" : [ "debut", "fin" ],
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "debut" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "fin" : {
            "$ref" : "#/components/schemas/LocalTime"
          }
        }
      },
      "Plan" : {
        "type" : "string",
        "enum" : [ "ESSAI", "ESSENTIEL", "PRO", "ENTERPRISE" ]
      },
      "PlanRequest" : {
        "type" : "object",
        "required" : [ "echeancierId", "echeances" ],
        "properties" : {
          "echeancierId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "echeances" : {
            "type" : "array",
            "maxItems" : 24,
            "minItems" : 1,
            "items" : {
              "$ref" : "#/components/schemas/EcheancePlanInput"
            }
          },
          "motif" : {
            "type" : "string",
            "maxLength" : 500
          }
        }
      },
      "PoidsInput" : {
        "type" : "object",
        "properties" : {
          "lignes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PoidsPeriodeVue"
            }
          }
        }
      },
      "PoidsPeriodeVue" : {
        "type" : "object",
        "properties" : {
          "periodeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periode" : {
            "type" : "string"
          },
          "poids" : {
            "type" : "number"
          }
        }
      },
      "Pointage" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "affectationId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "type" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "statut" : {
            "type" : "string"
          },
          "source" : {
            "type" : "string"
          },
          "clientTimestamp" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "enregistreLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "version" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "PointageFamilleView" : {
        "type" : "object",
        "properties" : {
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "type" : {
            "type" : "string"
          },
          "statut" : {
            "type" : "string"
          }
        }
      },
      "PointageInput" : {
        "type" : "object",
        "properties" : {
          "affectationId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "type" : {
            "type" : "string"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "cleIdempotence" : {
            "type" : "string"
          },
          "clientTimestamp" : {
            "$ref" : "#/components/schemas/Instant"
          }
        }
      },
      "PointageResultat" : {
        "type" : "object",
        "properties" : {
          "cleIdempotence" : {
            "type" : "string"
          },
          "issue" : {
            "$ref" : "#/components/schemas/Issue"
          },
          "pointage" : {
            "$ref" : "#/components/schemas/Pointage"
          }
        }
      },
      "PointageSyncInput" : {
        "type" : "object",
        "properties" : {
          "evenements" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PointageInput"
            }
          }
        }
      },
      "PointageSyncResultat" : {
        "type" : "object",
        "properties" : {
          "resultats" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PointageResultat"
            }
          }
        }
      },
      "PosteRequest" : {
        "type" : "object",
        "required" : [ "type", "libelle", "montant", "cible", "obligatoire", "periodicite" ],
        "properties" : {
          "type" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "libelle" : {
            "type" : "string",
            "maxLength" : 80,
            "pattern" : "\\S"
          },
          "montant" : {
            "type" : "integer",
            "format" : "int64"
          },
          "cible" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "obligatoire" : {
            "type" : "boolean"
          },
          "periodicite" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "PreferenceRequest" : {
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        }
      },
      "PreferencesRequest" : {
        "type" : "object",
        "properties" : {
          "nbJoursLibresProfPref" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pauseMidiAuto" : {
            "type" : "boolean"
          },
          "pauseMidiDebut" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "pauseMidiFin" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "seuilApresMidi" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "amplitudeMaxEleveHeures" : {
            "type" : "integer",
            "format" : "int32"
          },
          "chargeMinJourClasse" : {
            "type" : "integer",
            "format" : "int32"
          },
          "chargeMaxJourClasse" : {
            "type" : "integer",
            "format" : "int32"
          },
          "chargeMaxJourProf" : {
            "type" : "integer",
            "format" : "int32"
          },
          "strategieQuotaMulticycle" : {
            "type" : "string"
          },
          "modeSalle" : {
            "type" : "string"
          }
        }
      },
      "PreferencesRequest1" : {
        "type" : "object",
        "required" : [ "email", "whatsapp" ],
        "properties" : {
          "email" : {
            "type" : "boolean"
          },
          "whatsapp" : {
            "type" : "boolean"
          }
        }
      },
      "PresenceSaisie" : {
        "type" : "object",
        "required" : [ "eleveId", "statut" ],
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "statut" : {
            "type" : "string",
            "pattern" : "PRESENT|ABSENT|RETARD|EXCLU|DISPENSE"
          },
          "retardMinutes" : {
            "type" : "integer",
            "format" : "int32",
            "maximum" : 600,
            "minimum" : 1
          }
        }
      },
      "PricingPatch" : {
        "type" : "object",
        "properties" : {
          "proMonthlyXof" : {
            "type" : "integer",
            "format" : "int64"
          },
          "discountSemesterPct" : {
            "type" : "integer",
            "format" : "int32"
          },
          "discountAnnualPct" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ProfesseurInput" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string",
            "maxLength" : 120
          },
          "prenoms" : {
            "type" : "string",
            "maxLength" : 120
          },
          "matricule" : {
            "type" : "string",
            "maxLength" : 60
          },
          "email" : {
            "type" : "string",
            "maxLength" : 160
          },
          "telephone" : {
            "type" : "string",
            "maxLength" : 40
          },
          "nombreHeureAutorise" : {
            "type" : "integer",
            "format" : "int32"
          },
          "statut" : {
            "type" : "string",
            "maxLength" : 20
          },
          "actif" : {
            "type" : "boolean"
          }
        }
      },
      "ProfesseurInput1" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          },
          "prenoms" : {
            "type" : "string"
          },
          "matricule" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "telephone" : {
            "type" : "string"
          },
          "nombreHeureAutorise" : {
            "type" : "integer",
            "format" : "int32"
          },
          "statut" : {
            "type" : "string"
          },
          "actif" : {
            "type" : "boolean"
          }
        }
      },
      "ProfesseurPrincipalLink" : {
        "type" : "object",
        "properties" : {
          "niveauLibelle" : {
            "type" : "string"
          },
          "professeurNomComplet" : {
            "type" : "string"
          }
        }
      },
      "ProfesseurRequest" : {
        "type" : "object",
        "required" : [ "nom" ],
        "properties" : {
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "prenoms" : {
            "type" : "string",
            "maxLength" : 120
          },
          "matricule" : {
            "type" : "string",
            "maxLength" : 40
          },
          "email" : {
            "type" : "string",
            "maxLength" : 255
          },
          "telephone" : {
            "type" : "string",
            "maxLength" : 40
          },
          "nombreHeureAutorise" : {
            "type" : "integer",
            "exclusiveMinimum" : 0,
            "format" : "int32"
          },
          "margeDepassementQuota" : {
            "type" : "integer",
            "format" : "int32"
          },
          "statut" : {
            "type" : "string"
          },
          "actif" : {
            "type" : "boolean"
          },
          "disciplineIds" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          },
          "cycleIds" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          },
          "affectations" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AffectationDto"
            }
          },
          "indisponibilites" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/IndispoRequest"
            }
          },
          "diplomes" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "maxLength" : 120
            }
          }
        }
      },
      "QuotaUpdateRequest" : {
        "type" : "object",
        "properties" : {
          "quotaGenerationsHebdo" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unlimited" : {
            "type" : "boolean"
          },
          "motif" : {
            "type" : "string"
          }
        }
      },
      "RateUpdateRequest" : {
        "type" : "object",
        "properties" : {
          "rate" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "RattrapageInput" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "valeurNumerique" : {
            "type" : "number"
          },
          "valeurTexte" : {
            "type" : "string"
          }
        }
      },
      "RattrapagesInput" : {
        "type" : "object",
        "properties" : {
          "rattrapages" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RattrapageInput"
            }
          }
        }
      },
      "ReassignRequest" : {
        "type" : "object",
        "properties" : {
          "commercialId" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }
      },
      "RecalculRequest" : {
        "type" : "object",
        "required" : [ "empreinte" ],
        "properties" : {
          "empreinte" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "Referentiel" : {
        "type" : "object",
        "properties" : {
          "sens" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "periodicites" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "annees" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AnneeRef"
            }
          },
          "vehiculesActifs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/VehiculeRef"
            }
          },
          "conducteursPossibles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConducteurRef"
            }
          },
          "aujourdhui" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          }
        }
      },
      "ReferentielView" : {
        "type" : "object",
        "properties" : {
          "aujourdhui" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "typesIncident" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TypeIncidentView"
            }
          },
          "typesSanction" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TypeSanctionView"
            }
          },
          "bareme" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneBareme"
            }
          },
          "mesClasses" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          },
          "classes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ClasseRef"
            }
          },
          "gestion" : {
            "type" : "boolean"
          },
          "admin" : {
            "type" : "boolean"
          },
          "delaiInstructionJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "seuilExclusionConseilJours" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "RefreshRequest" : {
        "type" : "object",
        "required" : [ "refreshToken" ],
        "properties" : {
          "refreshToken" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "RefusRequest" : {
        "type" : "object",
        "required" : [ "motif" ],
        "properties" : {
          "motif" : {
            "type" : "string",
            "minLength" : 3,
            "maxLength" : 500,
            "pattern" : "\\S"
          }
        }
      },
      "RegisterCommercialRequest" : {
        "type" : "object",
        "required" : [ "nom", "email", "password", "telephone" ],
        "properties" : {
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "prenoms" : {
            "type" : "string",
            "maxLength" : 120
          },
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "password" : {
            "type" : "string",
            "minLength" : 8,
            "maxLength" : 128,
            "pattern" : "\\S"
          },
          "telephone" : {
            "type" : "string",
            "maxLength" : 40,
            "pattern" : "\\S"
          },
          "societe" : {
            "type" : "string",
            "maxLength" : 160
          },
          "locale" : {
            "type" : "string",
            "maxLength" : 10
          },
          "paysCode" : {
            "type" : "string",
            "minLength" : 2,
            "maxLength" : 2
          },
          "cguAccepted" : {
            "type" : "boolean"
          }
        }
      },
      "RegisterDeveloperRequest" : {
        "type" : "object",
        "required" : [ "email", "password", "nom" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "password" : {
            "type" : "string",
            "minLength" : 8,
            "maxLength" : 128,
            "pattern" : "\\S"
          },
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "prenoms" : {
            "type" : "string",
            "maxLength" : 120
          },
          "companyName" : {
            "type" : "string",
            "maxLength" : 160
          },
          "acceptedTerms" : {
            "type" : "boolean"
          }
        }
      },
      "RegisterRequest" : {
        "type" : "object",
        "required" : [ "email", "password", "nom", "contact", "etablissementNom" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "password" : {
            "type" : "string",
            "minLength" : 8,
            "maxLength" : 128,
            "pattern" : "\\S"
          },
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "prenoms" : {
            "type" : "string",
            "maxLength" : 120
          },
          "contact" : {
            "type" : "string",
            "maxLength" : 40,
            "pattern" : "\\S"
          },
          "etablissementNom" : {
            "type" : "string",
            "maxLength" : 255,
            "pattern" : "\\S"
          },
          "locale" : {
            "type" : "string",
            "maxLength" : 10
          },
          "refCode" : {
            "type" : "string",
            "maxLength" : 40
          },
          "acquisitionReferrer" : {
            "type" : "string",
            "maxLength" : 300
          },
          "utmSource" : {
            "type" : "string",
            "maxLength" : 120
          },
          "utmMedium" : {
            "type" : "string",
            "maxLength" : 120
          },
          "utmCampaign" : {
            "type" : "string",
            "maxLength" : 120
          },
          "acquisitionGclid" : {
            "type" : "string",
            "maxLength" : 255
          },
          "acquisitionFbclid" : {
            "type" : "string",
            "maxLength" : 255
          }
        }
      },
      "RejectRequest" : {
        "type" : "object",
        "required" : [ "reason" ],
        "properties" : {
          "reason" : {
            "type" : "string",
            "maxLength" : 1024,
            "pattern" : "\\S"
          }
        }
      },
      "RemiseRequest" : {
        "type" : "object",
        "required" : [ "echeancierId", "type", "mode", "valeur", "motif" ],
        "properties" : {
          "echeancierId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "type" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "mode" : {
            "type" : "string",
            "pattern" : "\\S"
          },
          "valeur" : {
            "type" : "integer",
            "format" : "int64"
          },
          "typePoste" : {
            "type" : "string"
          },
          "motif" : {
            "type" : "string",
            "minLength" : 5,
            "maxLength" : 500,
            "pattern" : "\\S"
          }
        }
      },
      "RenameRequest" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          }
        }
      },
      "ReplyRequest" : {
        "type" : "object",
        "properties" : {
          "body" : {
            "type" : "string"
          },
          "internal" : {
            "type" : "boolean"
          }
        }
      },
      "ReponseDemandeRequest" : {
        "type" : "object",
        "required" : [ "reponse" ],
        "properties" : {
          "reponse" : {
            "type" : "string",
            "minLength" : 5,
            "maxLength" : 500,
            "pattern" : "\\S"
          }
        }
      },
      "ReportInput" : {
        "type" : "object",
        "properties" : {
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heure" : {
            "type" : "string"
          },
          "lieu" : {
            "type" : "string"
          },
          "motif" : {
            "type" : "string"
          }
        }
      },
      "ResendVerificationBulk" : {
        "type" : "object",
        "properties" : {
          "userIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "allUnverified" : {
            "type" : "boolean"
          }
        }
      },
      "ReservationRequest" : {
        "type" : "object",
        "required" : [ "jour", "heureDebut", "heureFin", "libelle" ],
        "properties" : {
          "jour" : {
            "$ref" : "#/components/schemas/DayOfWeek"
          },
          "heureDebut" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "heureFin" : {
            "$ref" : "#/components/schemas/LocalTime"
          },
          "libelle" : {
            "type" : "string",
            "maxLength" : 255,
            "pattern" : "\\S"
          },
          "cyclesConcernes" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "niveauxConcernes" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "afficher" : {
            "type" : "boolean"
          }
        }
      },
      "ResetPasswordRequest" : {
        "type" : "object",
        "required" : [ "nouveauMotDePasse" ],
        "properties" : {
          "nouveauMotDePasse" : {
            "type" : "string",
            "minLength" : 8,
            "maxLength" : 128,
            "pattern" : "\\S"
          }
        }
      },
      "ResolveRequest" : {
        "type" : "object",
        "properties" : {
          "resolution" : {
            "type" : "string"
          }
        }
      },
      "RessourcesView" : {
        "type" : "object",
        "properties" : {
          "personnel" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PersonnelRef"
            }
          },
          "administrateurs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PersonnelRef"
            }
          },
          "salles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SalleRef"
            }
          }
        }
      },
      "ResubscribeRequest" : {
        "type" : "object",
        "properties" : {
          "token" : {
            "type" : "string"
          }
        }
      },
      "RetenueInput" : {
        "type" : "object",
        "properties" : {
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heureDebut" : {
            "type" : "string"
          },
          "heureFin" : {
            "type" : "string"
          },
          "salleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "lieu" : {
            "type" : "string"
          },
          "surveillantId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "sanctionIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid",
              "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
            }
          }
        }
      },
      "RetenuePrevueView" : {
        "type" : "object",
        "properties" : {
          "seanceId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heureDebut" : {
            "type" : "string"
          },
          "heureFin" : {
            "type" : "string"
          },
          "lieu" : {
            "type" : "string"
          }
        }
      },
      "RevokeReason" : {
        "type" : "object",
        "properties" : {
          "reason" : {
            "type" : "string"
          }
        }
      },
      "RoleChange" : {
        "type" : "object",
        "properties" : {
          "role" : {
            "type" : "string"
          },
          "reason" : {
            "type" : "string"
          }
        }
      },
      "SaisiePresencesRequest" : {
        "type" : "object",
        "required" : [ "presences" ],
        "properties" : {
          "presences" : {
            "type" : "array",
            "maxItems" : 200,
            "items" : {
              "$ref" : "#/components/schemas/PresenceSaisie"
            }
          },
          "motifCorrection" : {
            "type" : "string",
            "maxLength" : 500
          }
        }
      },
      "SalleRef" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          }
        }
      },
      "SalleRequest" : {
        "type" : "object",
        "required" : [ "nom" ],
        "properties" : {
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "type" : {
            "type" : "string",
            "maxLength" : 40
          },
          "capacite" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SanctionFamilleView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "dateIncident" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "typeIncidentCode" : {
            "type" : "string"
          },
          "typeIncidentLibelle" : {
            "type" : "string"
          },
          "nature" : {
            "type" : "string"
          },
          "typeSanctionCode" : {
            "type" : "string"
          },
          "typeSanctionLibelle" : {
            "type" : "string"
          },
          "statut" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "nbJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "retenue" : {
            "$ref" : "#/components/schemas/RetenuePrevueView"
          }
        }
      },
      "SanctionInput" : {
        "type" : "object",
        "properties" : {
          "incidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "typeSanctionId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "nbJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "messageFamille" : {
            "type" : "string"
          },
          "motifHorsBareme" : {
            "type" : "string"
          }
        }
      },
      "SanctionView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "incidentId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "incidentTypeCode" : {
            "type" : "string"
          },
          "incidentTypeLibelle" : {
            "type" : "string"
          },
          "incidentDate" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "eleveNom" : {
            "type" : "string"
          },
          "elevePrenom" : {
            "type" : "string"
          },
          "classe" : {
            "type" : "string"
          },
          "typeSanctionId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "typeCode" : {
            "type" : "string"
          },
          "typeLibelle" : {
            "type" : "string"
          },
          "nature" : {
            "type" : "string"
          },
          "origine" : {
            "type" : "string"
          },
          "statut" : {
            "type" : "string"
          },
          "horsBareme" : {
            "type" : "boolean"
          },
          "motifHorsBareme" : {
            "type" : "string"
          },
          "messageFamille" : {
            "type" : "string"
          },
          "dateDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "dateFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "nbJours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "proposeeParNom" : {
            "type" : "string"
          },
          "proposeeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "valideeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "notifieeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "executeeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "clotureeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "annuleeLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "motifAnnulation" : {
            "type" : "string"
          },
          "retenue" : {
            "$ref" : "#/components/schemas/RetenuePrevueView"
          },
          "aPlanifier" : {
            "type" : "boolean"
          },
          "parentsJoignables" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SaveAsRequest" : {
        "type" : "object",
        "properties" : {
          "nom" : {
            "type" : "string"
          }
        }
      },
      "ScopedWarmRestartRequest" : {
        "type" : "object",
        "properties" : {
          "scope" : {
            "type" : "string"
          },
          "target" : {
            "type" : "string"
          },
          "durationSeconds" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SeanceRetenueView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "date" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "heureDebut" : {
            "type" : "string"
          },
          "heureFin" : {
            "type" : "string"
          },
          "salleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "lieu" : {
            "type" : "string"
          },
          "surveillantId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "surveillantNom" : {
            "type" : "string"
          },
          "statut" : {
            "type" : "string"
          },
          "appelFaitLe" : {
            "$ref" : "#/components/schemas/Instant"
          },
          "appelFaitParNom" : {
            "type" : "string"
          },
          "commencee" : {
            "type" : "boolean"
          },
          "monAppel" : {
            "type" : "boolean"
          },
          "eleves" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneRetenueView"
            }
          },
          "motifAnnulation" : {
            "type" : "string"
          }
        }
      },
      "SetPasswordRequest" : {
        "type" : "object",
        "required" : [ "nouveauMotDePasse" ],
        "properties" : {
          "nouveauMotDePasse" : {
            "type" : "string",
            "minLength" : 8,
            "maxLength" : 128,
            "pattern" : "\\S"
          }
        }
      },
      "SettingsUpdateRequest" : {
        "type" : "object",
        "properties" : {
          "values" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          }
        }
      },
      "SettingsUpdateRequest1" : {
        "type" : "object",
        "properties" : {
          "values" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          }
        }
      },
      "Severite" : {
        "type" : "string",
        "enum" : [ "BASSE", "MOYENNE", "HAUTE", "CRITIQUE" ]
      },
      "SmtpTestRequest" : {
        "type" : "object",
        "properties" : {
          "to" : {
            "type" : "string"
          }
        }
      },
      "SoumettreCodeRequete" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string"
          }
        }
      },
      "StatistiquesView" : {
        "type" : "object",
        "properties" : {
          "du" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "au" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "periodeLibelle" : {
            "type" : "string"
          },
          "classeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "classeLibelle" : {
            "type" : "string"
          },
          "typeId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "typeCode" : {
            "type" : "string"
          },
          "typeLibelle" : {
            "type" : "string"
          },
          "incidents" : {
            "type" : "integer",
            "format" : "int64"
          },
          "elevesConcernes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "sanctions" : {
            "type" : "integer",
            "format" : "int64"
          },
          "exclusions" : {
            "type" : "integer",
            "format" : "int64"
          },
          "joursExclusion" : {
            "type" : "integer",
            "format" : "int64"
          },
          "classes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneStat"
            }
          },
          "types" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneStat"
            }
          },
          "gravites" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneStat"
            }
          },
          "natures" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneStat"
            }
          },
          "periodes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PeriodeRef"
            }
          },
          "classesDisponibles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ClasseRef"
            }
          },
          "typesDisponibles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TypeIncidentView"
            }
          }
        }
      },
      "Statut" : {
        "type" : "string",
        "enum" : [ "SOUMISE", "A_LETUDE", "PLANIFIEE", "LIVREE", "REFUSEE" ]
      },
      "Statut1" : {
        "type" : "string",
        "enum" : [ "NOUVEAU", "EN_COURS", "RESOLU", "REJETE" ]
      },
      "StatutChange" : {
        "type" : "object",
        "properties" : {
          "statut" : {
            "type" : "string"
          },
          "reason" : {
            "type" : "string"
          }
        }
      },
      "StatutChange1" : {
        "type" : "object",
        "properties" : {
          "statut" : {
            "type" : "string"
          },
          "reason" : {
            "type" : "string"
          }
        }
      },
      "StatutRequest" : {
        "type" : "object",
        "properties" : {
          "statut" : {
            "type" : "string"
          },
          "motif" : {
            "type" : "string"
          }
        }
      },
      "SubmitRequest" : {
        "type" : "object",
        "required" : [ "authorName", "quote" ],
        "properties" : {
          "authorName" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "authorRole" : {
            "type" : "string",
            "maxLength" : 160
          },
          "etablissementName" : {
            "type" : "string",
            "maxLength" : 160
          },
          "quote" : {
            "type" : "string",
            "maxLength" : 2000,
            "pattern" : "\\S"
          },
          "rating" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SubscribeKeys" : {
        "type" : "object",
        "properties" : {
          "p256dh" : {
            "type" : "string"
          },
          "auth" : {
            "type" : "string"
          }
        }
      },
      "SubscribeRequest" : {
        "type" : "object",
        "properties" : {
          "endpoint" : {
            "type" : "string"
          },
          "keys" : {
            "$ref" : "#/components/schemas/SubscribeKeys"
          }
        }
      },
      "SuspendRequest" : {
        "type" : "object",
        "required" : [ "reason" ],
        "properties" : {
          "reason" : {
            "type" : "string"
          }
        }
      },
      "SwapLessonsRequest" : {
        "type" : "object",
        "properties" : {
          "lessonAId" : {
            "type" : "string"
          },
          "lessonBId" : {
            "type" : "string"
          }
        }
      },
      "SystemeInput" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "decimales" : {
            "type" : "integer",
            "format" : "int32"
          },
          "arrondi" : {
            "type" : "string"
          },
          "regleAbsence" : {
            "type" : "string"
          },
          "seuilValidation" : {
            "type" : "number"
          },
          "baremeNiveauxId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "mentions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MentionVue"
            }
          },
          "conversion" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneGpaVue"
            }
          }
        }
      },
      "TableauBord" : {
        "type" : "object",
        "properties" : {
          "du" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "au" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "ligneFiltre" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "lignes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TableauBordLigne"
            }
          }
        }
      },
      "TableauBordLigne" : {
        "type" : "object",
        "properties" : {
          "ligneId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "ligneNom" : {
            "type" : "string"
          },
          "capacite" : {
            "type" : "integer",
            "format" : "int32"
          },
          "confirmees" : {
            "type" : "integer",
            "format" : "int32"
          },
          "enAttente" : {
            "type" : "integer",
            "format" : "int32"
          },
          "tauxRemplissage" : {
            "type" : "number",
            "format" : "double"
          },
          "retardMoyenMinutes" : {
            "type" : "number",
            "format" : "double"
          },
          "trajetsEnRetard" : {
            "type" : "integer",
            "format" : "int32"
          },
          "annulations" : {
            "type" : "integer",
            "format" : "int32"
          },
          "absencesArret" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TemoinInput" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nomLibre" : {
            "type" : "string"
          }
        }
      },
      "TemoinView" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nom" : {
            "type" : "string"
          }
        }
      },
      "TestimonialUpsert" : {
        "type" : "object",
        "properties" : {
          "authorName" : {
            "type" : "string"
          },
          "authorRole" : {
            "type" : "string"
          },
          "etablissementName" : {
            "type" : "string"
          },
          "quote" : {
            "type" : "string"
          },
          "rating" : {
            "type" : "integer",
            "format" : "int32"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ToggleRequest" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          }
        }
      },
      "TransportFamille" : {
        "type" : "object",
        "properties" : {
          "eleveId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "elevePrenom" : {
            "type" : "string"
          },
          "affectations" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AffectationFamilleView"
            }
          },
          "historiquePointage" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PointageFamilleView"
            }
          },
          "incidents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/IncidentFamilleView"
            }
          },
          "lignesDisponibles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LigneFamille"
            }
          },
          "periodeDefautDebut" : {
            "$ref" : "#/components/schemas/LocalDate"
          },
          "periodeDefautFin" : {
            "$ref" : "#/components/schemas/LocalDate"
          }
        }
      },
      "Type" : {
        "type" : "string",
        "enum" : [ "BUG", "ANOMALIE", "FAILLE_SECURITE", "DENONCIATION", "AUTRE" ]
      },
      "TypeIncidentInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "graviteDefaut" : {
            "type" : "string"
          },
          "actif" : {
            "type" : "boolean"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TypeIncidentView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "code" : {
            "type" : "string"
          },
          "libelle" : {
            "type" : "string"
          },
          "graviteDefaut" : {
            "type" : "string"
          },
          "actif" : {
            "type" : "boolean"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TypeSanctionInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "nature" : {
            "type" : "string"
          },
          "proposableProfesseur" : {
            "type" : "boolean"
          },
          "actif" : {
            "type" : "boolean"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TypeSanctionView" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "code" : {
            "type" : "string"
          },
          "libelle" : {
            "type" : "string"
          },
          "nature" : {
            "type" : "string"
          },
          "proposableProfesseur" : {
            "type" : "boolean"
          },
          "actif" : {
            "type" : "boolean"
          },
          "ordre" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "UUID" : {
        "type" : "string",
        "format" : "uuid",
        "pattern" : "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
      },
      "UnsubscribeRequest" : {
        "type" : "object",
        "properties" : {
          "token" : {
            "type" : "string"
          }
        }
      },
      "UnsubscribeRequest1" : {
        "type" : "object",
        "properties" : {
          "endpoint" : {
            "type" : "string"
          }
        }
      },
      "UpdateFeatureRequest" : {
        "type" : "object",
        "required" : [ "statut" ],
        "properties" : {
          "statut" : {
            "$ref" : "#/components/schemas/Statut"
          }
        }
      },
      "UpdateProfileRequest" : {
        "type" : "object",
        "required" : [ "nom" ],
        "properties" : {
          "nom" : {
            "type" : "string",
            "maxLength" : 120,
            "pattern" : "\\S"
          },
          "prenoms" : {
            "type" : "string",
            "maxLength" : 120
          },
          "telephone" : {
            "type" : "string",
            "maxLength" : 40
          }
        }
      },
      "UpdateRequest" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "severity" : {
            "type" : "string"
          },
          "params" : {
            "type" : "string"
          }
        }
      },
      "UpdateRequest1" : {
        "type" : "object",
        "properties" : {
          "label" : {
            "type" : "string"
          },
          "enabled" : {
            "type" : "boolean"
          },
          "momo" : {
            "type" : "boolean"
          },
          "sortOrder" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "UpdateSignalementRequest" : {
        "type" : "object",
        "properties" : {
          "statut" : {
            "$ref" : "#/components/schemas/Statut1"
          },
          "severite" : {
            "$ref" : "#/components/schemas/Severite"
          }
        }
      },
      "UpdateUserRequest" : {
        "type" : "object",
        "properties" : {
          "role" : {
            "type" : "string"
          },
          "actif" : {
            "type" : "boolean"
          }
        }
      },
      "ValidateResetTokenRequest" : {
        "type" : "object",
        "required" : [ "token" ],
        "properties" : {
          "token" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "ValidationRequest" : {
        "type" : "object",
        "properties" : {
          "messageFamille" : {
            "type" : "string"
          }
        }
      },
      "Vehicule" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libelle" : {
            "type" : "string"
          },
          "immatriculation" : {
            "type" : "string"
          },
          "places" : {
            "type" : "integer",
            "format" : "int32"
          },
          "actif" : {
            "type" : "boolean"
          }
        }
      },
      "VehiculeInput" : {
        "type" : "object",
        "properties" : {
          "libelle" : {
            "type" : "string"
          },
          "immatriculation" : {
            "type" : "string"
          },
          "places" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "VehiculeRef" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libelle" : {
            "type" : "string"
          }
        }
      },
      "VerifyRequest" : {
        "type" : "object",
        "required" : [ "code" ],
        "properties" : {
          "code" : {
            "type" : "string",
            "pattern" : "\\S"
          }
        }
      },
      "VerserRequest" : {
        "type" : "object",
        "properties" : {
          "reference" : {
            "type" : "string"
          },
          "method" : {
            "type" : "string"
          }
        }
      },
      "VolumeHoraireRequest" : {
        "type" : "object",
        "required" : [ "cycleId", "disciplineId", "libellesNiveau", "nombreHeuresObligatoire" ],
        "properties" : {
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "disciplineId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "libellesNiveau" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "nombreHeuresObligatoire" : {
            "type" : "integer",
            "exclusiveMinimum" : 0,
            "format" : "int32"
          },
          "minHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          },
          "blocObligatoire" : {
            "type" : "boolean"
          },
          "facultatif" : {
            "type" : "boolean"
          },
          "intervallesAutorisesJournee" : {
            "type" : "boolean"
          },
          "autoriseGroupesParalleles" : {
            "type" : "boolean"
          }
        }
      },
      "VolumeInput" : {
        "type" : "object",
        "properties" : {
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "disciplineId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nombreHeuresObligatoire" : {
            "type" : "integer",
            "format" : "int32"
          },
          "minHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "VolumeInput1" : {
        "type" : "object",
        "properties" : {
          "cycleId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "disciplineId" : {
            "$ref" : "#/components/schemas/UUID"
          },
          "nombreHeuresObligatoire" : {
            "type" : "integer",
            "format" : "int32"
          },
          "minHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxHeuresConsecutives" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "WarmRestartRequest" : {
        "type" : "object",
        "properties" : {
          "durationSeconds" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "WebhookCreateRequest" : {
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string"
          },
          "events" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "WorkflowTransitionRequest" : {
        "type" : "object",
        "properties" : {
          "targetStatus" : {
            "type" : "string"
          }
        }
      }
    },
    "securitySchemes" : {
      "ApiKeyAuth" : {
        "type" : "apiKey",
        "in" : "header",
        "name" : "X-API-Key",
        "description" : "Clé API (yap_live_… ou yap_test_…)."
      }
    }
  },
  "paths" : {
    "/api/v1/pub/v1/account/etablissements" : {
      "get" : {
        "summary" : "Lister ses établissements",
        "tags" : [ "Compte — établissements" ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer un établissement (niveau compte)",
        "tags" : [ "Compte — établissements" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/EtabInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/cycles" : {
      "get" : {
        "summary" : "Lister les cycles (paginé : ?page&size)",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer un cycle",
        "tags" : [ "Configuration" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CycleInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/cycles/{id}" : {
      "delete" : {
        "summary" : "Supprimer un cycle",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/disciplines" : {
      "get" : {
        "summary" : "Lister les matières / disciplines (paginé)",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer une matière / discipline",
        "tags" : [ "Configuration" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DisciplineInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/disciplines/{id}" : {
      "put" : {
        "summary" : "Modifier une matière / discipline",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DisciplineInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      },
      "delete" : {
        "summary" : "Supprimer une matière / discipline",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/horaires" : {
      "get" : {
        "summary" : "Lister les créneaux horaires",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer un créneau horaire",
        "tags" : [ "Configuration" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/HoraireInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/horaires/{id}" : {
      "delete" : {
        "summary" : "Supprimer un créneau horaire",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/me" : {
      "get" : {
        "summary" : "Informations sur la clé API courante",
        "description" : "Environnement, établissement cible, scopes et quota de génération restant.",
        "tags" : [ "Compte" ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/me/etablissement" : {
      "get" : {
        "summary" : "Profil de l'établissement cible",
        "description" : "Identité publique de l'établissement associé à la clé (nom, sigle, ville, pays, type).",
        "tags" : [ "Compte" ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/me/usage" : {
      "get" : {
        "summary" : "Usage récent de la clé courante",
        "description" : "Appels et erreurs agrégés par jour sur la fenêtre demandée (défaut 30 jours, max 90).",
        "tags" : [ "Compte" ],
        "parameters" : [ {
          "name" : "days",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 30
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/niveaux" : {
      "get" : {
        "summary" : "Lister les classes / niveaux (paginé : ?page&size)",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer une classe / un niveau",
        "tags" : [ "Configuration" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NiveauInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/niveaux/{id}" : {
      "put" : {
        "summary" : "Modifier une classe / un niveau",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NiveauInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      },
      "delete" : {
        "summary" : "Supprimer une classe / un niveau",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/professeurs" : {
      "get" : {
        "summary" : "Lister les professeurs (paginé)",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer un professeur",
        "tags" : [ "Configuration" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProfesseurInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/professeurs/{id}" : {
      "put" : {
        "summary" : "Modifier un professeur",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProfesseurInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      },
      "delete" : {
        "summary" : "Supprimer un professeur",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/generate" : {
      "post" : {
        "summary" : "Lancer une génération d'emploi du temps",
        "description" : "LIVE : génération sur données réelles (décompte le quota). SANDBOX : jeu démo, sans quota.",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "Idempotency-Key",
          "in" : "header",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GenerateRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/jobs" : {
      "get" : {
        "summary" : "Lister les jobs de génération",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 25
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/jobs/{jobId}" : {
      "get" : {
        "summary" : "Statut d'un job",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "jobId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/jobs/{jobId}/export.ics" : {
      "get" : {
        "summary" : "Exporter un emploi du temps au format iCalendar (forfait Pro)",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "jobId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }, {
          "name" : "niveau",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "professeur",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/jobs/{jobId}/export.pdf" : {
      "get" : {
        "summary" : "Exporter un emploi du temps au format PDF",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "jobId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }, {
          "name" : "mode",
          "in" : "query",
          "schema" : {
            "type" : "string",
            "default" : "all"
          }
        }, {
          "name" : "niveau",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "professeur",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/jobs/{jobId}/publish" : {
      "post" : {
        "summary" : "Publier un emploi du temps",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "jobId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/jobs/{jobId}/result" : {
      "get" : {
        "summary" : "Résultat d'un job (leçons)",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "jobId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/published/latest" : {
      "get" : {
        "summary" : "Dernier emploi du temps publié",
        "tags" : [ "Emplois du temps" ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/published/{jobId}/classe/{niveau}" : {
      "get" : {
        "summary" : "Emploi du temps publié d'une classe",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "jobId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        }, {
          "name" : "niveau",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/timetables/published/{jobId}/classes" : {
      "get" : {
        "summary" : "Classes présentes dans un emploi du temps publié",
        "tags" : [ "Emplois du temps" ],
        "parameters" : [ {
          "name" : "jobId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/volumes" : {
      "get" : {
        "summary" : "Lister les volumes horaires",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer un volume horaire (matière × cycle)",
        "tags" : [ "Configuration" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/VolumeInput"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/volumes/{id}" : {
      "delete" : {
        "summary" : "Supprimer un volume horaire",
        "tags" : [ "Configuration" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/webhooks" : {
      "get" : {
        "summary" : "Lister les endpoints webhook",
        "tags" : [ "Webhooks" ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      },
      "post" : {
        "summary" : "Créer un endpoint webhook",
        "description" : "Le secret de signature est renvoyé une seule fois. Événements : timetable.job.completed, timetable.published.",
        "tags" : [ "Webhooks" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateRequest3"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "400" : {
            "description" : "Bad Request"
          }
        }
      }
    },
    "/api/v1/pub/v1/webhooks/deliveries/{deliveryId}/replay" : {
      "post" : {
        "summary" : "Rejouer une livraison",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "deliveryId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/webhooks/{id}" : {
      "delete" : {
        "summary" : "Supprimer un endpoint webhook",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/webhooks/{id}/deliveries" : {
      "get" : {
        "summary" : "Journal de livraison d'un endpoint",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/webhooks/{id}/rotate" : {
      "post" : {
        "summary" : "Régénérer le secret de signature (renvoyé une fois)",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/pub/v1/webhooks/{id}/test" : {
      "post" : {
        "summary" : "Envoyer un événement de test à l'endpoint",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UUID"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          }
        }
      }
    }
  },
  "tags" : [ {
    "name" : "Compte",
    "description" : "Introspection de la clé et des droits"
  }, {
    "name" : "Compte — établissements",
    "description" : "Provisioning d'établissements (niveau compte)"
  }, {
    "name" : "Configuration",
    "description" : "Classes, matières et professeurs de l'établissement"
  }, {
    "name" : "Démo (public)",
    "description" : "Exemples de réponses, sans clé API"
  }, {
    "name" : "Emplois du temps",
    "description" : "Génération, suivi et consultation des emplois du temps"
  }, {
    "name" : "Webhooks",
    "description" : "Endpoints d'événements signés"
  } ],
  "info" : {
    "title" : "YA-Planning API",
    "version" : "1.0",
    "description" : "API REST de la plateforme YA-Planning (Quarkus)."
  },
  "servers" : [ {
    "url" : "/"
  } ],
  "security" : [ {
    "ApiKeyAuth" : [ ]
  } ]
}