UNPKG

@dvsa/mes-test-schema

Version:

Domain model for data associated with tests administered by the Driving Examiner Services project

1,808 lines 52.1 kB
{ "title": "Test Result Cat C1M Schema", "type": "object", "definitions": { "code78Present": { "description": "Indicate presence of code 78 (automatic) on candidates license", "type": "boolean" }, "schoolCar": { "description": "Indicates whether the vehicle belongs to a driving school", "type": "boolean" }, "dualControls": { "description": "Indicates whether or not the vehicle has dual controls fitted", "type": "boolean" }, "userExitedApp": { "description": "User disabled ASAM and exited the app", "type": "object", "properties": { "exitReason": { "description": "Reason why the user has exited the app", "type": "string" }, "exitFlag": { "description": "Flag to indicate if the user has exited the app", "type": "boolean" } }, "additionalProperties": false, "required": [ "exitFlag" ] }, "testData": { "additionalProperties": false, "description": "Data associated with the test", "properties": { "drivingFaults": { "$ref": "#/definitions/drivingFaults" }, "seriousFaults": { "$ref": "#/definitions/seriousFaults" }, "dangerousFaults": { "$ref": "#/definitions/dangerousFaults" }, "eco": { "$ref": "#/definitions/eco" }, "ETA": { "$ref": "#/definitions/ETA" }, "testRequirements": { "$ref": "#/definitions/testRequirements" }, "manoeuvres": { "$ref": "#/definitions/manoeuvres" }, "uncoupleRecouple": { "$ref": "#/definitions/uncoupleRecouple" } }, "type": "object" }, "manoeuvre": { "additionalProperties": false, "description": "Data needs capturing for a manoeuvre competency", "properties": { "controlFault": { "$ref": "#/definitions/manoeuvreOutcome" }, "controlFaultComments": { "$ref": "#/definitions/faultComments" }, "observationFault": { "$ref": "#/definitions/manoeuvreOutcome" }, "observationFaultComments": { "$ref": "#/definitions/faultComments" }, "selected": { "$ref": "#/definitions/manoeuvreIndicator" } }, "type": "object" }, "manoeuvreOutcome": { "description": "The possible outcomes of any manoeuvre performed during the test", "enum": [ "DF", "S", "D" ], "type": "string" }, "examiner": { "description": "The examiner details", "type": "object", "properties": { "staffNumber": { "description": "The examiner's DSA staff number", "type": "string", "maxLength": 10 }, "individualId": { "description": "The individual ID of the examiner", "type": "number" } }, "additionalProperties": false, "required": [ "staffNumber" ] }, "testCentre": { "description": "Details of the test centre", "type": "object", "properties": { "centreId": { "description": "Identifer for the test centre", "type": "integer" }, "costCode": { "description": "Cost centre code for the test centre", "type": "string", "maxLength": 6 }, "centreName": { "description": "Name of the test centre", "type": "string", "maxLength": 50 } }, "additionalProperties": false, "required": [ "centreId", "costCode" ] }, "name": { "description": "Details of the individual's name", "type": "object", "properties": { "title": { "description": "The individual's title", "type": "string", "maxLength": 7 }, "firstName": { "description": "The individual's forename", "type": "string", "maxLength": 50 }, "secondName": { "description": "The individual's second name", "type": "string", "maxLength": 50 }, "thirdName": { "description": "The individual's third name", "type": "string", "maxLength": 50 }, "lastName": { "description": "The individual's surname", "type": "string", "maxLength": 50 } }, "additionalProperties": false }, "address": { "description": "Details of the address", "type": "object", "properties": { "addressLine1": { "description": "First line of address", "type": "string", "maxLength": 255 }, "addressLine2": { "description": "Second line of address", "type": "string", "maxLength": 100 }, "addressLine3": { "description": "Third line of address", "type": "string", "maxLength": 100 }, "addressLine4": { "description": "Fourth line of address", "type": "string", "maxLength": 100 }, "addressLine5": { "description": "Fifth line of address", "type": "string", "maxLength": 255 }, "postcode": { "description": "The address postcode", "type": "string", "maxLength": 255 } }, "additionalProperties": false }, "candidate": { "description": "Details of the candidate booked into the test slot", "type": "object", "properties": { "candidateId": { "description": "The id of the test candidate", "type": "integer" }, "candidateName": { "$ref": "#/definitions/name" }, "driverNumber": { "description": "The candidate's driver number, typically (though not always) 16 characters if UK, or 8 digits if NI", "type": "string", "maxLength": 24 }, "dateOfBirth": { "description": "The candidate's date of birth, formatted as an ISO 8601 date (YYYY-MM-DD)", "type": "string", "minLength": 10, "maxLength": 10 }, "gender": { "$ref": "#/definitions/gender" }, "candidateAddress": { "$ref": "#/definitions/address" }, "primaryTelephone": { "description": "The candidate's primary telephone number, if any (and consent to leave voicemail has been given)", "type": "string", "maxLength": 20 }, "secondaryTelephone": { "description": "The candidate's secondary telephone number, if any (and consent to leave voicemail has been given)", "type": "string", "maxLength": 20 }, "mobileTelephone": { "description": "The candidate's mobile telephone number, if any (and consent to leave voicemail has been given)", "type": "string", "maxLength": 30 }, "emailAddress": { "description": "The candidate's email address, if any", "type": "string", "maxLength": 100 }, "prn": { "description": "The candidate's ADI PRN (potential register number), if an ADI test", "type": "integer" }, "previousADITests": { "description": "The number of previous test attempts, if an ADI test", "type": "integer" }, "ethnicityCode": { "description": "A character between A and G representing different categories of ethnicity", "type": "string", "minLength": 1, "maxLength": 1 }, "businessAddress": { "$ref": "#/definitions/address" }, "businessName": { "$ref": "#/definitions/businessName" }, "businessTelephone": { "$ref": "#/definitions/businessTelephone" } }, "additionalProperties": false }, "applicationReference": { "description": "The full application identifier, including applicationId, bookingSequence and checkDigit", "type": "object", "properties": { "applicationId": { "description": "Unique identifier for each test application", "type": "integer" }, "bookingSequence": { "description": "Booking sequence number of the test application", "type": "integer" }, "checkDigit": { "description": "Reference checksum for the test application", "type": "integer" } }, "additionalProperties": false, "required": [ "applicationId", "bookingSequence", "checkDigit" ] }, "initiator": { "description": "The reason for the previous test cancellation", "type": "string", "enum": [ "Act of nature", "DSA" ], "maxLength": 15 }, "testSlotAttributes": { "description": "The additional attributes of the test slot such as Slot Id, Category, Start Time, etc.", "type": "object", "properties": { "slotId": { "description": "Unique identifier for the journal test slot", "type": "integer" }, "start": { "description": "Start time of the test slot", "type": "string", "minLength": 19, "maxLength": 19 }, "vehicleTypeCode": { "description": "A short alpha (and sometimes numeric) code describing the vehicle type in vehicle slot type", "type": "string", "minLength": 1, "maxLength": 2 }, "welshTest": { "description": "Whether the test is to be conducted using the welsh language", "type": "boolean" }, "specialNeedsCode": { "description": "Special needs code", "type": "string", "enum": [ "NONE", "YES", "EXTRA" ] }, "specialNeeds": { "description": "Whether the candidate has any special needs that require the D255 form to be completed", "type": "boolean" }, "specialNeedsArray": { "description": "The special needs", "type": "array", "items": { "type": "string" } }, "specialNeedsExtendedTest": { "description": "Whether the candidate requires an extended test due to special needs", "type": "boolean" }, "extendedTest": { "description": "Whether this is an extended test", "type": "boolean" }, "examinerVisiting": { "description": "Whether the examiner conducting the test slot is visiting a test centre that's not their home test centre", "type": "boolean" }, "entitlementCheck": { "description": "Indicates whether the examiner needs to check the candidates entitlement evidence(e.g. test application has not been checked with DVLA)", "type": "boolean" }, "fitMarker": { "description": "Indicates whether the candidate has previously had a fraud marker set against them", "type": "boolean" }, "fitCaseNumber": { "description": "The integrity case number associated to the candidate", "type": "string" }, "categoryEntitlementCheck": { "description": "Indicates whether the examiner needs to check the candidates entitlement based on new legislation around booking vocational categories", "type": "boolean" }, "previousCancellation": { "description": "The details of any previous test cancellations", "type": "array", "items": { "$ref": "#/definitions/initiator" } }, "slotType": { "description": "A description of the types of test intended to be conducted in this slot (e.g. Standard Test / Extended Special Needs Test)", "type": "string" } }, "additionalProperties": false, "required": [ "slotId", "start", "vehicleTypeCode", "welshTest", "specialNeeds", "extendedTest" ] }, "journalData": { "description": "Data brought through from the journal", "type": "object", "properties": { "examiner": { "$ref": "#/definitions/examiner" }, "testCentre": { "$ref": "#/definitions/testCentre" }, "testSlotAttributes": { "$ref": "#/definitions/testSlotAttributes" }, "candidate": { "$ref": "#/definitions/candidate" }, "applicationReference": { "$ref": "#/definitions/applicationReference" } }, "additionalProperties": false, "required": [ "examiner", "testCentre", "testSlotAttributes", "candidate", "applicationReference", "candidate" ] }, "eyesightTest": { "type": "object", "properties": { "complete": { "type": "boolean" }, "seriousFault": { "description": "Whether the candidate has failed the eyesight test", "type": "boolean" }, "faultComments": { "$ref": "#/definitions/faultComments" } }, "additionalProperties": false }, "signature": { "description": "Base 64 encoded binary data representing a PNG image of the candidates signature", "type": "string" }, "communicationMethod": { "description": "The method of communication by which the candidate agrees to receive their results", "type": "string", "enum": [ "Email", "Post", "Support Centre", "Not provided" ] }, "conductedLanguage": { "description": "The language in which a candidate agrees to perform a test", "type": "string", "enum": [ "English", "Cymraeg", "Not provided" ] }, "communicationPreferences": { "type": "object", "additionalProperties": false, "properties": { "updatedEmail": { "description": "The email address that the candidate agrees their results can be sent to", "type": "string", "maxLength": 100 }, "communicationMethod": { "$ref": "#/definitions/communicationMethod" }, "conductedLanguage": { "$ref": "#/definitions/conductedLanguage" } }, "required": [ "conductedLanguage" ] }, "preTestDeclarations": { "type": "object", "additionalProperties": false, "properties": { "insuranceDeclarationAccepted": { "description": "Whether or not the candidate has declared that their test vehicle has a valid insurance policy", "type": "boolean" }, "residencyDeclarationAccepted": { "description": "Whether or not the candidate has declared that they have lived in the UK for a period acceptable for taking the test", "type": "boolean" }, "preTestSignature": { "$ref": "#/definitions/signature" }, "candidateDeclarationSigned": { "description": "Whether or not the candidate signature had been recorded for delegated tests", "type": "boolean" } }, "required": [ "insuranceDeclarationAccepted", "residencyDeclarationAccepted", "preTestSignature" ] }, "accompaniment": { "description": "Indicators for anybody else overseeing the test", "type": "object", "properties": { "ADI": { "description": "Indicates whether the ADI was present during the test", "type": "boolean" }, "supervisor": { "description": "Indicates whether a DVSA supervisor was present during the test", "type": "boolean" }, "interpreter": { "description": "Indicates whether an interpreter was present during the test", "type": "boolean" }, "other": { "description": "Indicates whether another individual was present during the test", "type": "boolean" } }, "additionalProperties": false }, "gearboxCategory": { "description": "The type of gearbox", "type": "string", "enum": [ "Manual", "Automatic" ] }, "questionCode": { "description": "Code representing the question that was asked", "type": "string" }, "questionDescription": { "description": "Description of the question that was asked", "type": "string" }, "questionOutcome": { "description": "Outcome of the question that was asked", "type": "string", "enum": [ "P", "DF", "S", "D" ] }, "questionResult": { "description": "Result of a vehicle checks question", "type": "object", "additionalProperties": false, "properties": { "code": { "$ref": "#/definitions/questionCode" }, "description": { "$ref": "#/definitions/questionDescription" }, "outcome": { "$ref": "#/definitions/questionOutcome" } } }, "safetyQuestionResult": { "description": "Result of a safety question", "type": "object", "additionalProperties": false, "properties": { "description": { "$ref": "#/definitions/questionDescription" }, "outcome": { "$ref": "#/definitions/questionOutcome" } } }, "manoeuvreIndicator": { "description": "Indicator for a manoeuvre being performed during the test", "type": "boolean" }, "drivingFaultCount": { "description": "The count of the number of driving faults recorded against a test element", "type": "integer" }, "faultComments": { "description": "Comments recorded against a fault", "type": "string", "maxLength": 1000 }, "drivingFaults": { "description": "The driving faults accumulated during the test", "type": "object", "properties": { "controlsAccelerator": { "$ref": "#/definitions/drivingFaultCount" }, "controlsAcceleratorComments": { "$ref": "#/definitions/faultComments" }, "controlsClutch": { "$ref": "#/definitions/drivingFaultCount" }, "controlsClutchComments": { "$ref": "#/definitions/faultComments" }, "controlsGears": { "$ref": "#/definitions/drivingFaultCount" }, "controlsGearsComments": { "$ref": "#/definitions/faultComments" }, "controlsFootbrake": { "$ref": "#/definitions/drivingFaultCount" }, "controlsFootbrakeComments": { "$ref": "#/definitions/faultComments" }, "controlsParkingBrake": { "$ref": "#/definitions/drivingFaultCount" }, "controlsParkingBrakeComments": { "$ref": "#/definitions/faultComments" }, "controlsSteering": { "$ref": "#/definitions/drivingFaultCount" }, "controlsSteeringComments": { "$ref": "#/definitions/faultComments" }, "precautions": { "$ref": "#/definitions/drivingFaultCount" }, "precautionsComments": { "$ref": "#/definitions/faultComments" }, "ancillaryControls": { "$ref": "#/definitions/drivingFaultCount" }, "ancillaryControlsComments": { "$ref": "#/definitions/faultComments" }, "moveOffSafety": { "$ref": "#/definitions/drivingFaultCount" }, "moveOffSafetyComments": { "$ref": "#/definitions/faultComments" }, "moveOffControl": { "$ref": "#/definitions/drivingFaultCount" }, "moveOffControlComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsSignalling": { "$ref": "#/definitions/drivingFaultCount" }, "useOfMirrorsSignallingComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsChangeDirection": { "$ref": "#/definitions/drivingFaultCount" }, "useOfMirrorsChangeDirectionComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsChangeSpeed": { "$ref": "#/definitions/drivingFaultCount" }, "useOfMirrorsChangeSpeedComments": { "$ref": "#/definitions/faultComments" }, "signalsNecessary": { "$ref": "#/definitions/drivingFaultCount" }, "signalsNecessaryComments": { "$ref": "#/definitions/faultComments" }, "signalsCorrectly": { "$ref": "#/definitions/drivingFaultCount" }, "signalsCorrectlyComments": { "$ref": "#/definitions/faultComments" }, "signalsTimed": { "$ref": "#/definitions/drivingFaultCount" }, "signalsTimedComments": { "$ref": "#/definitions/faultComments" }, "junctionsApproachSpeed": { "$ref": "#/definitions/drivingFaultCount" }, "junctionsApproachSpeedComments": { "$ref": "#/definitions/faultComments" }, "junctionsObservation": { "$ref": "#/definitions/drivingFaultCount" }, "junctionsObservationComments": { "$ref": "#/definitions/faultComments" }, "junctionsTurningRight": { "$ref": "#/definitions/drivingFaultCount" }, "junctionsTurningRightComments": { "$ref": "#/definitions/faultComments" }, "junctionsTurningLeft": { "$ref": "#/definitions/drivingFaultCount" }, "junctionsTurningLeftComments": { "$ref": "#/definitions/faultComments" }, "junctionsCuttingCorners": { "$ref": "#/definitions/drivingFaultCount" }, "junctionsCuttingCornersComments": { "$ref": "#/definitions/faultComments" }, "judgementOvertaking": { "$ref": "#/definitions/drivingFaultCount" }, "judgementOvertakingComments": { "$ref": "#/definitions/faultComments" }, "judgementMeeting": { "$ref": "#/definitions/drivingFaultCount" }, "judgementMeetingComments": { "$ref": "#/definitions/faultComments" }, "judgementCrossing": { "$ref": "#/definitions/drivingFaultCount" }, "judgementCrossingComments": { "$ref": "#/definitions/faultComments" }, "positioningNormalDriving": { "$ref": "#/definitions/drivingFaultCount" }, "positioningNormalDrivingComments": { "$ref": "#/definitions/faultComments" }, "positioningLaneDiscipline": { "$ref": "#/definitions/drivingFaultCount" }, "positioningLaneDisciplineComments": { "$ref": "#/definitions/faultComments" }, "clearance": { "$ref": "#/definitions/drivingFaultCount" }, "clearanceComments": { "$ref": "#/definitions/faultComments" }, "followingDistance": { "$ref": "#/definitions/drivingFaultCount" }, "followingDistanceComments": { "$ref": "#/definitions/faultComments" }, "useOfSpeed": { "$ref": "#/definitions/drivingFaultCount" }, "useOfSpeedComments": { "$ref": "#/definitions/faultComments" }, "progressAppropriateSpeed": { "$ref": "#/definitions/drivingFaultCount" }, "progressAppropriateSpeedComments": { "$ref": "#/definitions/faultComments" }, "progressUndueHesitation": { "$ref": "#/definitions/drivingFaultCount" }, "progressUndueHesitationComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficSigns": { "$ref": "#/definitions/drivingFaultCount" }, "responseToSignsTrafficSignsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsRoadMarkings": { "$ref": "#/definitions/drivingFaultCount" }, "responseToSignsRoadMarkingsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficLights": { "$ref": "#/definitions/drivingFaultCount" }, "responseToSignsTrafficLightsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficControllers": { "$ref": "#/definitions/drivingFaultCount" }, "responseToSignsTrafficControllersComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsOtherRoadUsers": { "$ref": "#/definitions/drivingFaultCount" }, "responseToSignsOtherRoadUsersComments": { "$ref": "#/definitions/faultComments" }, "pedestrianCrossings": { "$ref": "#/definitions/drivingFaultCount" }, "pedestrianCrossingsComments": { "$ref": "#/definitions/faultComments" }, "positionNormalStops": { "$ref": "#/definitions/drivingFaultCount" }, "positionNormalStopsComments": { "$ref": "#/definitions/faultComments" }, "awarenessPlanning": { "$ref": "#/definitions/drivingFaultCount" }, "awarenessPlanningComments": { "$ref": "#/definitions/faultComments" } }, "additionalProperties": false }, "seriousFaultIndicator": { "description": "Indicator for a serious fault being recorded against a test element", "type": "boolean" }, "seriousFaults": { "description": "The serious faults accumulated during the test", "type": "object", "properties": { "controlsAccelerator": { "$ref": "#/definitions/seriousFaultIndicator" }, "controlsAcceleratorComments": { "$ref": "#/definitions/faultComments" }, "controlsClutch": { "$ref": "#/definitions/seriousFaultIndicator" }, "controlsClutchComments": { "$ref": "#/definitions/faultComments" }, "controlsGears": { "$ref": "#/definitions/seriousFaultIndicator" }, "controlsGearsComments": { "$ref": "#/definitions/faultComments" }, "controlsFootbrake": { "$ref": "#/definitions/seriousFaultIndicator" }, "controlsFootbrakeComments": { "$ref": "#/definitions/faultComments" }, "controlsParkingBrake": { "$ref": "#/definitions/seriousFaultIndicator" }, "controlsParkingBrakeComments": { "$ref": "#/definitions/faultComments" }, "controlsSteering": { "$ref": "#/definitions/seriousFaultIndicator" }, "controlsSteeringComments": { "$ref": "#/definitions/faultComments" }, "precautions": { "$ref": "#/definitions/seriousFaultIndicator" }, "precautionsComments": { "$ref": "#/definitions/faultComments" }, "ancillaryControls": { "$ref": "#/definitions/seriousFaultIndicator" }, "ancillaryControlsComments": { "$ref": "#/definitions/faultComments" }, "moveOffSafety": { "$ref": "#/definitions/seriousFaultIndicator" }, "moveOffSafetyComments": { "$ref": "#/definitions/faultComments" }, "moveOffControl": { "$ref": "#/definitions/seriousFaultIndicator" }, "moveOffControlComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsSignalling": { "$ref": "#/definitions/seriousFaultIndicator" }, "useOfMirrorsSignallingComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsChangeDirection": { "$ref": "#/definitions/seriousFaultIndicator" }, "useOfMirrorsChangeDirectionComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsChangeSpeed": { "$ref": "#/definitions/seriousFaultIndicator" }, "useOfMirrorsChangeSpeedComments": { "$ref": "#/definitions/faultComments" }, "signalsNecessary": { "$ref": "#/definitions/seriousFaultIndicator" }, "signalsNecessaryComments": { "$ref": "#/definitions/faultComments" }, "signalsCorrectly": { "$ref": "#/definitions/seriousFaultIndicator" }, "signalsCorrectlyComments": { "$ref": "#/definitions/faultComments" }, "signalsTimed": { "$ref": "#/definitions/seriousFaultIndicator" }, "signalsTimedComments": { "$ref": "#/definitions/faultComments" }, "junctionsApproachSpeed": { "$ref": "#/definitions/seriousFaultIndicator" }, "junctionsApproachSpeedComments": { "$ref": "#/definitions/faultComments" }, "junctionsObservation": { "$ref": "#/definitions/seriousFaultIndicator" }, "junctionsObservationComments": { "$ref": "#/definitions/faultComments" }, "junctionsTurningRight": { "$ref": "#/definitions/seriousFaultIndicator" }, "junctionsTurningRightComments": { "$ref": "#/definitions/faultComments" }, "junctionsTurningLeft": { "$ref": "#/definitions/seriousFaultIndicator" }, "junctionsTurningLeftComments": { "$ref": "#/definitions/faultComments" }, "junctionsCuttingCorners": { "$ref": "#/definitions/seriousFaultIndicator" }, "junctionsCuttingCornersComments": { "$ref": "#/definitions/faultComments" }, "judgementOvertaking": { "$ref": "#/definitions/seriousFaultIndicator" }, "judgementOvertakingComments": { "$ref": "#/definitions/faultComments" }, "judgementMeeting": { "$ref": "#/definitions/seriousFaultIndicator" }, "judgementMeetingComments": { "$ref": "#/definitions/faultComments" }, "judgementCrossing": { "$ref": "#/definitions/seriousFaultIndicator" }, "judgementCrossingComments": { "$ref": "#/definitions/faultComments" }, "positioningNormalDriving": { "$ref": "#/definitions/seriousFaultIndicator" }, "positioningNormalDrivingComments": { "$ref": "#/definitions/faultComments" }, "positioningLaneDiscipline": { "$ref": "#/definitions/seriousFaultIndicator" }, "positioningLaneDisciplineComments": { "$ref": "#/definitions/faultComments" }, "clearance": { "$ref": "#/definitions/seriousFaultIndicator" }, "clearanceComments": { "$ref": "#/definitions/faultComments" }, "followingDistance": { "$ref": "#/definitions/seriousFaultIndicator" }, "followingDistanceComments": { "$ref": "#/definitions/faultComments" }, "useOfSpeed": { "$ref": "#/definitions/seriousFaultIndicator" }, "useOfSpeedComments": { "$ref": "#/definitions/faultComments" }, "progressAppropriateSpeed": { "$ref": "#/definitions/seriousFaultIndicator" }, "progressAppropriateSpeedComments": { "$ref": "#/definitions/faultComments" }, "progressUndueHesitation": { "$ref": "#/definitions/seriousFaultIndicator" }, "progressUndueHesitationComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficSigns": { "$ref": "#/definitions/seriousFaultIndicator" }, "responseToSignsTrafficSignsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsRoadMarkings": { "$ref": "#/definitions/seriousFaultIndicator" }, "responseToSignsRoadMarkingsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficLights": { "$ref": "#/definitions/seriousFaultIndicator" }, "responseToSignsTrafficLightsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficControllers": { "$ref": "#/definitions/seriousFaultIndicator" }, "responseToSignsTrafficControllersComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsOtherRoadUsers": { "$ref": "#/definitions/seriousFaultIndicator" }, "responseToSignsOtherRoadUsersComments": { "$ref": "#/definitions/faultComments" }, "pedestrianCrossings": { "$ref": "#/definitions/seriousFaultIndicator" }, "pedestrianCrossingsComments": { "$ref": "#/definitions/faultComments" }, "positionNormalStops": { "$ref": "#/definitions/seriousFaultIndicator" }, "positionNormalStopsComments": { "$ref": "#/definitions/faultComments" }, "awarenessPlanning": { "$ref": "#/definitions/seriousFaultIndicator" }, "awarenessPlanningComments": { "$ref": "#/definitions/faultComments" } }, "additionalProperties": false }, "dangerousFaultIndicator": { "description": "Indicator for a dangerous fault being recorded against a test element", "type": "boolean" }, "dangerousFaults": { "description": "The dangerous faults accumulated during the test", "type": "object", "properties": { "controlsAccelerator": { "$ref": "#/definitions/dangerousFaultIndicator" }, "controlsAcceleratorComments": { "$ref": "#/definitions/faultComments" }, "controlsClutch": { "$ref": "#/definitions/dangerousFaultIndicator" }, "controlsClutchComments": { "$ref": "#/definitions/faultComments" }, "controlsGears": { "$ref": "#/definitions/dangerousFaultIndicator" }, "controlsGearsComments": { "$ref": "#/definitions/faultComments" }, "controlsFootbrake": { "$ref": "#/definitions/dangerousFaultIndicator" }, "controlsFootbrakeComments": { "$ref": "#/definitions/faultComments" }, "controlsParkingBrake": { "$ref": "#/definitions/dangerousFaultIndicator" }, "controlsParkingBrakeComments": { "$ref": "#/definitions/faultComments" }, "controlsSteering": { "$ref": "#/definitions/dangerousFaultIndicator" }, "controlsSteeringComments": { "$ref": "#/definitions/faultComments" }, "precautions": { "$ref": "#/definitions/dangerousFaultIndicator" }, "precautionsComments": { "$ref": "#/definitions/faultComments" }, "ancillaryControls": { "$ref": "#/definitions/dangerousFaultIndicator" }, "ancillaryControlsComments": { "$ref": "#/definitions/faultComments" }, "moveOffSafety": { "$ref": "#/definitions/dangerousFaultIndicator" }, "moveOffSafetyComments": { "$ref": "#/definitions/faultComments" }, "moveOffControl": { "$ref": "#/definitions/dangerousFaultIndicator" }, "moveOffControlComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsSignalling": { "$ref": "#/definitions/dangerousFaultIndicator" }, "useOfMirrorsSignallingComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsChangeDirection": { "$ref": "#/definitions/dangerousFaultIndicator" }, "useOfMirrorsChangeDirectionComments": { "$ref": "#/definitions/faultComments" }, "useOfMirrorsChangeSpeed": { "$ref": "#/definitions/dangerousFaultIndicator" }, "useOfMirrorsChangeSpeedComments": { "$ref": "#/definitions/faultComments" }, "signalsNecessary": { "$ref": "#/definitions/dangerousFaultIndicator" }, "signalsNecessaryComments": { "$ref": "#/definitions/faultComments" }, "signalsCorrectly": { "$ref": "#/definitions/dangerousFaultIndicator" }, "signalsCorrectlyComments": { "$ref": "#/definitions/faultComments" }, "signalsTimed": { "$ref": "#/definitions/dangerousFaultIndicator" }, "signalsTimedComments": { "$ref": "#/definitions/faultComments" }, "junctionsApproachSpeed": { "$ref": "#/definitions/dangerousFaultIndicator" }, "junctionsApproachSpeedComments": { "$ref": "#/definitions/faultComments" }, "junctionsObservation": { "$ref": "#/definitions/dangerousFaultIndicator" }, "junctionsObservationComments": { "$ref": "#/definitions/faultComments" }, "junctionsTurningRight": { "$ref": "#/definitions/dangerousFaultIndicator" }, "junctionsTurningRightComments": { "$ref": "#/definitions/faultComments" }, "junctionsTurningLeft": { "$ref": "#/definitions/dangerousFaultIndicator" }, "junctionsTurningLeftComments": { "$ref": "#/definitions/faultComments" }, "junctionsCuttingCorners": { "$ref": "#/definitions/dangerousFaultIndicator" }, "junctionsCuttingCornersComments": { "$ref": "#/definitions/faultComments" }, "judgementOvertaking": { "$ref": "#/definitions/dangerousFaultIndicator" }, "judgementOvertakingComments": { "$ref": "#/definitions/faultComments" }, "judgementMeeting": { "$ref": "#/definitions/dangerousFaultIndicator" }, "judgementMeetingComments": { "$ref": "#/definitions/faultComments" }, "judgementCrossing": { "$ref": "#/definitions/dangerousFaultIndicator" }, "judgementCrossingComments": { "$ref": "#/definitions/faultComments" }, "positioningNormalDriving": { "$ref": "#/definitions/dangerousFaultIndicator" }, "positioningNormalDrivingComments": { "$ref": "#/definitions/faultComments" }, "positioningLaneDiscipline": { "$ref": "#/definitions/dangerousFaultIndicator" }, "positioningLaneDisciplineComments": { "$ref": "#/definitions/faultComments" }, "clearance": { "$ref": "#/definitions/dangerousFaultIndicator" }, "clearanceComments": { "$ref": "#/definitions/faultComments" }, "followingDistance": { "$ref": "#/definitions/dangerousFaultIndicator" }, "followingDistanceComments": { "$ref": "#/definitions/faultComments" }, "useOfSpeed": { "$ref": "#/definitions/dangerousFaultIndicator" }, "useOfSpeedComments": { "$ref": "#/definitions/faultComments" }, "progressAppropriateSpeed": { "$ref": "#/definitions/dangerousFaultIndicator" }, "progressAppropriateSpeedComments": { "$ref": "#/definitions/faultComments" }, "progressUndueHesitation": { "$ref": "#/definitions/dangerousFaultIndicator" }, "progressUndueHesitationComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficSigns": { "$ref": "#/definitions/dangerousFaultIndicator" }, "responseToSignsTrafficSignsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsRoadMarkings": { "$ref": "#/definitions/dangerousFaultIndicator" }, "responseToSignsRoadMarkingsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficLights": { "$ref": "#/definitions/dangerousFaultIndicator" }, "responseToSignsTrafficLightsComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsTrafficControllers": { "$ref": "#/definitions/dangerousFaultIndicator" }, "responseToSignsTrafficControllersComments": { "$ref": "#/definitions/faultComments" }, "responseToSignsOtherRoadUsers": { "$ref": "#/definitions/dangerousFaultIndicator" }, "responseToSignsOtherRoadUsersComments": { "$ref": "#/definitions/faultComments" }, "pedestrianCrossings": { "$ref": "#/definitions/dangerousFaultIndicator" }, "pedestrianCrossingsComments": { "$ref": "#/definitions/faultComments" }, "positionNormalStops": { "$ref": "#/definitions/dangerousFaultIndicator" }, "positionNormalStopsComments": { "$ref": "#/definitions/faultComments" }, "awarenessPlanning": { "$ref": "#/definitions/dangerousFaultIndicator" }, "awarenessPlanningComments": { "$ref": "#/definitions/faultComments" } }, "additionalProperties": false }, "eco": { "description": "Assessment of the eco friendly manner of driving", "type": "object", "properties": { "completed": { "description": "Indicates that the eco friendly manner of driving has been assessed", "type": "boolean" }, "adviceGivenControl": { "description": "Indicates that advice was given on the Control aspect of eco driving", "type": "boolean" }, "adviceGivenPlanning": { "description": "Indicates that advice was given on the Planning aspect of eco driving", "type": "boolean" }, "ecoRelatedFault": { "description": "Fault that relates to the Eco selection", "type": "string" }, "ecoCaptureReason": { "description": "Reason for Eco capture", "type": "string" }, "fuelEfficientDriving": { "description": "Whether the candidate exemplified efficient driving", "type": "boolean" } }, "additionalProperties": false }, "ETA": { "description": "Indicates whether the examiner had to take physical or verbal action during the test", "type": "object", "properties": { "physical": { "description": "Indicates that the examiner had to take physical action", "type": "boolean" }, "verbal": { "description": "Indicates that the examiner had to take verbal action", "type": "boolean" } }, "additionalProperties": false }, "postTestDeclarations": { "type": "object", "properties": { "healthDeclarationAccepted": { "description": "Whether or not the candidate has declared that their health status hasn't changed since their last application", "type": "boolean" }, "passCertificateNumberReceived": { "description": "Indicates whether the candidate acknowledges receipt of the PCN", "type": "boolean" }, "postTestSignature": { "$ref": "#/definitions/signature" } }, "additionalProperties": false }, "weatherConditions": { "description": "Predefined values for the type of weather encountered during the test", "type": "string", "enum": [ "Bright / dry roads", "Bright / wet roads", "Raining through test", "Showers", "Foggy / misty", "Dull / wet roads", "Dull / dry roads", "Snowing", "Icy", "Windy" ] }, "independentDriving": { "description": "Method chosen to conduct the independent driving section of the test", "type": "string", "enum": [ "Sat nav", "Diagram", "Traffic signs", "N/A" ] }, "identification": { "description": "Indicates which form of ID was provided by the candidate", "type": "string", "enum": [ "Licence", "Passport" ] }, "testSummary": { "description": "Recording of other characteristics of the test", "type": "object", "properties": { "routeNumber": { "description": "Number of the route that was taken during the test", "type": "integer" }, "independentDriving": { "$ref": "#/definitions/independentDriving" }, "trueLikenessToPhoto": { "description": "Physical appearance resembles a true likeness to provided ID", "type": "boolean" }, "candidateDescription": { "description": "Physical description of the candidate", "type": "string", "maxLength": 1000 }, "debriefWitnessed": { "description": "Indicates whether anybody else (e.g. ADI) was present for the debrief", "type": "boolean" }, "identification": { "$ref": "#/definitions/identification" }, "weatherConditions": { "description": "Description of the type of weather encountered during the test", "type": "array", "items": { "$ref": "#/definitions/weatherConditions" } }, "D255": { "description": "Indicates whether a D255 form needs to be completed", "type": "boolean" }, "additionalInformation": { "description": "Any comments that the DE wants to record about the test", "type": "string" } }, "additionalProperties": false }, "categoryCode": { "description": "Category code for the test report", "type": "string", "enum": [ "A", "A1", "A2", "ADI2", "ADI3", "AM", "B", "B1", "B+E", "C", "C1", "C1+E", "C1+EM", "C1M", "CCPC", "C+E", "C+EM", "CM", "D", "D1", "D1+E", "D1+EM", "D1M", "DCPC", "D+E", "D+EM", "DM", "EUA1M1", "EUA1M2", "EUA2M1", "EUA2M2", "EUAM1", "EUAM2", "EUAMM1", "EUAMM2", "F", "G", "H", "K", "SC" ] }, "activityCode": { "description": "Code representing the result of the test", "type": "string", "enum": [ "1", "2", "3", "4", "5", "6", "11", "20", "21", "22", "23", "24", "25", "26", "27", "28", "32", "33", "34", "35", "36", "37", "38", "40", "41", "51", "52", "55", "58", "59", "60", "61", "62", "63", "64", "66", "67", "68", "69", "70", "71", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "88", "89" ] }, "gender": { "description": "The gender of an individual, limited to 'M' or 'F' as per TARS master data", "type": "string", "enum": [ "M", "F" ] }, "rekeyReason": { "description": "Recording of the rekey reason", "type": "object", "properties": { "transfer": { "$ref": "#/definitions/transfer" }, "ipadIssue": { "$ref": "#/definitions/ipadIssue" }, "other": { "$ref": "#/definitions/other" } }, "additionalProperties": false }, "transfer": { "description": "Recording of if a rekey was due to a transfer", "type": "object", "properties": { "selected": { "description": "If this option was selected", "type": "boolean" } }, "additionalProperties": false }, "ipadIssue": { "description": "Recording of if a rekey was due to a iPad issue", "type": "object", "properties": { "selected": { "description": "If this option was selected", "type": "boolean" }, "technicalFault": { "description": "If the iPad was not used due to a technical fault", "type": "boolean" }, "lost": { "description": "If the iPad was not used as it has been lost", "type": "boolean" }, "stolen": { "description": "If the iPad was not used as it has been stolen", "type": "boolean" }, "broken": { "description": "If the iPad was not used as it is broken", "type": "boolean" } }, "additionalProperties": false }, "other": { "description": "Recording of if a rekey was due to a different reason", "type": "object", "properties": { "selected": { "description": "If this option was selected", "type": "boolean" }, "reason": { "description": "The reason this option was selected", "type": "string" } }, "additionalProperties": false }, "testRequirements": { "description": "The test requirements that must be carried out during a test", "type": "object", "properties": { "normalStart1": { "description": "Indicates whether or not this test requirement was carried out", "type": "boolean" }, "normalStart2": { "description": "Indicates whether or not this test requirement was carried out", "type": "boolean" } }, "additionalProperties": false }, "vehicleDetails": { "description": "Details about the vehicle to be used for the test", "type": "object", "properties": { "registrationNumber": { "description": "The vehicle registration number", "type": "string", "maxLength": 7 }, "motStatus": { "description": "The mot status of the vehicle", "type": "string" }, "motEvidenceProvided": { "description": "Marker stating if alternative MOT evidence was provided", "type": "boolean" }, "motEvidence": { "description": "Alternative MOT evidence", "type": "string" }, "make": { "description": "The make of the vehicle", "type": "string" }, "model": { "description": "The model of the vehicle", "type": "string" }, "testExpiryDate": { "description": "The test expiry date of the vehicle", "type": "string" }, "previouslySearchedRegNumbers": { "description": "Previously searched for registration numbers", "type": "array", "items": { "type": "string" } }, "gearboxCategory": { "$ref": "#/definitions/gearboxCategory" }, "vehicleLength": { "description": "Indicates the length of the vehicle", "type": "number" }, "vehicleWidth": { "description": "Indicates the width of the vehicle", "type": "number" }, "vehicleHeight": { "description": "Indicates the height of the vehicle", "type": "number" }, "numberOfSeats": { "description": "Indicates the number of seats in the vehicle", "type": "number" } }, "additionalProperties": false }, "passCompletion": { "description": "Finalisation of a successful test outcome", "type": "object", "properties": { "provisionalLicenceProvided": { "description": "Indicates whether the candidate submitted their provisional driving licence", "type": "boolean" }, "passCertificateNumber": { "description": "The PCN issued to the candidate", "type": "string", "maxLength": 8, "minLength": 8 } }, "additionalProperties": false, "required": [ "passCertificateNumber" ] }, "uncoupleRecouple": { "additionalProperties": false, "properties": { "fault": { "$ref": "#/definitions/manoeuvreOutcome" }, "faultComments": { "$ref": "#/definitions/faultComments" }, "selected": { "$ref": "#/definitions/manoeuvreIndicator" } }, "type": "object" }, "manoeuvres": { "additionalProperties": false, "description": "The manoeuvres that were carried out during the test and any faults recorded against them", "type": "object", "properties": { "reverseManoeuvre": { "$ref": "#/definitions/manoeuvre" } } }, "businessName": { "description": "Name of the business the candidate relates to", "type": "string", "maxLength": 100 }, "businessTelephone": { "description": "Telephone number of the business the candidate relates to", "type": "string", "maxLength": 20 } }, "properties": { "version": { "descr