{"openapi":"3.0.1","info":{"title":"API for Pen Registry.","description":"This API is related to processing of nominal roll.","version":"1"},"servers":[{"url":"https://pen-nominal-roll-api-8878b4-dev.apps.silver.devops.gov.bc.ca","description":"Generated server url"}],"security":[{"OAUTH2":["READ_NOMINAL_ROLL","PROCESS_NOMINAL_ROLL"]}],"tags":[{"name":"Endpoint to get All Federal band code.","description":"Endpoint to get All Federal band code."},{"name":"Endpoint to add a federal to provincial mapping","description":"Endpoint to add a federal to provincial mapping"},{"name":"Endpoint to update the nominal roll student","description":"Endpoint to update the nominal roll student"},{"name":"Endpoint to start processing of nominal roll students","description":"Endpoint to start processing of nominal roll students"},{"name":"Endpoint to retrieve saga by its ID (GUID).","description":"Endpoint to retrieve saga by its ID (GUID)."},{"name":"Endpoint to check if nominal roll posted students exist","description":"Endpoint to check if nominal roll posted students exist"},{"name":"Endpoint to check if provided processing year nominal roll is already in progress","description":"Endpoint to check if provided processing year nominal roll is already in progress"},{"name":"Endpoint to Delete the entire data set from transient table for the processing year provided","description":"Endpoint to Delete the entire data set from transient table for the processing year provided"},{"name":"Endpoint to validate the given nominal roll student","description":"Endpoint to validate the given nominal roll student"},{"name":"Endpoint to support data table view in frontend, with sort, filter and pagination, for Sagas.","description":"This API endpoint exposes flexible way to query the entity by leveraging JPA specifications."},{"name":"Endpoint to start post data saga.","description":"post data saga"},{"name":"Endpoint to support data table view in frontend, with sort, filter and pagination.","description":"This API endpoint exposes flexible way to query the entity by leveraging JPA specifications."},{"name":"Endpoint to support nominal roll navigation view in frontend.","description":"This API endpoint exposes flexible way to query ids without returning the entire entity."},{"name":"Endpoint to retrieve all saga events by its ID (GUID).","description":"Endpoint to retrieve all saga events by its ID (GUID)."},{"name":"Endpoint to Upload an excel file and convert to json structure.","description":"Endpoint to Upload an excel file and convert to json structure"},{"name":"Endpoint to get the  details of individual record in nominal roll","description":"Endpoint to get the  details of individual record in nominal roll"},{"name":"Endpoint to check for duplicate nominal roll students","description":"Endpoint to check for duplicate nominal roll students"},{"name":"Endpoint to update saga by its ID.","description":"Endpoint to update saga by its ID."}],"paths":{"/api/v1/nominal-roll/{nomRollStudentID}":{"get":{"tags":["Endpoint to get the  details of individual record in nominal roll"],"operationId":"getProcessingResultOfStudent","parameters":[{"name":"nomRollStudentID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NominalRollStudent"}}}},"404":{"description":"NOT FOUND","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NominalRollStudent"}}}}}},"put":{"tags":["Endpoint to update the nominal roll student"],"operationId":"updateNominalRollStudent","parameters":[{"name":"nomRollStudentID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NominalRollStudent"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NominalRollStudent"}}}},"404":{"description":"NOT FOUND","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NominalRollStudent"}}}}}}},"/api/v1/nominal-roll/saga/{sagaId}":{"put":{"tags":["Endpoint to update saga by its ID."],"operationId":"updateSaga","parameters":[{"name":"sagaId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Saga"}}},"required":true},"responses":{"409":{"description":"Conflict.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Saga"}}}},"200":{"description":"OK.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Saga"}}}},"404":{"description":"Not Found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Saga"}}}}}}},"/api/v1/nominal-roll":{"get":{"tags":["Endpoint to check if provided processing year nominal roll is already in progress"],"operationId":"isBeingProcessed","parameters":[{"name":"processingYear","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NominalRollStudentCount"}}}}}}},"post":{"tags":["Endpoint to Upload an excel file and convert to json structure."],"operationId":"processNominalRollFile","parameters":[{"name":"correlationID","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUpload"}}},"required":true},"responses":{"201":{"description":"CREATED","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NominalRollFileProcessResponse"}}}},"400":{"description":"BAD REQUEST","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NominalRollFileProcessResponse"}}}}}},"delete":{"tags":["Endpoint to Delete the entire data set from transient table for the processing year provided"],"operationId":"deleteAll","parameters":[{"name":"processingYear","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"NO CONTENT"}}}},"/api/v1/nominal-roll/validate":{"post":{"tags":["Endpoint to validate the given nominal roll student"],"operationId":"validateNomRollStudent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NominalRollStudent"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NominalRollStudent"}}}}}}},"/api/v1/nominal-roll/saga/post-data":{"post":{"tags":["Endpoint to start post data saga."],"operationId":"postNominalRoll","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NominalRollPostSagaData"}}},"required":true},"responses":{"409":{"description":"Conflict.","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK.","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/v1/nominal-roll/process":{"post":{"tags":["Endpoint to start processing of nominal roll students"],"operationId":"processNominalRollStudents","parameters":[{"name":"correlationID","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NominalRollStudent"}}}},"required":true},"responses":{"202":{"description":"ACCEPTED"}}}},"/api/v1/nominal-roll/federal-province-code":{"post":{"tags":["Endpoint to add a federal to provincial mapping"],"operationId":"addFedProvSchoolCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FedProvSchoolCode"}}},"required":true},"responses":{"201":{"description":"CREATED"},"400":{"description":"BAD REQUEST"}}}},"/api/v1/nominal-roll/saga/{sagaId}/saga-events":{"get":{"tags":["Endpoint to retrieve all saga events by its ID (GUID)."],"operationId":"getSagaEventsBySagaID","parameters":[{"name":"sagaId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK.","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SagaEvent"}}}}},"404":{"description":"Not Found.","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SagaEvent"}}}}}}}},"/api/v1/nominal-roll/saga/{sagaID}":{"get":{"tags":["Endpoint to retrieve saga by its ID (GUID)."],"operationId":"readSaga","parameters":[{"name":"sagaID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Saga"}}}},"404":{"description":"Not Found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Saga"}}}}}}},"/api/v1/nominal-roll/saga/paginated":{"get":{"tags":["Endpoint to support data table view in frontend, with sort, filter and pagination, for Sagas."],"operationId":"findAllSagas","parameters":[{"name":"pageNumber","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"searchCriteriaList","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/searchCriteriaList"}}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSaga"}}}},"500":{"description":"INTERNAL SERVER ERROR.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSaga"}}}}}}},"/api/v1/nominal-roll/report/{type}/download":{"get":{"tags":["nominal-roll-reports-controller"],"operationId":"getMinistryDownloadableReport","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DownloadableReportResponse"}}}},"400":{"description":"BAD REQUEST","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DownloadableReportResponse"}}}}}}},"/api/v1/nominal-roll/paginated":{"get":{"tags":["Endpoint to support data table view in frontend, with sort, filter and pagination."],"operationId":"findAll","parameters":[{"name":"pageNumber","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"searchCriteriaList","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageNominalRollStudent"}}}},"500":{"description":"INTERNAL SERVER ERROR.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageNominalRollStudent"}}}}}}},"/api/v1/nominal-roll/nominal-roll-student-ids":{"get":{"tags":["Endpoint to support nominal roll navigation view in frontend."],"operationId":"findAllNominalRollStudentIDs","parameters":[{"name":"processingYear","in":"query","required":true,"schema":{"type":"string"}},{"name":"statusCodes","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"searchCriteria","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/searchCriteria"}}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NominalRollIDs"}}}}},"500":{"description":"INTERNAL SERVER ERROR.","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NominalRollIDs"}}}}}}}},"/api/v1/nominal-roll/nominal-roll-posted-students/exist":{"get":{"tags":["Endpoint to check if nominal roll posted students exist"],"operationId":"checkForNominalRollPostedStudents","parameters":[{"name":"processingYear","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"boolean"}}}}}}},"/api/v1/nominal-roll/federal-province-codes":{"get":{"tags":["Endpoint to get All Federal band code."],"operationId":"getFedProvCodes","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FedProvSchoolCode"}}}}}}}},"/api/v1/nominal-roll/duplicates":{"get":{"tags":["Endpoint to check for duplicate nominal roll students"],"operationId":"checkForDuplicateNominalRollStudents","parameters":[{"name":"processingYear","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"correlationID","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"boolean"}}}}}}}},"components":{"schemas":{"NominalRollStudent":{"type":"object","properties":{"nominalRollStudentID":{"type":"string"},"schoolDistrictNumber":{"type":"string"},"schoolNumber":{"type":"string"},"schoolName":{"type":"string"},"leaProvincial":{"type":"string"},"recipientNumber":{"type":"string"},"recipientName":{"type":"string"},"surname":{"type":"string"},"givenNames":{"type":"string"},"gender":{"type":"string"},"birthDate":{"type":"string"},"grade":{"type":"string"},"fte":{"type":"string"},"bandOfResidence":{"type":"string"},"status":{"type":"string"},"createUser":{"type":"string"},"createDate":{"type":"string"},"updateUser":{"type":"string"},"updateDate":{"type":"string"},"processingYear":{"type":"string"},"assignedPEN":{"type":"string"},"validationErrors":{"type":"object","additionalProperties":{"type":"string"}},"empty":{"type":"boolean"}}},"Saga":{"type":"object","properties":{"sagaId":{"type":"string","format":"uuid"},"nominalRollStudentID":{"type":"string","format":"uuid"},"processingYear":{"type":"string"},"sagaName":{"type":"string"},"sagaState":{"type":"string"},"payload":{"type":"string"},"status":{"type":"string"},"createUser":{"type":"string"},"updateUser":{"type":"string"},"createDate":{"type":"string"},"updateDate":{"type":"string"},"retryCount":{"type":"integer","format":"int32"}}},"FileUpload":{"required":["createUser","fileContents","fileExtension","updateUser"],"type":"object","properties":{"fileExtension":{"type":"string"},"createUser":{"type":"string"},"updateUser":{"type":"string"},"fileContents":{"type":"string"}}},"NominalRollFileProcessResponse":{"type":"object","properties":{"headers":{"type":"array","items":{"type":"string"}},"nominalRollStudents":{"type":"array","items":{"$ref":"#/components/schemas/NominalRollStudent"}}}},"NominalRollPostSagaData":{"required":["processingYear"],"type":"object","properties":{"createUser":{"maxLength":32,"minLength":0,"type":"string"},"updateUser":{"maxLength":32,"minLength":0,"type":"string"},"createDate":{"type":"string"},"updateDate":{"type":"string"},"processingYear":{"type":"string"}}},"FedProvSchoolCode":{"type":"object","properties":{"createUser":{"maxLength":32,"minLength":0,"type":"string"},"updateUser":{"maxLength":32,"minLength":0,"type":"string"},"createDate":{"type":"string"},"updateDate":{"type":"string"},"key":{"type":"string"},"federalCode":{"type":"string"},"provincialCode":{"type":"string"}}},"NominalRollStudentCount":{"type":"object","properties":{"status":{"type":"string"},"count":{"type":"integer","format":"int64"}}},"SagaEvent":{"type":"object","properties":{"sagaEventId":{"type":"string","format":"uuid"},"sagaId":{"type":"string","format":"uuid"},"sagaEventState":{"type":"string"},"sagaEventOutcome":{"type":"string"},"sagaStepNumber":{"type":"integer","format":"int32"},"sagaEventResponse":{"type":"string"},"createUser":{"type":"string"},"updateUser":{"type":"string"},"createDate":{"type":"string"},"updateDate":{"type":"string"}}},"SearchCriteria":{"required":["key","operation","valueType"],"type":"object","properties":{"key":{"type":"string"},"operation":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in","nin","btn","like","starts_with","not_starts_with","ends_with","starts_with_ignore_case","like_ignore_case"]},"value":{"type":"string"},"valueType":{"type":"string","enum":["STRING","INTEGER","LONG","DATE","DATE_TIME","UUID"]},"condition":{"type":"string","enum":["AND","OR"]}}},"searchCriteriaList":{"type":"object","properties":{"condition":{"type":"string","enum":["AND","OR"]},"searchCriteriaList":{"type":"array","items":{"$ref":"#/components/schemas/SearchCriteria"}}},"description":"searchCriteriaList if provided should be a JSON string of Search Array"},"PageSaga":{"type":"object","properties":{"totalPages":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/Saga"}},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"first":{"type":"boolean"},"last":{"type":"boolean"},"empty":{"type":"boolean"}}},"PageableObject":{"type":"object","properties":{"offset":{"type":"integer","format":"int64"},"sort":{"$ref":"#/components/schemas/SortObject"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"paged":{"type":"boolean"},"unpaged":{"type":"boolean"}}},"SortObject":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"DownloadableReportResponse":{"type":"object","properties":{"reportType":{"type":"string"},"documentData":{"type":"string"}}},"PageNominalRollStudent":{"type":"object","properties":{"totalPages":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/NominalRollStudent"}},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"first":{"type":"boolean"},"last":{"type":"boolean"},"empty":{"type":"boolean"}}},"searchCriteria":{"type":"object","description":"searchCriteria if provided should be a JSON string Map<String,String>"},"NominalRollIDs":{"type":"object","properties":{"nominalRollStudentID":{"type":"string","format":"uuid"}}}}}}