{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/politecnico-di-torino/main/json-schema/politecnico-di-torino-exam-schema.json", "title": "Exam", "description": "An exam session a Politecnico di Torino student can view or book via the Students API (source: polito/api-spec).", "type": "object", "required": [ "id", "courseId", "courseShortcode", "courseName", "teacherId", "type", "status", "bookingEndsAt", "bookedCount", "availableCount" ], "properties": { "id": { "type": "integer" }, "courseId": { "type": "number" }, "courseShortcode": { "type": "string" }, "courseName": { "type": "string" }, "teacherId": { "type": "integer" }, "type": { "type": "string" }, "status": { "type": "string", "enum": [ "available", "booked", "requestable", "requested", "requestAccepted", "requestRejected", "unavailable" ] }, "bookingStartsAt": { "type": ["string", "null"], "format": "date-time" }, "bookingEndsAt": { "type": "string", "format": "date-time" }, "examStartsAt": { "type": ["string", "null"], "format": "date-time" }, "examEndsAt": { "type": ["string", "null"], "format": "date-time" }, "bookedCount": { "type": "integer" }, "availableCount": { "type": "integer" }, "isReschedulable": { "type": "boolean", "description": "If true, the student can ask the professor to reschedule the exam" }, "feedback": { "type": ["string", "null"] }, "notes": { "type": ["string", "null"] }, "moduleNumber": { "type": "integer", "description": "The module number, if this is a module" } } }