Exhibit H-OpenAPI Spec.yaml

YAML file 17 KB Posted

Attached to
Automated Bus Land and Bus Stop Enforcement System (Hardware & Software)
Solicitation number
BD-26-1206-40000-40000-119832
Issued by
Suffolk County, Massachusetts

About this file

This file is an OpenAPI specification (version 3.0.3) for an Officer LPR (License Plate Recognition) API developed for the MBTA (Massachusetts Bay Transportation Authority), with a test server URL of https://mbta.gtechna.net/officercc5-test. The specification defines a REST API endpoint for creating LPR events, which allows law enforcement or parking enforcement officers to log and submit license plate recognition data with comprehensive details including event timestamps, vehicle plate information, GPS coordinates, enforcement agent details, and various alert indicators such as hotlist, timing, parking rights, and permit alerts.

The API supports multiple input parameters and response types, with security schemes including basic and bearer authentication. The specification provides detailed schemas for request and response objects, covering a wide range of data points such as organization information, event types, picture capture (including base64 encoded plate, black and white, and color images), and various alert flags. The system can handle different LPR sources like ARH, Elsag, Genetec, Imense, PIPS/3M, and manual entry, with the ability to track precise location, enforcement context, and multiple alert conditions for each license plate recognition event.

Text of this file

openapi: 3.0.3 info:

title: Officer Lpr API description: Officer LPR endpoint version: rc_8.12.52.85 servers:

- url: https://mbta.gtechna.net/officercc5-test description: Generated server url paths:

/api/v1/lprEvents:

post:

tags:

- Lpr Events description: Operation used for creating a LPR Event operationId: createLprEvents requestBody:

content:

application/json:

schema:

$ref: '#/components/schemas/LprEventRequestDto' required: true responses:

'200':

description: OK content:

schema:

$ref: '#/components/schemas/LprEventResponseDto' '401':

description: Unauthorized content:

application/json:

schema:

$ref: '#/components/schemas/MessageResponseJson' '407':

description: Bad Request content:

application/json:

schema:

$ref: '#/components/schemas/MessageResponseJson' '501':

description: Server Exception content:

application/json:

schema:

$ref: '#/components/schemas/MessageResponseJson' components:

securitySchemes:

basicAuth:

type: http scheme: basic bearerAuth:

type: http scheme: bearer schemas:

MessageResponseJson:

type: object properties:

code:

type: integer format: int32 type:

type: string enum:

- SUCCESS

- WARNING

- ERROR

- INFO

message:

type: string moduleId:

type: string enum:

- system

- officercc

- auth

- communicator

- parking_rights

- pending_ticket

- rate_calculator

- ticket

- general messageArgs:

type: array items:

type: object messageId:

type: string messageArg:

type: object writeOnly: true MessageResponseDto:

type: object properties:

status:

type: string operation:

type: string message:

type: string OrganizationDto:

type: object properties:

id:

type: integer format: int64 name:

type: string address:

type: string city:

type: string province:

type: string postalCode:

type: string timeZone:

type: string BaseLprEventRequestDto:

required:

- eventDate

- eventDateTime

- eventTime

- plate

- source type: object properties:

source:

type: string description: 'Source (Examples: A-ARH, E-Elsag, G-Genetec, I-Imense, P-PIPS/3M, M-Manual, TanneryCreek, Vigilant)' eventDate:

type: string description: Local Date, if empty, will be computed from eventDateTime (using organization or default time zone) field.

format: YYYY-mm-dd eventTime:

type: string description: Local Time, if empty, will be computed from eventDateTime (using organization or default time zone) field format: hh:mm:ss eventDateTime:

type: string description: DateTime. At least eventDate/eventTime or eventDateTime field is required. If eventDateTime is provided and eventDate/eventTime field is null then eventDate/eventTime will be calculated from eventDateTime.

The eventDateTime is in ISO 8601 format format: YYYY-MM-DDThh:mm:ss[.mmm]TZD plate:

maxLength: 40 type: string description: Vehicle plate state:

maxLength: 3 type: string description: Vehicle state/province code organization:

$ref: '#/components/schemas/OrganizationIdDto' agentNo:

maxLength: 10 type: string description: 'Agent number or username ' agentBadgeNo:

maxLength: 10 type: string description: 'Agent badge number ' clientId:

maxLength: 15 type: string description: Client device ID (or Device Id) doing the enforcement.

vehicleNo:

maxLength: 10 type: string description: The number or uuid of the vehicle doing the enforcement civicNo:

maxLength: 10 type: string description: Civic number streetName:

maxLength: 50 type: string description: Street name districtCode:

maxLength: 5 type: string description: DistrictCode spaceNo:

maxLength: 10 type: string description: Parking Space number parkingRightsZone:

maxLength: 50 type: string description: Parking Rights Zone Code (NULL-parking rights mode was off, else parking rights zone of enforcement) gpsLatitude:

maxLength: 12 type: string description: Location GPS Latitude gpsLongitude:

maxLength: 12 type: string description: Location GPS Longitude gpsQuality:

maxLength: 12 type: string description: GPS Signal Quality eventMsg:

maxLength: 4000 type: string description: Event alert message lprEventResultType:

$ref: '#/components/schemas/LprEventResultTypeCodeDto' eventType:

maxLength: 1 type: string description: Event Type (NULL-Reading with no alert, A-Alert, M-Misread) default: A hotlistAlert:

maxLength: 1 type: string description: Hot list alert (=NULL= feature was off, =T= True, =F= False) timingAlert:

maxLength: 1 type: string description: Timing alert (=NULL --> feature was off, =T --> True, =F --> False) parkingRightsAlert:

maxLength: 1 type: string description: ParkingRights alert (=NULL --> feature was off, =T --> True, =F --> False) sharedPermitAlert:

maxLength: 1 type: string description: Shared Permit alert (=NULL --> feature was off, =T --> True, =F --> False) permitAlert:

maxLength: 1 type: string description: Permit alert (=NULL --> feature was off, =T --> True, =F --> False) parkingRightsAlertType:

maxLength: 1 type: string description: Parking rights alert type (=E= Expired, =U= Unpaid, =D= Double Verification Failure) towing:

maxLength: 1 type: string description: Towing indicator (=NULL --> feature was off, =T --> True, =F --> False) warning:

maxLength: 1 type: string description: Warning indicator (=NULL --> feature was off, =T --> True, =F --> False) lprEventIgnoreReason:

$ref: '#/components/schemas/LprEventIgnoreReasonInputDto' plateRectStartX:

type: integer description: 'Plate rectangle startX within bwPicture or color Picture ' format: int32 plateRectStartY:

type: integer description: 'Plate rectangle startY within bwPicture or color Picture ' format: int32 plateRectEndX:

type: integer description: 'Plate rectangle endX within bwPicture or color Picture ' format: int32 plateRectEndY:

type: integer description: 'Plate rectangle endY within bwPicture or color Picture ' format: int32 platePicture:

type: string description: Plate Picture (base64) format: byte bwPicture:

type: string description: Black & White Picture (base64) format: byte colorPicture:

type: string description: Color Picture (base64) format: byte contextPictures:

type: array description: List of all context Pictures items:

$ref: '#/components/schemas/LprEventPictureDto' description: Related LPR hit for this LPR Event. Used for time hits LprEventIgnoreReasonInputDto:

maxLength: 100 type: object properties:

ignoreReason:

maxLength: 100 type: string description: Ignore reason description: Ignore reason message LprEventPictureDto:

type: object properties:

picture:

type: string description: Context Picture (base64) format: byte context:

maxLength: 200 type: string description: Context or Description pictureDate:

type: string description: Picture Date (Local Date) format: YYYY-mm-dd pictureTime:

maxLength: 8 type: string description: Picture Time (Local Time) format: HH:mm:ss description: List of all context Pictures LprEventRequestDto:

required:

- eventDate

- eventDateTime

- eventTime

- plate

- source type: object properties:

source:

type: string description: 'Source (Examples: A-ARH, E-Elsag, G-Genetec, I-Imense, P-PIPS/3M, M-Manual, TanneryCreek, Vigilant)' eventDate:

type: string description: Local Date, if empty, will be computed from eventDateTime (using organization or default time zone) field.

format: YYYY-mm-dd eventTime:

type: string description: Local Time, if empty, will be computed from eventDateTime (using organization or default time zone) field format: hh:mm:ss eventDateTime:

type: string description: DateTime. At least eventDate/eventTime or eventDateTime field is required. If eventDateTime is provided and eventDate/eventTime field is null then eventDate/eventTime will be calculated from eventDateTime.

The eventDateTime is in ISO 8601 format format: YYYY-MM-DDThh:mm:ss[.mmm]TZD plate:

maxLength: 40 type: string description: Vehicle plate state:

maxLength: 3 type: string description: Vehicle state/province code organization:

$ref: '#/components/schemas/OrganizationIdDto' agentNo:

maxLength: 10 type: string description: 'Agent number or username ' agentBadgeNo:

maxLength: 10 type: string description: 'Agent badge number ' clientId:

maxLength: 15 type: string description: Client device ID (or Device Id) doing the enforcement.

vehicleNo:

maxLength: 10 type: string description: The number or uuid of the vehicle doing the enforcement civicNo:

maxLength: 10 type: string description: Civic number streetName:

maxLength: 50 type: string description: Street name districtCode:

maxLength: 5 type: string description: DistrictCode spaceNo:

maxLength: 10 type: string description: Parking Space number parkingRightsZone:

maxLength: 50 type: string description: Parking Rights Zone Code (NULL-parking rights mode was off, else parking rights zone of enforcement) gpsLatitude:

maxLength: 12 type: string description: Location GPS Latitude gpsLongitude:

maxLength: 12 type: string description: Location GPS Longitude gpsQuality:

maxLength: 12 type: string description: GPS Signal Quality eventMsg:

maxLength: 4000 type: string description: Event alert message lprEventResultType:

$ref: '#/components/schemas/LprEventResultTypeCodeDto' eventType:

maxLength: 1 type: string description: Event Type (NULL-Reading with no alert, A-Alert, M-Misread) default: A hotlistAlert:

maxLength: 1 type: string description: Hot list alert (=NULL= feature was off, =T= True, =F= False) timingAlert:

maxLength: 1 type: string description: Timing alert (=NULL --> feature was off, =T --> True, =F --> False) parkingRightsAlert:

maxLength: 1 type: string description: ParkingRights alert (=NULL --> feature was off, =T --> True, =F --> False) sharedPermitAlert:

maxLength: 1 type: string description: Shared Permit alert (=NULL --> feature was off, =T --> True, =F --> False) permitAlert:

maxLength: 1 type: string description: Permit alert (=NULL --> feature was off, =T --> True, =F --> False) parkingRightsAlertType:

maxLength: 1 type: string description: Parking rights alert type (=E= Expired, =U= Unpaid, =D= Double Verification Failure) towing:

maxLength: 1 type: string description: Towing indicator (=NULL --> feature was off, =T --> True, =F --> False) warning:

maxLength: 1 type: string description: Warning indicator (=NULL --> feature was off, =T --> True, =F --> False) lprEventIgnoreReason:

$ref: '#/components/schemas/LprEventIgnoreReasonInputDto' plateRectStartX:

type: integer description: 'Plate rectangle startX within bwPicture or color Picture ' format: int32 plateRectStartY:

type: integer description: 'Plate rectangle startY within bwPicture or color Picture ' format: int32 plateRectEndX:

type: integer description: 'Plate rectangle endX within bwPicture or color Picture ' format: int32 plateRectEndY:

type: integer description: 'Plate rectangle endY within bwPicture or color Picture ' format: int32 platePicture:

type: string description: Plate Picture (base64) format: byte bwPicture:

type: string description: Black & White Picture (base64) format: byte colorPicture:

type: string description: Color Picture (base64) format: byte contextPictures:

type: array description: List of all context Pictures items:

$ref: '#/components/schemas/LprEventPictureDto' relatedLprEvent:

$ref: '#/components/schemas/BaseLprEventRequestDto' LprEventResultTypeCodeDto:

maxLength: 5 type: object properties:

code:

maxLength: 5 type: string description: Result Type code example: HIT description: Identifies the type of LPR Event result (READ-no alert, HTL-Hotllist, etc. Valid codes can be found in LprEventResultType table. alternately, the boolean fields (hotlistAlert, timingAlert, parkingRightsAlert, permitAlert, sharedPermitAlert) can also be used to specify the type of alert.)

OrganizationIdDto:

required:

- id type: object properties:

id:

maxLength: 8 type: integer description: Organization ID format: int64 description: Organization (optional) LprEventResponseDto:

type: object properties:

id:

type: string description: Created ID

Other files

Show all 13

On GovTribe

Work with this file

  • Download the original file
  • Contacts named in this file
  • Similar government files
  • Ask GovTribe AI about this file

File details come from the government source that posted it. Updated .