# info.description
List of APIs related to NUS Service - Timetable, Bulletin

# paths./Module/{termCode}/{moduleCode}.get.parameters[].description
Populate additional information. Accepted entities: crossList.
            crossList is the list of overlapping (cross-listed) modules. The module code first in the list is the parent module. Empty list means it's not cross-listed with any other modules.

# paths./Module.post.description
Search modules by terms and full module codes in QAS.

# paths./AcadCareer.post.description
1. Sync the list of academic careers with EduRec.
2. Only Super Admin role has the access to sync the list of academic careers.

# paths./AcadCareer.post.responses.403.description
Login user not authorized to perform this action

# paths./AcadGroup.post.description
1. Sync the list of academic groups with EduRec.
2. Only Super Admin role has the access to sync the list of academic groups.

# paths./AcadGroup.post.responses.403.description
Login user not authorized to perform this action

# paths./AcadOrg.post.description
1. Sync the list of academic organisations.
2. Only Super Admin role has the access to sync the list of academic organisations.

# paths./AcadOrg.post.responses.403.description
Login user not authorized to perform this action

# paths./Term.post.description
1. Sync the list of terms with EduRec.
2. Only Super Admin role has the access to sync the list of terms.

# paths./Term.post.responses.403.description
Login user not authorized to perform this action

# paths./Sync/Module/{ID}/ClassRoster.post.description
This will sync the student enrollment for the module from EduRec (including the roster and groupings like lecture groups, tutorial groups, lab groups, and so on).

Only facilitators, except read-managers, can sync the module's enrolment.

# paths./Sync/Module/{ID}/ClassRoster.post.responses.403.description
Login user not authorized to perform this action

# paths./Sync/Module/{ID}/ClassRosterPhoto.post.description
Sync photographs of students in the module's student and guest rosters.
Only facilitators (exclude read manager) can sync.

# paths./Sync/Module/{ID}/ClassRosterPhoto.post.responses.403.description
Login user not authorized to perform this action

# paths./ping.get.summary
This is a publicly available call, no login required

# paths./ping.get.description
This is a publicly available call, no login required

# paths./Timetable/Module.get.summary
[Deprecated] Get timetable for the module => Public view

# paths./Timetable/Module.get.description
[Deprecated] Get timetable for the module => Public view

# paths./Timetable/Module.get.responses.200.description
Returns a list of [API_NUS.API.TimeTableModule] object

# paths./Timetable/Module/{ID}.get.summary
[Deprecated] Get timetable for the module => Public view

# paths./Timetable/Module/{ID}.get.description
[Deprecated] Get timetable for the module => Public view

# paths./Timetable/Module/{ID}.get.responses.200.description
Returns a list of [API_NUS.API.TimeTableModule] object

# paths./Timetable/Exam.get.summary
[Deprecated] Get exam timetable for the module => Public view

# paths./Timetable/Exam.get.description
[Deprecated] Get exam timetable for the module => Public view

# paths./Timetable/Exam.get.responses.200.description
Returns a list of [API_NUS.API.TimeTableExam] object

# paths./Timetable/Exam/Student.get.summary
[Deprecated] Get exam timetable for the student

# paths./Timetable/Exam/Student.get.description
[Deprecated] Get exam timetable for the student

# paths./Timetable/Exam/Student.get.responses.200.description
Returns a list of [API_NUS.API.TimeTableExam] object

# paths./Timetable/Student/Module.get.summary
[Deprecated] Get student timetable for the particular module

# paths./Timetable/Student/Module.get.description
[Deprecated] Get student timetable for the particular module

# paths./Timetable/Student/Module.get.responses.200.description
Returns a list of [API_NUS.API.TimeTableStudent] object

# paths./Timetable/Student/Module.get.responses.403.description
Login user not authorized to perform this action

# paths./Timetable/Student.get.summary
[Deprecated] Get timetable for the student's modules

# paths./Timetable/Student.get.description
[Deprecated] Get timetable for the student's modules

# paths./Timetable/Student.get.responses.200.description
Returns a list of [API_NUS.API.TimeTableStudent] object

# paths./Timetable/Student.get.responses.403.description
Login user not authorized to perform this action

# paths./Photo.post.description
Can only sync one's photo from the source system.

# paths./Photo.post.responses.403.description
Login user not authorized to perform this action

# paths./ModuleTimetable.get.description
1. Get timetable for the module from EduRec.
2. No authorization is required for this API.

# paths./ModuleTimetable.get.parameters[].description
Module Code. This parameter is required.

# paths./ModuleTimetable.get.responses.200.description
Returns a list of [lib.NUS.API.ModuleTimeTable] object

# paths./ExamTimetable.get.description
1. Get exam timetable for the module from EduRec.
2. No authorization is required for this API.

# paths./ExamTimetable.get.parameters[].description
Module Code. This parameter is required.

# paths./ExamTimetable.get.responses.200.description
Returns a list of [lib.NUS.API.ExamTimeTable] object

# paths./Enrollment/ModulesTaken/{userID}.get.description
1. Get the list of modules taken by a student from EduRec.
2. Only users with Access_Setting_Read access to the module can view the modules taken by students who are enrolled in the module.
3. Students can only view the modules taken by themselves.
4. Facilitators can view the modules taken by the student for the module by passing in the module ID.

# paths./Enrollment/ModulesTaken/{userID}.get.parameters[].description
Format - uuid. Module ID, required if the current user is not the student. Example, staff accessing the students' modules taken. (except Super Admin users).

# paths./Enrollment/ModulesTaken/{userID}.get.parameters[].description
Optional. Module code. (Not cross-listed codes)

# paths./StudentTimetable.get.description
Get student module timetable for the given module or all enrolled modules from EduRec.

# paths./StudentTimetable.get.parameters[].description
Module Code. If no module code is provided, return timetable for all enrolled modules.

# paths./StudentTimetable.get.responses.200.description
Returns a list of [lib.NUS.API.ModuleTimeTable] object

# paths./StudentTimetable.get.responses.403.description
Login user not authorized to perform this action

# paths./StudentExamTimetable.get.description
Get student exam timetable for all enrolled modules from EduRec.

# paths./StudentExamTimetable.get.responses.200.description
Returns a list of [lib.NUS.API.ExamTimeTable] object

# paths./StudentExamTimetable.get.responses.403.description
Login user not authorized to perform this action

# paths./StudentProfile.post.description
Sync info with EduRec. Info includes Name, Mobile Number and Faculty.

# paths./StudentProfile.post.responses.403.description
Login user not authorized to perform this action

# paths./Batch/Enrollment/{Term}.get.description
1. Batch sync enrollment information from EduRec.
2. Only Super Admin role has the access to batch sync enrollment information.

# paths./2FA/Auth.post.description
To authenticate a user against a supplied OTP.
Recommend to have 2FA for Gradebook for staff.

# paths./2FA/Auth.post.responses.403.description
Login user not authorized to perform this action

# paths./2FA/Push.post.description
To send a 2FA push notification to the login user.
Recommend to have 2FA for Gradebook for staff.

# paths./2FA/Push.post.responses.403.description
Login user not authorized to perform this action

# paths./2FA/Poll.post.description
This is used in conjunction with the Push API. It is invoked after a Push to check the status of the previous invocation.
Recommend to have 2FA for Gradebook for staff.

# paths./2FA/Poll.post.responses.403.description
Login user not authorized to perform this action

# paths./Department.post.description
1. Sync the list of departments from Oracle.
2. Only Super Admin role has the access to sync the list of departments.

# paths./Department.post.responses.403.description
Login user not authorized to perform this action

# paths./Faculty.post.description
1. Sync the list of faculties from Oracle.
2. Only Super Admin role has the access to sync the list of faculties.

# paths./Faculty.post.responses.403.description
Login user not authorized to perform this action

# components.schemas.API_NUS.API.InputModule.properties.sortingPagingFiltering.description
Additional parameter for sorting, paging and filtering

# components.schemas.API_NUS.API.InputAuth2FA_Auth.description
HTTP Post Input class for authenticating user's OTP

# components.schemas.API_NUS.API.Auth2FA_Push.properties.status.description
Status Code. Returns "0000" if success. Returns "7002" if the mobile push request is denied by user.

# components.schemas.API_NUS.API.Auth2FA_Push.properties.transactionId.description
Transaction ID of the 2FA Push Notification

# components.schemas.API_NUS.API.InputAuth2FA_Poll.properties.transactionId.description
Transaction ID of the 2FA push notification

# components.schemas.API_NUS.API.InputAuth2FA_Poll.description
HTTP Post Input class for checking status of 2FA push

# components.schemas.API_NUS.API.Auth2FA_Poll.properties.status.description
Status Code. Returns "0000" if success. Returns "7002" if the mobile push request is denied by user.

# components.schemas.API_NUS.API.Auth2FA_Poll.properties.transactionId.description
Transaction ID of the 2FA Push Notification

# components.schemas.API_NUS.API.Auth2FA_Poll.description
Check the status of the previous Push invocation.

# components.schemas.API_NUS.API.TimeTableModule.properties.modC.description
Official Module Code. Does not include cross-listed modules or sectional modules.

# components.schemas.API_NUS.API.TimeTableModule.properties.sessDayC.description
Day Code. With 0 = Sunday, 1 = Monday, ....

# components.schemas.API_NUS.API.TimeTableExam.properties.exampaperC.description
Official Module Code. Does not include cross-listed modules or sectional modules.

# components.schemas.API_NUS.API.TimeTableExam.properties.ttExamsessC.description
Session Code. 1 = Morning, 2 = Afternoon, 3 = Evening

# components.schemas.API_NUS.API.TimeTableStudent.properties.modC.description
Official Module Code. Does not include cross-listed modules or sectional modules.

# components.schemas.API_NUS.API.TimeTableStudent.properties.stdMatricN.description
Student Student Number. This is the same as UserMatricNo in Users