@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
JSON
{
"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