Lytx Vehicles (DriveCam) API

Legacy External Vehicles API. Uses obsolete X-APIKey authentication.

Documentation

📖
Documentation
https://developer.lytx.com/openapispec/consent.openapi
📖
APIReference
https://developer.lytx.com/openapispec/consent.openapi
📖
Documentation
https://developer.lytx.com/openapispec/device.openapi
📖
APIReference
https://developer.lytx.com/openapispec/device.openapi
📖
Documentation
https://developer.lytx.com/openapispec/deviceplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/deviceplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/devicestatusinfoplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/devicestatusinfoplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/diagnosticsplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/diagnosticsplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/distance.openapi
📖
APIReference
https://developer.lytx.com/openapispec/distance.openapi
📖
Documentation
https://developer.lytx.com/openapispec/driver.assignment.openapi
📖
APIReference
https://developer.lytx.com/openapispec/driver.assignment.openapi
📖
Documentation
https://developer.lytx.com/openapispec/driversplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/driversplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/dvir.openapi
📖
APIReference
https://developer.lytx.com/openapispec/dvir.openapi
📖
Documentation
https://developer.lytx.com/openapispec/dvirplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/dvirplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/ecm.openapi
📖
APIReference
https://developer.lytx.com/openapispec/ecm.openapi
📖
Documentation
https://developer.lytx.com/openapispec/ecm.v2.openapi
📖
APIReference
https://developer.lytx.com/openapispec/ecm.v2.openapi
📖
Documentation
https://developer.lytx.com/openapispec/exceptioneventplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/exceptioneventplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/faultdataplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/faultdataplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/fleetutilizationplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/fleetutilizationplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/geofences.openapi
📖
APIReference
https://developer.lytx.com/openapispec/geofences.openapi
📖
Documentation
https://developer.lytx.com/openapispec/gps.openapi
📖
APIReference
https://developer.lytx.com/openapispec/gps.openapi
📖
Documentation
https://developer.lytx.com/openapispec/gpsplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/gpsplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/group.openapi
📖
APIReference
https://developer.lytx.com/openapispec/group.openapi
📖
Documentation
https://developer.lytx.com/openapispec/group.v2.openapi
📖
APIReference
https://developer.lytx.com/openapispec/group.v2.openapi
📖
Documentation
https://developer.lytx.com/openapispec/groupplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/groupplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/hos.openapi
📖
APIReference
https://developer.lytx.com/openapispec/hos.openapi
📖
Documentation
https://developer.lytx.com/openapispec/hosplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/hosplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/iftareportplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/iftareportplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/legacy.driversession.services.openapi
📖
APIReference
https://developer.lytx.com/openapispec/legacy.driversession.services.openapi
📖
Documentation
https://developer.lytx.com/openapispec/legacy.groups.openapi
📖
APIReference
https://developer.lytx.com/openapispec/legacy.groups.openapi
📖
Documentation
https://developer.lytx.com/openapispec/legacy.hos.openapi
📖
APIReference
https://developer.lytx.com/openapispec/legacy.hos.openapi
📖
Documentation
https://developer.lytx.com/openapispec/legacy.vehicleinfo.aggregator.openapi
📖
APIReference
https://developer.lytx.com/openapispec/legacy.vehicleinfo.aggregator.openapi
📖
Documentation
https://developer.lytx.com/openapispec/legacy.vehicles.openapi
📖
APIReference
https://developer.lytx.com/openapispec/legacy.vehicles.openapi
📖
Documentation
https://developer.lytx.com/openapispec/legacy.videoplatform.openapi
📖
APIReference
https://developer.lytx.com/openapispec/legacy.videoplatform.openapi
📖
Documentation
https://developer.lytx.com/openapispec/maintenancerecordsplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/maintenancerecordsplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/ruleplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/ruleplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/safety.openapi
📖
APIReference
https://developer.lytx.com/openapispec/safety.openapi
📖
Documentation
https://developer.lytx.com/openapispec/statusdataplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/statusdataplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/trips.openapi
📖
APIReference
https://developer.lytx.com/openapispec/trips.openapi
📖
Documentation
https://developer.lytx.com/openapispec/tripsplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/tripsplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/user.openapi
📖
APIReference
https://developer.lytx.com/openapispec/user.openapi
📖
Documentation
https://developer.lytx.com/openapispec/userplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/userplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/vehicles.openapi
📖
APIReference
https://developer.lytx.com/openapispec/vehicles.openapi
📖
Documentation
https://developer.lytx.com/openapispec/video.openapi
📖
APIReference
https://developer.lytx.com/openapispec/video.openapi
📖
Documentation
https://developer.lytx.com/openapispec/zonesplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/zonesplus.openapi
📖
Documentation
https://developer.lytx.com/openapispec/zonesputandpostplus.openapi
📖
APIReference
https://developer.lytx.com/openapispec/zonesputandpostplus.openapi

Specifications

OpenAPI Specification

lytx-vehicles-drivecam-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Lytx..Management.Api Consent Vehicles (DriveCam) API
  description: 'API for retrieving and updating user consent status, requiring authentication.

    '
  version: 1.0.0
servers:
- url: https://api.lytx.com/consent-management
security:
- bearerAuth: []
tags:
- name: Vehicles (DriveCam)
  description: Legacy External Vehicles API. Uses obsolete X-APIKey authentication.
paths:
  /all:
    post:
      tags:
      - Vehicles (DriveCam)
      summary: Adds New Vehicle
      operationId: Vehicle_AddVehicle
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddVehicleRequest'
        required: true
        x-position: 1
      responses:
        '201':
          description: Vehicle added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddedVehicleResponse'
        '400':
          description: The parameters given in the request are invalid.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '409':
          description: Vehicle with provided name already exists.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
    get:
      tags:
      - Vehicles (DriveCam)
      summary: Retrieve Vehicles
      operationId: Vehicle_GetVehicles
      parameters:
      - name: groupId
        in: query
        description: ID of the group that the vehicle of interest is associated to (GUID).
        schema:
          type: string
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        x-position: 1
      - name: name
        in: query
        description: "An identifier to filter by a vehicle's name. This parameter allows for matching all or any part of a vehicle name.\n            If more than one vehicle matches the name pattern, a list of them will be returned.\n            Pattern is considered as match either partially or fully (i.e. pattern=“ABC”, matches: ABC, myABCvehicle, ABCfleet, fleetABC etc.)"
        schema:
          type: string
          maxLength: 50
          minLength: 1
          nullable: true
        x-position: 2
      - name: limit
        in: query
        description: Number of vehicles to receive.
        schema:
          type: integer
          format: int32
          default: 100
          maximum: 1000
          minimum: 1
        x-position: 3
      - name: page
        in: query
        description: Number of the page from which vehicles should be receive.
        schema:
          type: integer
          format: int32
          default: 1
          maximum: 2147483647
          minimum: 1
        x-position: 4
      - name: includeSubgroups
        in: query
        description: Indicates whether results should include data for all subgroups of the group specified.
        schema:
          type: boolean
          default: true
        x-position: 5
      responses:
        '200':
          description: Vehicles retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehiclesResponse'
        '204':
          description: No vehicles were found that match the specified selection criteria.
        '400':
          description: The parameters given in the request are invalid.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
  /{id}:
    patch:
      tags:
      - Vehicles (DriveCam)
      summary: Update Vehicle with Specified ID (full or partial)
      operationId: Vehicle_UpdateVehicle
      parameters:
      - name: id
        in: path
        required: true
        description: ID of the vehicle to be updated (GUID).
        schema:
          type: string
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        x-position: 1
      requestBody:
        x-name: Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVehicleRequest'
        required: true
        x-position: 2
      responses:
        '200':
          description: Vehicle updated. Vehicle with updated properties is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleResponse'
        '400':
          description: The parameters given in the request are invalid.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '404':
          description: Vehicle does not exist.
        '409':
          description: Vehicle with provided name already exists.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
    delete:
      tags:
      - Vehicles (DriveCam)
      summary: Delete Vehicle with Specified ID
      operationId: Vehicle_DeleteVehicle
      parameters:
      - name: id
        in: path
        required: true
        description: ID of the vehicle to delete (GUID).
        schema:
          type: string
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        x-position: 1
      responses:
        '204':
          description: Vehicle deleted.
        '400':
          description: The parameters given in the request are invalid.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '404':
          description: Vehicle does not exist.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
    get:
      tags:
      - Vehicles (DriveCam)
      summary: Retrieve Vehicle with Specified ID
      operationId: Vehicle_GetVehicle
      parameters:
      - name: id
        in: path
        required: true
        description: ID of the vehicle of interest (GUID).
        schema:
          type: string
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        x-position: 1
      responses:
        '200':
          description: Vehicle retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleResponse'
        '400':
          description: The parameters given in the request are invalid.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '404':
          description: Vehicle does not exist.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
  /statuses:
    get:
      tags:
      - Vehicles (DriveCam)
      summary: Retrieve List of Possible Vehicle Statuses
      operationId: Vehicle_GetVehicleStatuses
      responses:
        '200':
          description: Vehicle statuses retrieved.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleStatus'
        '204':
          description: No vehicle statuses found.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
  /types:
    get:
      tags:
      - Vehicles (DriveCam)
      summary: Retrieve List of Possible Vehicle Types
      operationId: Vehicle_GetVehicleTypes
      responses:
        '200':
          description: Vehicle types retrieved.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleType'
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
  /seatbelt-types:
    get:
      tags:
      - Vehicles (DriveCam)
      summary: Retrieve List of Possible Seatbelt Types
      operationId: Vehicle_GetSeatbeltTypes
      responses:
        '200':
          description: Seatbelt types retrieved.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SeatbeltType'
        '204':
          description: No seatbelt types found.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
  /country-subdivisions:
    get:
      tags:
      - Vehicles (DriveCam)
      summary: Retrieve List of Subdivisions for Country with Specified Code
      operationId: Vehicle_GetCountrySubdivisions
      parameters:
      - name: countryCode
        in: query
        schema:
          type: string
          pattern: ^[A-Z]{2}$
          nullable: true
        x-position: 1
      responses:
        '200':
          description: Subdivisions retrieved.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountrySubdivision'
        '204':
          description: No subdivisions found for country with specified code.
        '400':
          description: The parameters given in the request are invalid.
        '401':
          description: Unauthorized due to providing an invalid access key, or invalid pod.
        '403':
          description: You have no permissions to make this operation.
        '404':
          description: Country with specified code does not exist.
        '500':
          description: Requested operation cannot be performed.
        '503':
          description: Requested operation cannot be performed. Try again later.
components:
  schemas:
    Vehicle:
      type: object
      additionalProperties: false
      required:
      - id
      - name
      - type
      - status
      - licensePlateNumber
      - countrySubdivision
      - lastConnected
      - groupId
      - vin
      - seatbeltType
      properties:
        id:
          type: string
          description: ID of the vehicle.
          format: guid
          minLength: 1
        name:
          type: string
          description: Name of the vehicle.
          minLength: 1
        type:
          type: integer
          description: Type of the vehicle.
          format: int32
        status:
          type: integer
          description: Status of the vehicle.
          format: int32
        licensePlateNumber:
          type: string
          description: License plate number of the vehicle.
          minLength: 1
        countrySubdivision:
          type: string
          description: Code of the country subdivision of the vehicle.
          minLength: 1
        lastConnected:
          type: string
          description: The last time when the vehicle was connected to the DriveCam's system, may be null.
          format: date-time
          minLength: 1
        driverId:
          type: string
          description: ID of the driver currently assigned to the vehicle, may be null if vehicle doesn’t have a one-to-one vehicle to driver relationship.
          format: guid
        groupId:
          type: string
          description: ID of the group that the vehicle belongs to.
          format: guid
          minLength: 1
        vin:
          type: string
          description: The VIN number of the vehicle.
          minLength: 1
        seatbeltType:
          type: integer
          description: Type of the seat belt in the vehicle.
          format: int32
        make:
          type: string
          description: Make of the vehicle.
          nullable: true
        model:
          type: string
          description: Model of the vehicle.
          nullable: true
        year:
          type: integer
          description: Production year of the vehicle.
          format: int32
          nullable: true
        deviceId:
          type: string
          description: Id of the device in the vehicle.
          format: guid
    HibernationDelay:
      type: string
      description: ''
      x-enumNames:
      - UseDefault
      - NoHibernation
      - OneMinute
      - FifteenMinutes
      - OneHour
      - FourHours
      - EightHours
      - TwelveHours
      - EighteenHours
      - SixtyHours
      enum:
      - UseDefault
      - NoHibernation
      - OneMinute
      - FifteenMinutes
      - OneHour
      - FourHours
      - EightHours
      - TwelveHours
      - EighteenHours
      - SixtyHours
    VehiclesResponse:
      type: object
      additionalProperties: false
      properties:
        vehicles:
          type: array
          description: Received vehicles.
          nullable: true
          items:
            $ref: '#/components/schemas/Vehicle'
        totalResults:
          type: integer
          description: Total number of vehicles in database.
          format: int32
    VehicleResponse:
      type: object
      additionalProperties: false
      required:
      - id
      - name
      - type
      - status
      - licensePlateNumber
      - countrySubdivision
      - lastConnected
      - groupId
      - vin
      - seatbeltType
      properties:
        id:
          type: string
          description: ID of the vehicle.
          format: guid
          minLength: 1
        name:
          type: string
          description: Name of the vehicle.
          minLength: 1
        type:
          type: integer
          description: Type of the vehicle.
          format: int32
        status:
          type: integer
          description: Status of the vehicle.
          format: int32
        licensePlateNumber:
          type: string
          description: License plate number of the vehicle.
          minLength: 1
        countrySubdivision:
          type: string
          description: Code of the country subdivision of the vehicle.
          minLength: 1
        lastConnected:
          type: string
          description: The last time when the vehicle was connected to the DriveCam's system, may be null.
          format: date-time
          minLength: 1
        driverId:
          type: string
          description: ID of the driver currently assigned to the vehicle, may be null if vehicle doesn’t have a one-to-one vehicle to driver relationship.
          format: guid
        groupId:
          type: string
          description: ID of the group that the vehicle belongs to.
          format: guid
          minLength: 1
        vin:
          type: string
          description: The VIN number of the vehicle.
          minLength: 1
        seatbeltType:
          type: integer
          description: Type of the seat belt in the vehicle.
          format: int32
        make:
          type: string
          description: Make of the vehicle.
          nullable: true
        model:
          type: string
          description: Model of the vehicle.
          nullable: true
        year:
          type: integer
          description: Production year of the vehicle.
          format: int32
          nullable: true
        deviceId:
          type: string
          description: Id of the device in the vehicle.
          format: guid
        hibernationDelay:
          description: Hibernation delay of the vehicle.
          type: string
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/HibernationDelay'
    VehicleStatus:
      type: object
      additionalProperties: false
      required:
      - id
      - description
      - creationDate
      properties:
        id:
          type: integer
          description: ID of the status.
          format: int64
        description:
          type: string
          description: Description of the status.
          minLength: 1
        creationDate:
          type: string
          description: Date when the status was created.
          format: date-time
          minLength: 1
    AddedVehicleResponse:
      type: object
      additionalProperties: false
      required:
      - vehicleId
      properties:
        vehicleId:
          type: string
          description: ID of the created vehicle.
          format: guid
          minLength: 1
    UpdateVehicleRequest:
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
          description: Name of the vehicle.
          maxLength: 50
          minLength: 1
          nullable: true
        driverId:
          type: string
          description: ID of the driver which will be assigned to the vehicle.
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        deviceId:
          type: string
          description: Id of the device in the vehicle.
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        deviceSerialNumber:
          type: string
          description: Serial number of the device in the vehicle.
          maxLength: 50
          minLength: 1
          nullable: true
        type:
          type: integer
          description: ID of the type of the vehicle.
          format: int32
          maximum: 32767
          minimum: 0
          nullable: true
        groupId:
          type: string
          description: ID of the group where the vehicle will be assigned.
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        status:
          type: integer
          description: ID of the status of the vehicle. By default the vehicle will be in service.
          format: int32
          maximum: 32767
          minimum: 1
          nullable: true
        seatbeltType:
          type: integer
          description: ID of the seatbelt type in the vehicle. By default the vehicle will has shoulder harness seatbelts.
          format: int32
          maximum: 32767
          minimum: 0
          nullable: true
        licensePlateNumber:
          type: string
          description: License plate number of the vehicle.
          maxLength: 50
          minLength: 1
          nullable: true
        countrySubdivisionId:
          type: integer
          description: Id of the country subdivision.
          format: int32
          maximum: 2147483647
          minimum: 0
          nullable: true
        vin:
          type: string
          description: VIN of the vehicle.
          maxLength: 17
          minLength: 17
          pattern: ^[A-HJ-NPR-Z0-9]{17}$
          nullable: true
        make:
          type: string
          description: Make of the vehicle.
          maxLength: 250
          minLength: 1
          nullable: true
        model:
          type: string
          description: Model of the vehicle.
          maxLength: 250
          minLength: 1
          nullable: true
        year:
          type: integer
          description: Production year of the vehicle.
          format: int32
          nullable: true
        hibernationDelay:
          description: Hibernation delay of the vehicle.
          type: string
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/HibernationDelay'
    AddVehicleRequest:
      type: object
      additionalProperties: false
      required:
      - name
      - groupId
      properties:
        name:
          type: string
          description: Name of the vehicle. Should be unique in group scope.
          maxLength: 50
          minLength: 1
        driverId:
          type: string
          description: ID of the driver which will be assigned to the vehicle.
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        deviceId:
          type: string
          description: Id of the device in the vehicle.
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
          nullable: true
        deviceSerialNumber:
          type: string
          description: Serial number of the device in the vehicle.
          maxLength: 50
          minLength: 1
          nullable: true
        type:
          type: integer
          description: By default, the vehicle will figure as unassigned.
          format: int32
          default: 0
          maximum: 32767
          minimum: 0
        groupId:
          type: string
          description: ID of the group where the vehicle will be assigned.
          minLength: 1
          pattern: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$
        status:
          type: integer
          description: ID of the status of the vehicle. By default, the vehicle will figure as in service.
          format: int32
          default: 2
          maximum: 32767
          minimum: 1
        seatbeltType:
          type: integer
          description: ID of the seatbelt type in the vehicle. By default, the vehicle will have shoulder harness seatbelts.
          format: int32
          default: 1
          maximum: 32767
          minimum: 0
        licensePlateNumber:
          type: string
          description: License plate number of the vehicle.
          maxLength: 50
          minLength: 1
          nullable: true
        countrySubdivisionId:
          type: integer
          description: Id of the country subdivision.
          format: int32
          maximum: 2147483647
          minimum: 0
          nullable: true
        vin:
          type: string
          description: VIN of the vehicle.
          maxLength: 17
          minLength: 17
          pattern: ^[A-HJ-NPR-Z0-9]{17}$
          nullable: true
        make:
          type: string
          description: Make of the vehicle.
          maxLength: 250
          minLength: 1
          nullable: true
        model:
          type: string
          description: Model of the vehicle.
          maxLength: 250
          minLength: 1
          nullable: true
        year:
          type: integer
          description: Production year of the vehicle.
          format: int32
          nullable: true
        hibernationDelay:
          description: Hibernation delay of the vehicle.
          type: string
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/HibernationDelay'
    VehicleType:
      type: object
      additionalProperties: false
      required:
      - id
      - description
      - creationDate
      properties:
        id:
          type: integer
          description: ID of the type.
          format: int64
        description:
          type: string
          description: Description of the type.
          minLength: 1
        creationDate:
          type: string
          description: Date when the type was created.
          format: date-time
          minLength: 1
    SeatbeltType:
      type: object
      additionalProperties: false
      required:
      - id
      - name
      - creationDate
      properties:
        id:
          type: integer
          description: ID of the type.
          format: int64
        name:
          type: string
          description: Name of the type.
          minLength: 1
        creationDate:
          type: string
          description: Date when the type was created.
          format: date-time
          minLength: 1
    CountrySubdivision:
      type: object
      additionalProperties: false
      required:
      - id
      - name
      - code
      properties:
        id:
          type: integer
          description: ID of the country subdivision.
          format: int32
        name:
          type: string
          description: Name of the country subdivision.
          minLength: 1
        code:
          type: string
          description: Code of the country subdivision.
          minLength: 1
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer