Optibus Operational Plan (Deprecated) API

These API endpoints are deprecated and could be removed in a future version. Please use GET /v2/operational-plan instead.

OpenAPI Specification

optibus-operational-plan-deprecated-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Optibus Operations Driver Absences Operational Plan (Deprecated) API
  version: 2.8.17
  description: '**Welcome to the Optibus Operations API documentation!**


    Optibus Operations is a cloud-based software solution that enables public transport providers to optimize their operations, planning, and scheduling. Our API provides programmatic access to Optibus Operations'' functionality, allowing you to integrate it with your own applications and systems.



    '
  license:
    name: Optibus Ltd, All rights reserved
  contact: {}
servers:
- url: https://YOUR-OPTIBUS-ACCOUNT.api.ops.optibus.co
  description: Contact your Optibus Customer Success Manager for the actual baseURL and API credentials to use.
tags:
- name: Operational Plan (Deprecated)
  description: These API endpoints are deprecated and could be removed in a future version. Please use GET /v2/operational-plan instead.
paths:
  /v1/operational-plan/{depotId}:
    get:
      operationId: GetDepotOperationalPlan
      responses:
        '200':
          description: The daily operational plan for the specified depot during the specified time range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDepotOperationalPlanV1Response'
        '302':
          description: For very large responses, the result is served as a presigned S3 file. This redirection is handled automatically by the majority of clients.
      description: '**WARNING: This is deprecated - you should use `/v2/operational-plan` described below. This API will not be supported beyond 2024-06-30.** Returns the daily operational plans for a specified date range and a specific depot.


        **Spare Types Support**: When the spare types feature flag is enabled, spare tasks will include additional properties:

        - `spareType`: The spare type code (e.g., "SPARE1", "SPARE2")

        - `displayId`: Will show the configured spare type name instead of the original display ID

        - `dutyType`: Will be set to "spare" for spare tasks

        - `startTime` and `endTime`: Will be included in the task summary for spare tasks based on the relevant spare type preference configuration'
      summary: Fetch depot operational plan
      tags:
      - Operational Plan (Deprecated)
      deprecated: true
      security:
      - api_key: []
      parameters:
      - description: '- Returns the daily operational plans for this depot ID'
        in: path
        name: depotId
        required: true
        schema:
          type: string
      - description: '- Returns the operational plans from this date (both from and to are required)'
        in: query
        name: from
        required: true
        schema:
          $ref: '#/components/schemas/StringifyDate'
      - description: '- Returns the daily operational plans to this date (both from and to are required)'
        in: query
        name: to
        required: true
        schema:
          $ref: '#/components/schemas/StringifyDate'
      - description: '- Returns the daily operational plans for the filtered driver IDs (when this filter is used, the response won''t include unassigned tasks)'
        in: query
        name: driversIds
        required: false
        schema:
          type: string
      - description: '- Returns the daily operational plans for the filtered vehicle IDs (when this filter is used, the response won''t include unassigned blocks)'
        in: query
        name: vehicleIds
        required: false
        schema:
          type: string
      - description: '-  When true, the response will include a full stop list on each trip (requests may take a long time or even time out)'
        in: query
        name: includeStops
        required: false
        schema:
          type: string
      - description: '- When true, the response will only contain tasks that have drivers assigned to them'
        in: query
        name: assignedOnly
        required: false
        schema:
          type: string
      - description: '-  In conjunction with supplying driver ids, When true return unassigned tasks as well as assigned tasks according to the driver filter.'
        in: query
        name: includeUnassigned
        required: false
        schema:
          type: string
      - description: '- When true, the response will include the properties of the plannedAssignments'
        in: query
        name: fetchPlannedAssignmentsProperties
        required: false
        schema:
          type: boolean
      - description: '- When specified, filters tasks, blocks, task assignments, and block assignments to only include those associated with the provided task display IDs. Can be a comma separated list (eg taskDisplayIds=T1,T2)'
        in: query
        name: taskDisplayIds
        required: false
        schema:
          type: string
        example: T100,T200,T300
  /v1/operational-plan:
    get:
      operationId: GetOperationalPlan
      responses:
        '200':
          description: The daily operational plan for the specified time range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOperationalPlanV1Response'
        '302':
          description: For very large responses, the result is served as a presigned S3 file. This redirection is handled automatically by the majority of clients.
      description: '**WARNING: This is deprecated - you should use `/v2/operational-plan` described below. This API will not be supported beyond 2024-06-30.** Returns the daily operational plans for a specified date range for every depot.


        **Spare Types Support**: When the spare types feature flag is enabled, spare tasks will include additional properties:

        - `spareType`: The spare type code (e.g., "SPARE1", "SPARE2")

        - `displayId`: Will show the configured spare type name instead of the original display ID

        - `dutyType`: Will be set to "spare" for spare tasks

        - `startTime` and `endTime`: Will be included in the task summary for spare tasks based on the relevant spare type preference configuration'
      summary: Fetch operational plan
      tags:
      - Operational Plan (Deprecated)
      deprecated: true
      security:
      - api_key: []
      parameters:
      - description: '- Returns the operational plans from this date (both from and to are required)'
        in: query
        name: from
        required: true
        schema:
          $ref: '#/components/schemas/StringifyDate'
      - description: '- Returns the daily operational plans to this date (both from and to are required)'
        in: query
        name: to
        required: true
        schema:
          $ref: '#/components/schemas/StringifyDate'
      - description: '- When specified, filters tasks, blocks, task assignments, and block assignments to only include those associated with the provided task display IDs. Can be a comma separated list (eg taskDisplayIds=T1,T2)'
        in: query
        name: taskDisplayIds
        required: false
        schema:
          type: string
        example: T100,T200,T300
components:
  schemas:
    TaskEventBase_BehindTheWheelHoursEventJsonData.CustomScheduleEventsTypes.BehindTheWheelHours_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_BehindTheWheelHoursEventJsonData.CustomScheduleEventsTypes.BehindTheWheelHours_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    ReliefCarEventsTypes.ReliefCarDriver:
      enum:
      - relief_car_driver
      type: string
    PrivateHireEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_OnScheduleCustomEvent.stops-or-id-or-description_'
      - $ref: '#/components/schemas/Partial_BaseEventJsonData_'
    RosterEvent_ReinforcementTripEventJsonData.OtherEventTypes.ReinforcementTrip_:
      allOf:
      - properties:
          eventType:
            $ref: '#/components/schemas/OtherEventTypes.ReinforcementTrip'
          eventId:
            type: string
        required:
        - eventType
        - eventId
        type: object
      - $ref: '#/components/schemas/GenericRosterEventProps_ReinforcementTripEventJsonData_'
    TaskEventBase_DeadheadEventJsonData.DeadheadSubType_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_DeadheadEventJsonData.DeadheadSubType_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    UUID:
      type: string
      description: Stringified ID for a resource. Cannot exceed 36 characters.
    GenericRosterEventProps_PostTripEventJsonData_:
      properties:
        eventJsonData:
          $ref: '#/components/schemas/PostTripEventJsonData'
        endTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
        startTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
      required:
      - eventJsonData
      - endTime
      - startTime
      type: object
    TechnicalBreakEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_OnScheduleCustomEvent.stops-or-id-or-description_'
      - $ref: '#/components/schemas/Partial_BaseEventJsonData_'
    TrainingEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_OnScheduleCustomEvent.stops-or-id-or-description_'
      - $ref: '#/components/schemas/Partial_BaseEventJsonData_'
    TaskEventBase_CustomEventJsonData.OnScheduleEventsTypes.Custom_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_CustomEventJsonData.OnScheduleEventsTypes.Custom_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    _RefuelEvent:
      $ref: '#/components/schemas/TaskEventBase_RefuelEventJsonData.OnScheduleEventsTypes.Refuel_'
    RosterEvent_TrainingEventJsonData.CustomScheduleEventsTypes.Training_:
      allOf:
      - properties:
          eventType:
            $ref: '#/components/schemas/CustomScheduleEventsTypes.Training'
          eventId:
            type: string
        required:
        - eventType
        - eventId
        type: object
      - $ref: '#/components/schemas/GenericRosterEventProps_TrainingEventJsonData_'
    EventStop:
      anyOf:
      - $ref: '#/components/schemas/CustomEventStop'
      - allOf:
        - $ref: '#/components/schemas/OnScheduleEventStop'
        - properties:
            isCustom:
              type: boolean
              enum:
              - false
              nullable: false
          type: object
    Pick_SameLocationEvent.Exclude_keyofSameLocationEvent.stops-or-id__:
      properties:
        vehicleId:
          type: string
        dutyId:
          type: string
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    CustomScheduleEventsTypes.Standby:
      enum:
      - standby
      type: string
    GenericRosterEventProps_SignOffEventJsonData_:
      properties:
        eventJsonData:
          $ref: '#/components/schemas/SignOffEventJsonData'
        endTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
        startTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
      required:
      - eventJsonData
      - endTime
      - startTime
      type: object
    LightDutyHoursEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_OnScheduleCustomEvent.stops-or-id-or-description_'
      - $ref: '#/components/schemas/Partial_BaseEventJsonData_'
    CustomScheduleEventsTypes.TechnicalBreak:
      enum:
      - technical_break
      type: string
    OnScheduleEventsTypes.ReliefCar:
      enum:
      - relief_cars
      type: string
    Partial_Pick_OtherTravelEvent.name__:
      properties:
        name:
          type: string
      type: object
      description: Make all properties in T optional
    GenericRosterEventProps_NonRevenueEventJsonData_:
      properties:
        eventJsonData:
          $ref: '#/components/schemas/NonRevenueEventJsonData'
        endTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
        startTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
      required:
      - eventJsonData
      - endTime
      - startTime
      type: object
    Pick_OtherTravelEvent.Exclude_keyofOtherTravelEvent.stops-or-id-or-name__:
      properties:
        distance:
          type: number
          format: double
        dutyId:
          type: string
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    ServiceTripEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_OnScheduleServiceTripEvent.stops-or-id_'
      - $ref: '#/components/schemas/Required_LocationInformation_'
      - $ref: '#/components/schemas/Stops'
      - $ref: '#/components/schemas/ParentTripMeta'
      - $ref: '#/components/schemas/SubTripMeta'
    GenericRosterEventProps_DeadheadEventJsonData_:
      properties:
        eventJsonData:
          $ref: '#/components/schemas/DeadheadEventJsonData'
        endTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
        startTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
      required:
      - eventJsonData
      - endTime
      - startTime
      type: object
    BreakEvent:
      $ref: '#/components/schemas/TaskEventBase_BreakEventJsonData.OnScheduleEventsTypes.Break_'
    TechnicalBreakEvent:
      $ref: '#/components/schemas/TaskEventBase_TechnicalBreakEventJsonData.CustomScheduleEventsTypes.TechnicalBreak_'
    StringId:
      type: string
      description: The name of an entity that is also used as its identifier (ID)
    Omit_RefuelEvent.stops-or-id_:
      $ref: '#/components/schemas/Pick_RefuelEvent.Exclude_keyofRefuelEvent.stops-or-id__'
      description: Construct a type with the properties of T except for those in type K.
    VehicleEmission:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      type: number
    TaskEventBase_ReliefCarPassengerEventJsonData.ReliefCarEventsTypes.ReliefCarPassenger_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_ReliefCarPassengerEventJsonData.ReliefCarEventsTypes.ReliefCarPassenger_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    RosterEvent_ServiceTripEventJsonData.OnScheduleEventsTypes.ServiceTrip_:
      allOf:
      - properties:
          eventType:
            $ref: '#/components/schemas/OnScheduleEventsTypes.ServiceTrip'
          eventId:
            type: string
        required:
        - eventType
        - eventId
        type: object
      - $ref: '#/components/schemas/GenericRosterEventProps_ServiceTripEventJsonData_'
    EventsRef:
      description: Unique ID combination to get full event data from `events` property
      properties:
        type:
          $ref: '#/components/schemas/ScheduleEventsTypeName'
        id:
          anyOf:
          - type: string
          - $ref: '#/components/schemas/EventStringId'
      required:
      - type
      - id
      type: object
      additionalProperties: false
    BaseEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Stops'
      - $ref: '#/components/schemas/LocationInformation'
    Passenger:
      anyOf:
      - $ref: '#/components/schemas/PublicTravelPassenger'
      - $ref: '#/components/schemas/StringId'
      description: 'The driver as a passenger.<br/>

        Events that can have drivers as passengers:<br/>

        <i>service | idle | taxi | reliefCar</i>'
    TaskEventBase_BreakEventJsonData.OnScheduleEventsTypes.Break_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_BreakEventJsonData.OnScheduleEventsTypes.Break_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    SignOffEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_SameLocationDutyEvent.stops-or-id_'
      - $ref: '#/components/schemas/BaseEventJsonData'
    VehicleTypology:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      type: number
    OnScheduleEventsTypes.Split:
      enum:
      - split
      type: string
    Omit_OnScheduleDeadheadEvent.stops-or-id_:
      $ref: '#/components/schemas/Pick_OnScheduleDeadheadEvent.Exclude_keyofOnScheduleDeadheadEvent.stops-or-id__'
      description: Construct a type with the properties of T except for those in type K.
    DepotOperationalPlan:
      allOf:
      - $ref: '#/components/schemas/DepotOperationalPlanBase'
      - properties:
          blocks:
            items:
              $ref: '#/components/schemas/CalendarBlock'
            type: array
            description: The information for blocks
          tasks:
            items:
              $ref: '#/components/schemas/ExternalCalendarTaskWithLocationSummary'
            type: array
            description: The information for tasks
        required:
        - blocks
        - tasks
        type: object
    VehicleClass:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      type: number
    Pick_ReliefCarTravelEvent.Exclude_keyofReliefCarTravelEvent.stops-or-id__:
      properties:
        distance:
          type: number
          format: double
        dutyId:
          type: string
        passengers:
          items:
            $ref: '#/components/schemas/Passenger'
          type: array
        carId:
          type: string
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    OtherEventTypes.PullIn:
      enum:
      - depot_pull_in
      type: string
    TaskEventBase_ReliefCarDriverEventJsonData.ReliefCarEventsTypes.ReliefCarDriver_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_ReliefCarDriverEventJsonData.ReliefCarEventsTypes.ReliefCarDriver_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    Omit_OnScheduleCustomEvent.stops-or-id-or-description_:
      $ref: '#/components/schemas/Pick_OnScheduleCustomEvent.Exclude_keyofOnScheduleCustomEvent.stops-or-id-or-description__'
      description: Construct a type with the properties of T except for those in type K.
    ScheduleSourceMeta:
      properties:
        source:
          type: string
          enum:
          - scheduling
          nullable: false
        wasModifiedInOperations:
          type: boolean
        optibusIds:
          $ref: '#/components/schemas/OptibusIds'
      required:
      - source
      - wasModifiedInOperations
      - optibusIds
      type: object
    TaskEventBase_ReinforcementTripEventJsonData.OtherEventTypes.ReinforcementTrip_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_ReinforcementTripEventJsonData.OtherEventTypes.ReinforcementTrip_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    SignOnEvent:
      $ref: '#/components/schemas/TaskEventBase_SignOnEventJsonData.OnScheduleEventsTypes.SignOn_'
    ExternalCalendarTaskSummaryWithLocationSummary:
      anyOf:
      - allOf:
        - $ref: '#/components/schemas/DutyEventSummary'
        - $ref: '#/components/schemas/LocationSummary'
      - properties:
          type:
            $ref: '#/components/schemas/TaskType'
        required:
        - type
        type: object
    TaskEventBase_PostTripEventJsonData.OnScheduleEventsTypes.PostTrip_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_PostTripEventJsonData.OnScheduleEventsTypes.PostTrip_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    TaskEventBase_TaxiEventJsonData.OnScheduleEventsTypes.Taxi_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_TaxiEventJsonData.OnScheduleEventsTypes.Taxi_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    ReinforcementTripEvent:
      allOf:
      - $ref: '#/components/schemas/TaskEventBase_ReinforcementTripEventJsonData.OtherEventTypes.ReinforcementTrip_'
      - $ref: '#/components/schemas/ReinforcementTripEventBase'
    TrainingEvent:
      $ref: '#/components/schemas/TaskEventBase_TrainingEventJsonData.CustomScheduleEventsTypes.Training_'
    AttributeValue:
      anyOf:
      - items:
          anyOf:
          - type: number
            format: double
          - type: string
        type: array
      - type: string
      - type: boolean
      - type: number
        format: double
    TaskEventBase_ServiceTripEventJsonData.OnScheduleEventsTypes.ServiceTrip_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_ServiceTripEventJsonData.OnScheduleEventsTypes.ServiceTrip_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    OptibusTime:
      type: string
      description: 'Time as HH:MM:SS <br/>

        between 24:00:00 and 47:59:59 is next day <br/>

        between 48:00:00 and 71:59:59 is the day after that

        a leading "-"" represents the previous day (eg -01:00:00 is 23:00 on the previous day)'
      pattern: ^-?([0-7][0-1]|[0-6][0-9]):([0-5][0-9]):([0-5][0-9])$
    SubTripMeta:
      properties:
        subTripIndex:
          type: number
          format: double
          description: 'if a sub trip, what is its position within it''s parent

            where parentTripId exists so should subTripIndex

            subTripIndex is one based'
        isLastSubTrip:
          type: boolean
        isFirstSubTrip:
          type: boolean
        parentSubTrips:
          items:
            type: string
          type: array
          nullable: true
          description: entire list of sub-trips for a parent trip
        parentProperties:
          $ref: '#/components/schemas/Record_string.unknown_'
          description: sub-trips don't have their own properties so they carry a copy of any properties their parent may have
        parentTripId:
          type: string
          description: If trip is a sub trip, this is tripId of it's parent
        parentEventId:
          type: string
          description: Parent roster event id of the sub-trip
      type: object
    Omit_SameLocationEvent.stops-or-id_:
      $ref: '#/components/schemas/Pick_SameLocationEvent.Exclude_keyofSameLocationEvent.stops-or-id__'
      description: Construct a type with the properties of T except for those in type K.
    RosterEvent_ReliefCarPassengerEventJsonData.ReliefCarEventsTypes.ReliefCarPassenger_:
      allOf:
      - properties:
          eventType:
            $ref: '#/components/schemas/ReliefCarEventsTypes.ReliefCarPassenger'
          eventId:
            type: string
        required:
        - eventType
        - eventId
        type: object
      - $ref: '#/components/schemas/GenericRosterEventProps_ReliefCarPassengerEventJsonData_'
    RechargeEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_RechargeEvent.stops-or-id_'
      - $ref: '#/components/schemas/BaseEventJsonData'
    LocationInformation:
      properties:
        destination:
          $ref: '#/components/schemas/EventStop'
        origin:
          $ref: '#/components/schemas/EventStop'
      type: object
      description: 'This type is used to map the event to the stops in the real world.

        remark: for same location events, the origin and the destination are the same.'
    TaskEventBase_MeetingEventJsonData.CustomScheduleEventsTypes.Meeting_:
      allOf:
      - $ref: '#/components/schemas/RosterEvent_MeetingEventJsonData.CustomScheduleEventsTypes.Meeting_'
      - $ref: '#/components/schemas/TaskEventProps'
      - properties:
          eventJsonData:
            allOf:
            - $ref: '#/components/schemas/SignPost'
            - properties:
                id:
                  $ref: '#/components/schemas/UUID'
              type: object
            - $ref: '#/components/schemas/SubTripMeta'
        required:
        - eventJsonData
        type: object
    DeadheadSubType:
      anyOf:
      - $ref: '#/components/schemas/OnScheduleEventsTypes.Deadhead'
      - $ref: '#/components/schemas/OtherEventTypes.PullIn'
      - $ref: '#/components/schemas/OtherEventTypes.PullOut'
    GenericRosterEventProps_AttendanceEventJsonData_:
      properties:
        eventJsonData:
          $ref: '#/components/schemas/AttendanceEventJsonData'
        endTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
        startTime:
          $ref: '#/components/schemas/MinutesFromMidnightTime'
      required:
      - eventJsonData
      - endTime
      - startTime
      type: object
    BreakEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Partial_Omit_OnScheduleBreakEvent.stops-or-id__'
      - $ref: '#/components/schemas/BaseEventJsonData'
    SplitEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_SameLocationDutyEvent.stops-or-id_'
      - $ref: '#/components/schemas/BaseEventJsonData'
    Pick_OnScheduleCustomEvent.Exclude_keyofOnScheduleCustomEvent.stops-or-id__:
      properties:
        description:
          type: string
        properties:
          $ref: '#/components/schemas/Record_string.unknown_'
        dutyId:
          type: string
      required:
      - description
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    RosterEvent_SplitEventJsonData.OnScheduleEventsTypes.Split_:
      allOf:
      - properties:
          eventType:
            $ref: '#/components/schemas/OnScheduleEventsTypes.Split'
          eventId:
            type: string
        required:
        - eventType
        - eventId
        type: object
      - $ref: '#/components/schemas/GenericRosterEventProps_SplitEventJsonData_'
    BehindTheWheelHoursEvent:
      $ref: '#/components/schemas/TaskEventBase_BehindTheWheelHoursEventJsonData.CustomScheduleEventsTypes.BehindTheWheelHours_'
    CustomEventStop:
      allOf:
      - $ref: '#/components/schemas/OnScheduleEventStop'
      - $ref: '#/components/schemas/Partial_Coordinates_'
      - properties:
          isCustom:
            type: boolean
            enum:
            - true
            nullable: false
        required:
        - isCustom
        type: object
      description: 'Custom event related data.<br/>

        Custom stops cannot be found in the `stops` catalog/property

        Their ID is actually their name and lat and long are stored directly in the EventStop json'
    CustomScheduleEventsTypes.Meeting:
      enum:
      - meeting
      type: string
    RosterDutyEventReference:
      properties:
        originRosterId:
          type: string
        deleted:
          type: boolean
        originalDutyId:
          type: string
        dutyId:
          type: string
        eventId:
          type: string
      required:
      - dutyId
      - eventId
      type: object
    Omit_OtherTravelEvent.stops-or-id-or-name_:
      $ref: '#/components/schemas/Pick_OtherTravelEvent.Exclude_keyofOtherTravelEvent.stops-or-id-or-name__'
      description: Construct a type with the properties of T except for those in type K.
    Pick_PublicTransportationEvent.Exclude_keyofPublicTransportationEvent.stops-or-id__:
      properties:
        distance:
          type: number
          format: double
        dutyId:
          type: string
        passengers:
          items:
            $ref: '#/components/schemas/Passenger'
          type: array
        travelTripsOnVehicle:
          properties:
            trips:
              items:
                $ref: '#/components/schemas/EventsRef'
              type: array
            id:
              type: string
          required:
          - trips
          - id
          type: object
      required:
      - travelTripsOnVehicle
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    OnScheduleEventsTypes.Custom:
      enum:
      - custom
      type: string
    MeetingEventJsonData:
      allOf:
      - $ref: '#/components/schemas/Omit_OnScheduleCustomEvent.stops-or-id-or-description_'
      - $ref: '#/components/schemas/Partial_BaseEventJsonData_'
    Omit_RechargeEvent.stops-or-id_:
      $ref: '#/components/schemas/Pick_RechargeEvent.Exclude_keyofRechargeEvent.stops-or-id__'
      description: Construct a type with the properties of T except for those in type K.
    Vehicle:
      properties:
        videoSurveillance:
          type: boolean
        passengerCounting:
          type: boolean
        bicycles:
          type: boolean
        consumptionMeter:
          type: boolean
        externalSound:
          type: boolean
        internalSound:
          type: boolean
        sideDisplay:
          type: boolean
        rearDisplay:
          type: boolean
        frontDisplay:
          type: boolean
        onboardMonitor:
          type: boolean
        staticInformation:
          type: boolean
        kneeling:
          type: boolean
        foldingSystem:
          type: boolean
        ramp:
          type: boolean
        loweredFloor:
          type: boolean
        corridor:
          type: boolean
        wheelchair:
          type: boolean
        climatization:
          type: boolean
        ecological:
          type: boolean
        newSeminew:
          type: boolean
        emission:
          $ref: '#/components/schemas/VehicleEmission'
        propulsion:
          $ref: '#/components/schemas/VehiclePropulsion'
        vclass:
          $re

# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optibus/refs/heads/main/openapi/optibus-operational-plan-deprecated-api-openapi.yml