@dvsa/mes-test-schema
Version:
Domain model for data associated with tests administered by the Driving Examiner Services project
1,207 lines (1,204 loc) • 35.4 kB
TypeScript
/* eslint-disable */
/**
* This file was automatically generated by json-schema-to-typescript.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run json-schema-to-typescript to regenerate this file.
*/
/**
* Category code for the test report
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "categoryCode".
*/
export type CategoryCode =
| "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";
/**
* The reason for the previous test cancellation
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "initiator".
*/
export type Initiator = "Act of nature" | "DSA";
/**
* The gender of an individual, limited to 'M' or 'F' as per TARS master data
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "gender".
*/
export type Gender = "M" | "F";
/**
* Code representing the result of the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "activityCode".
*/
export type ActivityCode =
| "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";
/**
* The method of communication by which the candidate agrees to receive their results
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "communicationMethod".
*/
export type CommunicationMethod = "Email" | "Post" | "Support Centre" | "Not provided";
/**
* The language in which a candidate agrees to perform a test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "conductedLanguage".
*/
export type ConductedLanguage = "English" | "Cymraeg" | "Not provided";
/**
* Base 64 encoded binary data representing a PNG image of the candidates signature
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "signature".
*/
export type Signature = string;
/**
* Method chosen to conduct the independent driving section of the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "independentDriving".
*/
export type IndependentDriving = "Sat nav" | "Diagram" | "Traffic signs" | "N/A";
/**
* Indicates which form of ID was provided by the candidate
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "identification".
*/
export type Identification = "Licence" | "Passport";
/**
* Predefined values for the type of weather encountered during the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "weatherConditions".
*/
export type WeatherConditions =
| "Bright / dry roads"
| "Bright / wet roads"
| "Raining through test"
| "Showers"
| "Foggy / misty"
| "Dull / wet roads"
| "Dull / dry roads"
| "Snowing"
| "Icy"
| "Windy";
/**
* The type of gearbox
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "gearboxCategory".
*/
export type GearboxCategory = "Manual" | "Automatic";
/**
* The count of the number of driving faults recorded against a test element
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "drivingFaultCount".
*/
export type DrivingFaultCount = number;
/**
* Comments recorded against a fault
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "faultComments".
*/
export type FaultComments = string;
/**
* Indicator for a serious fault being recorded against a test element
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "seriousFaultIndicator".
*/
export type SeriousFaultIndicator = boolean;
/**
* Indicator for a dangerous fault being recorded against a test element
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "dangerousFaultIndicator".
*/
export type DangerousFaultIndicator = boolean;
/**
* Indicate presence of code 78 (automatic) on candidates license
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "code78Present".
*/
export type Code78Present = boolean;
/**
* Indicates whether the vehicle belongs to a driving school
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "schoolCar".
*/
export type SchoolCar = boolean;
/**
* Indicates whether or not the vehicle has dual controls fitted
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "dualControls".
*/
export type DualControls = boolean;
/**
* The possible outcomes of any manoeuvre performed during the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "manoeuvreOutcome".
*/
export type ManoeuvreOutcome = "DF" | "S" | "D";
/**
* Indicator for a manoeuvre being performed during the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "manoeuvreIndicator".
*/
export type ManoeuvreIndicator = boolean;
/**
* Code representing the question that was asked
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "questionCode".
*/
export type QuestionCode = string;
/**
* Description of the question that was asked
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "questionDescription".
*/
export type QuestionDescription = string;
/**
* Outcome of the question that was asked
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "questionOutcome".
*/
export type QuestionOutcome = "P" | "DF" | "S" | "D";
export interface TestResultCommonSchema {
/**
* Version number
*/
version: string;
/**
* App version number
*/
appVersion?: string;
category: CategoryCode;
journalData: JournalData;
activityCode: ActivityCode;
communicationPreferences?: CommunicationPreferences;
preTestDeclarations?: PreTestDeclarations;
accompaniment?: Accompaniment;
postTestDeclarations?: PostTestDeclarations;
testSummary?: TestSummary;
rekeyReason?: RekeyReason;
/**
* Whether the test was rekeyed or not
*/
rekey: boolean;
/**
* Date the test was rekeyed
*/
rekeyDate?: string;
/**
* Whether the test was completed by a delegated examiner or not
*/
delegatedTest?: boolean;
/**
* Whether the test was conducted by another examiner
*/
changeMarker: boolean;
/**
* The examiner who the test was booked to
*/
examinerBooked: number | string;
/**
* The examiner who conducted the test
*/
examinerConducted: number | string;
/**
* The examiner who keyed the test into the iPad
*/
examinerKeyed: number;
passCompletion?: PassCompletion;
vehicleDetails?: VehicleDetails;
userExitedApp?: UserExitedApp;
testData?: TestData;
}
/**
* Data brought through from the journal
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "journalData".
*/
export interface JournalData {
examiner: Examiner;
testCentre: TestCentre;
testSlotAttributes: TestSlotAttributes;
candidate: Candidate;
applicationReference: ApplicationReference;
}
/**
* The examiner details
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "examiner".
*/
export interface Examiner {
/**
* The examiner's DSA staff number
*/
staffNumber: string;
/**
* The individual ID of the examiner
*/
individualId?: number;
}
/**
* Details of the test centre
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "testCentre".
*/
export interface TestCentre {
/**
* Identifer for the test centre
*/
centreId: number;
/**
* Cost centre code for the test centre
*/
costCode: string;
/**
* Name of the test centre
*/
centreName?: string;
}
/**
* The additional attributes of the test slot such as Slot Id, Category, Start Time, etc.
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "testSlotAttributes".
*/
export interface TestSlotAttributes {
/**
* Unique identifier for the journal test slot
*/
slotId: number;
/**
* Start time of the test slot
*/
start: string;
/**
* A short alpha (and sometimes numeric) code describing the vehicle type in vehicle slot type
*/
vehicleTypeCode: string;
/**
* Whether the test is to be conducted using the welsh language
*/
welshTest: boolean;
/**
* Special needs code
*/
specialNeedsCode?: "NONE" | "YES" | "EXTRA";
/**
* Whether the candidate has any special needs that require the D255 form to be completed
*/
specialNeeds: boolean;
/**
* The special needs
*/
specialNeedsArray?: string[];
/**
* Whether the candidate requires an extended test due to special needs
*/
specialNeedsExtendedTest?: boolean;
/**
* Whether this is an extended test
*/
extendedTest: boolean;
/**
* Whether the examiner conducting the test slot is visiting a test centre that's not their home test centre
*/
examinerVisiting?: boolean;
/**
* Indicates whether the examiner needs to check the candidates entitlement evidence(e.g. test application has not been checked with DVLA)
*/
entitlementCheck?: boolean;
/**
* Indicates whether the candidate has previously had a fraud marker set against them
*/
fitMarker?: boolean;
/**
* The integrity case number associated to the candidate
*/
fitCaseNumber?: string;
/**
* Indicates whether the examiner needs to check the candidates entitlement based on new legislation around booking vocational categories
*/
categoryEntitlementCheck?: boolean;
/**
* The details of any previous test cancellations
*/
previousCancellation?: Initiator[];
/**
* A description of the types of test intended to be conducted in this slot (e.g. Standard Test / Extended Special Needs Test)
*/
slotType?: string;
}
/**
* Details of the candidate booked into the test slot
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "candidate".
*/
export interface Candidate {
/**
* The id of the test candidate
*/
candidateId?: number;
candidateName?: Name;
/**
* The candidate's driver number, typically (though not always) 16 characters if UK, or 8 digits if NI
*/
driverNumber?: string;
/**
* The candidate's date of birth, formatted as an ISO 8601 date (YYYY-MM-DD)
*/
dateOfBirth?: string;
gender?: Gender;
candidateAddress?: Address;
/**
* The candidate's primary telephone number, if any (and consent to leave voicemail has been given)
*/
primaryTelephone?: string;
/**
* The candidate's secondary telephone number, if any (and consent to leave voicemail has been given)
*/
secondaryTelephone?: string;
/**
* The candidate's mobile telephone number, if any (and consent to leave voicemail has been given)
*/
mobileTelephone?: string;
/**
* The candidate's email address, if any
*/
emailAddress?: string;
/**
* The candidate's ADI PRN (potential register number), if an ADI test
*/
prn?: number;
/**
* The number of previous test attempts, if an ADI test
*/
previousADITests?: number;
/**
* A character between A and G representing different categories of ethnicity
*/
ethnicityCode?: string;
}
/**
* Details of the individual's name
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "name".
*/
export interface Name {
/**
* The individual's title
*/
title?: string;
/**
* The individual's forename
*/
firstName?: string;
/**
* The individual's second name
*/
secondName?: string;
/**
* The individual's third name
*/
thirdName?: string;
/**
* The individual's surname
*/
lastName?: string;
}
/**
* Details of the address
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "address".
*/
export interface Address {
/**
* First line of address
*/
addressLine1?: string;
/**
* Second line of address
*/
addressLine2?: string;
/**
* Third line of address
*/
addressLine3?: string;
/**
* Fourth line of address
*/
addressLine4?: string;
/**
* Fifth line of address
*/
addressLine5?: string;
/**
* The address postcode
*/
postcode?: string;
}
/**
* The full application identifier, including applicationId, bookingSequence and checkDigit
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "applicationReference".
*/
export interface ApplicationReference {
/**
* Unique identifier for each test application
*/
applicationId: number;
/**
* Booking sequence number of the test application
*/
bookingSequence: number;
/**
* Reference checksum for the test application
*/
checkDigit: number;
}
/**
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "communicationPreferences".
*/
export interface CommunicationPreferences {
/**
* The email address that the candidate agrees their results can be sent to
*/
updatedEmail?: string;
communicationMethod?: CommunicationMethod;
conductedLanguage: ConductedLanguage;
}
/**
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "preTestDeclarations".
*/
export interface PreTestDeclarations {
/**
* Whether or not the candidate has declared that their test vehicle has a valid insurance policy
*/
insuranceDeclarationAccepted: boolean;
/**
* Whether or not the candidate has declared that they have lived in the UK for a period acceptable for taking the test
*/
residencyDeclarationAccepted: boolean;
preTestSignature: Signature;
/**
* Whether or not the candidate signature had been recorded for delegated tests
*/
candidateDeclarationSigned?: boolean;
}
/**
* Indicators for anybody else overseeing the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "accompaniment".
*/
export interface Accompaniment {
/**
* Indicates whether the ADI was present during the test
*/
ADI?: boolean;
/**
* Indicates whether a DVSA supervisor was present during the test
*/
supervisor?: boolean;
/**
* Indicates whether an interpreter was present during the test
*/
interpreter?: boolean;
/**
* Indicates whether another individual was present during the test
*/
other?: boolean;
}
/**
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "postTestDeclarations".
*/
export interface PostTestDeclarations {
/**
* Whether or not the candidate has declared that their health status hasn't changed since their last application
*/
healthDeclarationAccepted?: boolean;
/**
* Indicates whether the candidate acknowledges receipt of the PCN
*/
passCertificateNumberReceived?: boolean;
postTestSignature?: Signature;
}
/**
* Recording of other characteristics of the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "testSummary".
*/
export interface TestSummary {
/**
* Number of the route that was taken during the test
*/
routeNumber?: number;
independentDriving?: IndependentDriving;
/**
* Physical appearance resembles a true likeness to provided ID
*/
trueLikenessToPhoto?: boolean;
/**
* Physical description of the candidate
*/
candidateDescription?: string;
/**
* Indicates whether anybody else (e.g. ADI) was present for the debrief
*/
debriefWitnessed?: boolean;
identification?: Identification;
/**
* Description of the type of weather encountered during the test
*/
weatherConditions?: WeatherConditions[];
/**
* Indicates whether a D255 form needs to be completed
*/
D255?: boolean;
/**
* Any comments that the DE wants to record about the test
*/
additionalInformation?: string;
}
/**
* Recording of the rekey reason
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "rekeyReason".
*/
export interface RekeyReason {
transfer?: Transfer;
ipadIssue?: IpadIssue;
other?: Other;
}
/**
* Recording of if a rekey was due to a transfer
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "transfer".
*/
export interface Transfer {
/**
* If this option was selected
*/
selected?: boolean;
}
/**
* Recording of if a rekey was due to a iPad issue
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "ipadIssue".
*/
export interface IpadIssue {
/**
* If this option was selected
*/
selected?: boolean;
/**
* If the iPad was not used due to a technical fault
*/
technicalFault?: boolean;
/**
* If the iPad was not used as it has been lost
*/
lost?: boolean;
/**
* If the iPad was not used as it has been stolen
*/
stolen?: boolean;
/**
* If the iPad was not used as it is broken
*/
broken?: boolean;
}
/**
* Recording of if a rekey was due to a different reason
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "other".
*/
export interface Other {
/**
* If this option was selected
*/
selected?: boolean;
/**
* The reason this option was selected
*/
reason?: string;
}
/**
* Finalisation of a successful test outcome
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "passCompletion".
*/
export interface PassCompletion {
/**
* Indicates whether the candidate submitted their provisional driving licence
*/
provisionalLicenceProvided?: boolean;
/**
* The PCN issued to the candidate
*/
passCertificateNumber: string;
}
/**
* Details about the vehicle to be used for the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "vehicleDetails".
*/
export interface VehicleDetails {
/**
* The vehicle registration number
*/
registrationNumber?: string;
/**
* The mot status of the vehicle
*/
motStatus?: string;
/**
* Marker stating if alternative MOT evidence was provided
*/
motEvidenceProvided?: boolean;
/**
* Alternative MOT evidence
*/
motEvidence?: string;
/**
* The make of the vehicle
*/
make?: string;
/**
* The model of the vehicle
*/
model?: string;
/**
* The test expiry date of the vehicle
*/
testExpiryDate?: string;
/**
* Previously searched for registration numbers
*/
previouslySearchedRegNumbers?: string[];
gearboxCategory?: GearboxCategory;
}
/**
* User disabled ASAM and exited the app
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "userExitedApp".
*/
export interface UserExitedApp {
/**
* Reason why the user has exited the app
*/
exitReason?: string;
/**
* Flag to indicate if the user has exited the app
*/
exitFlag: boolean;
}
/**
* Data associated with the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "testData".
*/
export interface TestData {
drivingFaults?: DrivingFaults;
seriousFaults?: SeriousFaults;
dangerousFaults?: DangerousFaults;
eco?: Eco;
ETA?: ETA;
testRequirements?: TestRequirements;
}
/**
* The driving faults accumulated during the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "drivingFaults".
*/
export interface DrivingFaults {
controlsAccelerator?: DrivingFaultCount;
controlsAcceleratorComments?: FaultComments;
controlsClutch?: DrivingFaultCount;
controlsClutchComments?: FaultComments;
controlsGears?: DrivingFaultCount;
controlsGearsComments?: FaultComments;
controlsFootbrake?: DrivingFaultCount;
controlsFootbrakeComments?: FaultComments;
controlsParkingBrake?: DrivingFaultCount;
controlsParkingBrakeComments?: FaultComments;
controlsSteering?: DrivingFaultCount;
controlsSteeringComments?: FaultComments;
precautions?: DrivingFaultCount;
precautionsComments?: FaultComments;
ancillaryControls?: DrivingFaultCount;
ancillaryControlsComments?: FaultComments;
moveOffSafety?: DrivingFaultCount;
moveOffSafetyComments?: FaultComments;
moveOffControl?: DrivingFaultCount;
moveOffControlComments?: FaultComments;
useOfMirrorsSignalling?: DrivingFaultCount;
useOfMirrorsSignallingComments?: FaultComments;
useOfMirrorsChangeDirection?: DrivingFaultCount;
useOfMirrorsChangeDirectionComments?: FaultComments;
useOfMirrorsChangeSpeed?: DrivingFaultCount;
useOfMirrorsChangeSpeedComments?: FaultComments;
signalsNecessary?: DrivingFaultCount;
signalsNecessaryComments?: FaultComments;
signalsCorrectly?: DrivingFaultCount;
signalsCorrectlyComments?: FaultComments;
signalsTimed?: DrivingFaultCount;
signalsTimedComments?: FaultComments;
junctionsApproachSpeed?: DrivingFaultCount;
junctionsApproachSpeedComments?: FaultComments;
junctionsObservation?: DrivingFaultCount;
junctionsObservationComments?: FaultComments;
junctionsTurningRight?: DrivingFaultCount;
junctionsTurningRightComments?: FaultComments;
junctionsTurningLeft?: DrivingFaultCount;
junctionsTurningLeftComments?: FaultComments;
junctionsCuttingCorners?: DrivingFaultCount;
junctionsCuttingCornersComments?: FaultComments;
judgementOvertaking?: DrivingFaultCount;
judgementOvertakingComments?: FaultComments;
judgementMeeting?: DrivingFaultCount;
judgementMeetingComments?: FaultComments;
judgementCrossing?: DrivingFaultCount;
judgementCrossingComments?: FaultComments;
positioningNormalDriving?: DrivingFaultCount;
positioningNormalDrivingComments?: FaultComments;
positioningLaneDiscipline?: DrivingFaultCount;
positioningLaneDisciplineComments?: FaultComments;
clearance?: DrivingFaultCount;
clearanceComments?: FaultComments;
followingDistance?: DrivingFaultCount;
followingDistanceComments?: FaultComments;
useOfSpeed?: DrivingFaultCount;
useOfSpeedComments?: FaultComments;
progressAppropriateSpeed?: DrivingFaultCount;
progressAppropriateSpeedComments?: FaultComments;
progressUndueHesitation?: DrivingFaultCount;
progressUndueHesitationComments?: FaultComments;
responseToSignsTrafficSigns?: DrivingFaultCount;
responseToSignsTrafficSignsComments?: FaultComments;
responseToSignsRoadMarkings?: DrivingFaultCount;
responseToSignsRoadMarkingsComments?: FaultComments;
responseToSignsTrafficLights?: DrivingFaultCount;
responseToSignsTrafficLightsComments?: FaultComments;
responseToSignsTrafficControllers?: DrivingFaultCount;
responseToSignsTrafficControllersComments?: FaultComments;
responseToSignsOtherRoadUsers?: DrivingFaultCount;
responseToSignsOtherRoadUsersComments?: FaultComments;
pedestrianCrossings?: DrivingFaultCount;
pedestrianCrossingsComments?: FaultComments;
positionNormalStops?: DrivingFaultCount;
positionNormalStopsComments?: FaultComments;
awarenessPlanning?: DrivingFaultCount;
awarenessPlanningComments?: FaultComments;
}
/**
* The serious faults accumulated during the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "seriousFaults".
*/
export interface SeriousFaults {
controlsAccelerator?: SeriousFaultIndicator;
controlsAcceleratorComments?: FaultComments;
controlsClutch?: SeriousFaultIndicator;
controlsClutchComments?: FaultComments;
controlsGears?: SeriousFaultIndicator;
controlsGearsComments?: FaultComments;
controlsFootbrake?: SeriousFaultIndicator;
controlsFootbrakeComments?: FaultComments;
controlsParkingBrake?: SeriousFaultIndicator;
controlsParkingBrakeComments?: FaultComments;
controlsSteering?: SeriousFaultIndicator;
controlsSteeringComments?: FaultComments;
precautions?: SeriousFaultIndicator;
precautionsComments?: FaultComments;
ancillaryControls?: SeriousFaultIndicator;
ancillaryControlsComments?: FaultComments;
moveOffSafety?: SeriousFaultIndicator;
moveOffSafetyComments?: FaultComments;
moveOffControl?: SeriousFaultIndicator;
moveOffControlComments?: FaultComments;
useOfMirrorsSignalling?: SeriousFaultIndicator;
useOfMirrorsSignallingComments?: FaultComments;
useOfMirrorsChangeDirection?: SeriousFaultIndicator;
useOfMirrorsChangeDirectionComments?: FaultComments;
useOfMirrorsChangeSpeed?: SeriousFaultIndicator;
useOfMirrorsChangeSpeedComments?: FaultComments;
signalsNecessary?: SeriousFaultIndicator;
signalsNecessaryComments?: FaultComments;
signalsCorrectly?: SeriousFaultIndicator;
signalsCorrectlyComments?: FaultComments;
signalsTimed?: SeriousFaultIndicator;
signalsTimedComments?: FaultComments;
junctionsApproachSpeed?: SeriousFaultIndicator;
junctionsApproachSpeedComments?: FaultComments;
junctionsObservation?: SeriousFaultIndicator;
junctionsObservationComments?: FaultComments;
junctionsTurningRight?: SeriousFaultIndicator;
junctionsTurningRightComments?: FaultComments;
junctionsTurningLeft?: SeriousFaultIndicator;
junctionsTurningLeftComments?: FaultComments;
junctionsCuttingCorners?: SeriousFaultIndicator;
junctionsCuttingCornersComments?: FaultComments;
judgementOvertaking?: SeriousFaultIndicator;
judgementOvertakingComments?: FaultComments;
judgementMeeting?: SeriousFaultIndicator;
judgementMeetingComments?: FaultComments;
judgementCrossing?: SeriousFaultIndicator;
judgementCrossingComments?: FaultComments;
positioningNormalDriving?: SeriousFaultIndicator;
positioningNormalDrivingComments?: FaultComments;
positioningLaneDiscipline?: SeriousFaultIndicator;
positioningLaneDisciplineComments?: FaultComments;
clearance?: SeriousFaultIndicator;
clearanceComments?: FaultComments;
followingDistance?: SeriousFaultIndicator;
followingDistanceComments?: FaultComments;
useOfSpeed?: SeriousFaultIndicator;
useOfSpeedComments?: FaultComments;
progressAppropriateSpeed?: SeriousFaultIndicator;
progressAppropriateSpeedComments?: FaultComments;
progressUndueHesitation?: SeriousFaultIndicator;
progressUndueHesitationComments?: FaultComments;
responseToSignsTrafficSigns?: SeriousFaultIndicator;
responseToSignsTrafficSignsComments?: FaultComments;
responseToSignsRoadMarkings?: SeriousFaultIndicator;
responseToSignsRoadMarkingsComments?: FaultComments;
responseToSignsTrafficLights?: SeriousFaultIndicator;
responseToSignsTrafficLightsComments?: FaultComments;
responseToSignsTrafficControllers?: SeriousFaultIndicator;
responseToSignsTrafficControllersComments?: FaultComments;
responseToSignsOtherRoadUsers?: SeriousFaultIndicator;
responseToSignsOtherRoadUsersComments?: FaultComments;
pedestrianCrossings?: SeriousFaultIndicator;
pedestrianCrossingsComments?: FaultComments;
positionNormalStops?: SeriousFaultIndicator;
positionNormalStopsComments?: FaultComments;
awarenessPlanning?: SeriousFaultIndicator;
awarenessPlanningComments?: FaultComments;
}
/**
* The dangerous faults accumulated during the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "dangerousFaults".
*/
export interface DangerousFaults {
controlsAccelerator?: DangerousFaultIndicator;
controlsAcceleratorComments?: FaultComments;
controlsClutch?: DangerousFaultIndicator;
controlsClutchComments?: FaultComments;
controlsGears?: DangerousFaultIndicator;
controlsGearsComments?: FaultComments;
controlsFootbrake?: DangerousFaultIndicator;
controlsFootbrakeComments?: FaultComments;
controlsParkingBrake?: DangerousFaultIndicator;
controlsParkingBrakeComments?: FaultComments;
controlsSteering?: DangerousFaultIndicator;
controlsSteeringComments?: FaultComments;
precautions?: DangerousFaultIndicator;
precautionsComments?: FaultComments;
ancillaryControls?: DangerousFaultIndicator;
ancillaryControlsComments?: FaultComments;
moveOffSafety?: DangerousFaultIndicator;
moveOffSafetyComments?: FaultComments;
moveOffControl?: DangerousFaultIndicator;
moveOffControlComments?: FaultComments;
useOfMirrorsSignalling?: DangerousFaultIndicator;
useOfMirrorsSignallingComments?: FaultComments;
useOfMirrorsChangeDirection?: DangerousFaultIndicator;
useOfMirrorsChangeDirectionComments?: FaultComments;
useOfMirrorsChangeSpeed?: DangerousFaultIndicator;
useOfMirrorsChangeSpeedComments?: FaultComments;
signalsNecessary?: DangerousFaultIndicator;
signalsNecessaryComments?: FaultComments;
signalsCorrectly?: DangerousFaultIndicator;
signalsCorrectlyComments?: FaultComments;
signalsTimed?: DangerousFaultIndicator;
signalsTimedComments?: FaultComments;
junctionsApproachSpeed?: DangerousFaultIndicator;
junctionsApproachSpeedComments?: FaultComments;
junctionsObservation?: DangerousFaultIndicator;
junctionsObservationComments?: FaultComments;
junctionsTurningRight?: DangerousFaultIndicator;
junctionsTurningRightComments?: FaultComments;
junctionsTurningLeft?: DangerousFaultIndicator;
junctionsTurningLeftComments?: FaultComments;
junctionsCuttingCorners?: DangerousFaultIndicator;
junctionsCuttingCornersComments?: FaultComments;
judgementOvertaking?: DangerousFaultIndicator;
judgementOvertakingComments?: FaultComments;
judgementMeeting?: DangerousFaultIndicator;
judgementMeetingComments?: FaultComments;
judgementCrossing?: DangerousFaultIndicator;
judgementCrossingComments?: FaultComments;
positioningNormalDriving?: DangerousFaultIndicator;
positioningNormalDrivingComments?: FaultComments;
positioningLaneDiscipline?: DangerousFaultIndicator;
positioningLaneDisciplineComments?: FaultComments;
clearance?: DangerousFaultIndicator;
clearanceComments?: FaultComments;
followingDistance?: DangerousFaultIndicator;
followingDistanceComments?: FaultComments;
useOfSpeed?: DangerousFaultIndicator;
useOfSpeedComments?: FaultComments;
progressAppropriateSpeed?: DangerousFaultIndicator;
progressAppropriateSpeedComments?: FaultComments;
progressUndueHesitation?: DangerousFaultIndicator;
progressUndueHesitationComments?: FaultComments;
responseToSignsTrafficSigns?: DangerousFaultIndicator;
responseToSignsTrafficSignsComments?: FaultComments;
responseToSignsRoadMarkings?: DangerousFaultIndicator;
responseToSignsRoadMarkingsComments?: FaultComments;
responseToSignsTrafficLights?: DangerousFaultIndicator;
responseToSignsTrafficLightsComments?: FaultComments;
responseToSignsTrafficControllers?: DangerousFaultIndicator;
responseToSignsTrafficControllersComments?: FaultComments;
responseToSignsOtherRoadUsers?: DangerousFaultIndicator;
responseToSignsOtherRoadUsersComments?: FaultComments;
pedestrianCrossings?: DangerousFaultIndicator;
pedestrianCrossingsComments?: FaultComments;
positionNormalStops?: DangerousFaultIndicator;
positionNormalStopsComments?: FaultComments;
awarenessPlanning?: DangerousFaultIndicator;
awarenessPlanningComments?: FaultComments;
}
/**
* Assessment of the eco friendly manner of driving
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "eco".
*/
export interface Eco {
/**
* Indicates that the eco friendly manner of driving has been assessed
*/
completed?: boolean;
/**
* Indicates that advice was given on the Control aspect of eco driving
*/
adviceGivenControl?: boolean;
/**
* Indicates that advice was given on the Planning aspect of eco driving
*/
adviceGivenPlanning?: boolean;
/**
* Fault that relates to the Eco selection
*/
ecoRelatedFault?: string;
/**
* Reason for Eco capture
*/
ecoCaptureReason?: string;
/**
* Whether the candidate exemplified efficient driving
*/
fuelEfficientDriving?: boolean;
}
/**
* Indicates whether the examiner had to take physical or verbal action during the test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "ETA".
*/
export interface ETA {
/**
* Indicates that the examiner had to take physical action
*/
physical?: boolean;
/**
* Indicates that the examiner had to take verbal action
*/
verbal?: boolean;
}
/**
* The test requirements that must be carried out during a test
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "testRequirements".
*/
export interface TestRequirements {
/**
* Indicates whether or not this test requirement was carried out
*/
normalStart1?: boolean;
/**
* Indicates whether or not this test requirement was carried out
*/
normalStart2?: boolean;
}
/**
* Data needs capturing for a manoeuvre competency
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "manoeuvre".
*/
export interface Manoeuvre {
controlFault?: ManoeuvreOutcome;
controlFaultComments?: FaultComments;
observationFault?: ManoeuvreOutcome;
observationFaultComments?: FaultComments;
selected?: ManoeuvreIndicator;
}
/**
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "eyesightTest".
*/
export interface EyesightTest {
complete?: boolean;
/**
* Whether the candidate has failed the eyesight test
*/
seriousFault?: boolean;
faultComments?: FaultComments;
}
/**
* Result of a vehicle checks question
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "questionResult".
*/
export interface QuestionResult {
code?: QuestionCode;
description?: QuestionDescription;
outcome?: QuestionOutcome;
}
/**
* Result of a safety question
*
* This interface was referenced by `TestResultCommonSchema`'s JSON-Schema
* via the `definition` "safetyQuestionResult".
*/
export interface SafetyQuestionResult {
description?: QuestionDescription;
outcome?: QuestionOutcome;
}