{
  "swagger": "2.0",
  "info": {
    "description": "Use this documenatation to test out all of the available SEPTA regional rail/bus/trolley API's",
    "version": "1.0.2",
    "title": "SEPTA Developers",
    "contact": {
      "name": "Contact Septa Team",
      "url": "http://www.twitter.com/septadev",
      "email": "septoid@gmail.com"
    }
  },
  "basePath": "/api",
  "tags": [
    {
      "name": "Real Time Data"
    },
    {
      "name": "Static Data"
    },
    {
      "name": "GTFS Data",
      "description": "https://www3.septa.org/developer/gtfs_public.zip"
    }
  ],
  "schemes": [
    "https",
    "http"
  ],
  "paths": {
    "/Arrivals/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Regional Rail Station Arrivals & Departures",
        "description": "Returns a list/queue of trains to arrive at a station in two/both directions. The direction is demarcated as either Northbound or Southbound. The direction are obviously not geographical references, but rather a reference to the old Reading and Pennsy Railroads. The key to understanding the directio                       n is by using Suburban Station as a starting point: Any trains that move eastbound towards Market East are all considered Northbound; trains going from suburban t                       o 30th St are all Southbound. The path field describes more accurately the path of travel along various branches. Every regional stop is a valid parameter.Please                        refer to the <a href='/VIRegionalRail.html'>Regional Rail Inputs</a> page to see all valid inputs",
        "operationId": "getListByStation",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "station",
            "in": "query",
            "description": "Valid Regional Rail station name",
            "required": true,
            "type": "string"
          },
          {
            "name": "results",
            "in": "query",
            "description": "Number of results to show",
            "type": "integer"
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Northbound(N) or Southbound Trains(S)",
            "type": "string",
            "enum": [
              "N",
              "S"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/Arrivals"
            }
          }
        }
      }
    },
    "/TrainView/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Creates list of all Regional Rail trains",
        "description": "Creates a list of all Regional Rail trains on the system. Showing the trains ID number, its starting location, its destination, and if its late or not",
        "operationId": "trainView",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/TrainView"
            }
          }
        }
      }
    },
    "/NextToArrive/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Next to Arrive",
        "description": "Returns departure and arrival times between two different stations. Please refer to the <a href='/VIRegionalRail.html'>Regional Rail Inputs</a> page to see all valid inputs.",
        "operationId": "NextToArrive",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "req1",
            "in": "query",
            "description": "Starting Regional Rail Station",
            "required": true,
            "type": "string"
          },
          {
            "name": "req2",
            "in": "query",
            "description": "Ending Regional Rail Station",
            "required": true,
            "type": "string"
          },
          {
            "name": "req3",
            "in": "query",
            "description": "Number of results to show",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/NextToArrive"
            }
          }
        }
      }
    },
    "/TransitView/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Bus and trolley location by route.",
        "description": "Returns bus and trolley locations by route. Every bus and trolley route is a valid parameter please refer to the <a href='/VIBusAndTrolley.html'>Bus & Trolley Inputs</a> page to see all valid inputs.",
        "operationId": "TransitView",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "route",
            "in": "query",
            "description": "Route Number",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful",
            "schema": {
              "$ref": "#/definitions/TransitView"
            }
          }
        }
      }
    },
    "/TransitViewAll/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Returns all buses and trolley locations.",
        "description": "Returns all buses and trolley locations.",
        "operationId": "TransitViewAll",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "successful",
            "schema": {
              "$ref": "#/definitions/TransitViewAll"
            }
          }
        }
      }
    },
    "/BusDetours/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Returns a list of bus and trolley detours by route.",
        "description": "Returns a list of bus and trolley detours by route.Every bus and trolley route is a valid parameter please refer to the <a href='/VIBusAndTrolley.html'>Bus & Trolley Inputs</a> page to see all valid inputs.",
        "operationId": "BusDetours",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "req1",
            "in": "query",
            "description": "Bus or trolley route numbers",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/BusDetours"
            }
          }
        }
      }
    },
    "/Alerts/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Alerts with no message",
        "description": "Shows if there is a travel alert for a bus or trolley route. Get all the route id from <a href='https://www3.septa.org/api/Alerts'>here</a>",
        "operationId": "NoMessageAlert",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "routes",
            "in": "query",
            "description": "Ex : bus_route_1 or trolley_route_10 or rr_route_chw",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/Alerts"
            }
          }
        }
      }
    },
    "/Alerts/get_alert_data.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Alerts with message.",
        "description": "Returns the travel alerts for a bus or trolley route.Get all the route id from <a href='https://www3.septa.org/api/Alerts'>here</a>",
        "operationId": "MessageAlert",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "route_id",
            "in": "query",
            "description": "Ex : bus_route_1 or trolley_route_10 or rr_route_chw",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/MessageAlerts"
            }
          }
        }
      }
    },
    "/elevator/index.php": {
      "get": {
        "tags": [
          "Real Time Data"
        ],
        "summary": "Elevator Outages.",
        "description": "Returns a list of all elevator outages.",
        "operationId": "ElevatorOutages",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/ElevatorOutage"
            }
          }
        }
      }
    },
    "/RRSchedules/index.php": {
      "get": {
        "tags": [
          "Static Data"
        ],
        "summary": "Regional Rail Schedules",
        "description": "Returns the schedule for a train by the train's number. For train numbers please check the GTFS data.",
        "operationId": "TrainSchedule",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "req1",
            "in": "query",
            "description": "Train Number",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/TrainSchedule"
            }
          }
        }
      }
    },
    "/BusSchedules/index.php": {
      "get": {
        "tags": [
          "Static Data"
        ],
        "summary": "Bus or trolley schedules",
        "description": "Returns a list of times that a bus or trolley will stop at a particular stop.",
        "operationId": "BusSchedule",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "stop_id",
            "in": "query",
            "description": "Every stop ID is a valid parameter for a list of stop IDs by route please visit the <a href='/stops/index.php'>Choose Your Stop ID</a> page.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/BusSchedule"
            }
          }
        }
      }
    },
    "/sms/index.php": {
      "get": {
        "tags": [
          "Static Data"
        ],
        "summary": "Bus or trolley schedules in SMS format",
        "description": "Returns bus and trolley stop schedule times by stop_id, route, and/or direction.",
        "operationId": "SMS",
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "name": "req1",
            "in": "query",
            "description": "Every stop ID is a valid parameter for a list of stop IDs by route please visit the <a href='/stops/index.php'>Choose Your Stop ID</a> page.",
            "required": true,
            "type": "string"
          },
          {
            "name": "req2",
            "in": "query",
            "description": "Every bus and trolley route is a valid parameter please refer to the <a href='/VIBusAndTrolley.html'>Bus & Trolley Inputs</a> page to see all valid input>",
            "required": false,
            "type": "string"
          },
          {
            "name": "req3",
            "in": "query",
            "description": "Valid GTFS direction_id: 0 or 1",
            "required": false,
            "type": "string"
          },
          {
            "name": "req4",
            "in": "query",
            "description": "Returns schedule times on or after specified date, format: MM/DD/YYYY.  Defaults to current day.",
            "required": false,
            "type": "string"
          },
          {
            "name": "req5",
            "in": "query",
            "description": "Returns schedule times on or after specified time, format: HH:mm:ss.  Defaults to current time.",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/SMS"
            }
          }
        }
      }
    },
    "/Stops/index.php": {
      "get": {
        "tags": [
          "Static Data"
        ],
        "summary": "List of stops by route.",
        "description": "Returns bus and trolley stop locations by route.",
        "operationId": "Stops",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "req1",
            "in": "query",
            "description": "Every bus and trolley route is a valid parameter please refer to the <a href='/VIBusAndTrolley.html'>Bus & Trolley Inputs</a> page to see all valid inputs.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/Stops"
            }
          }
        }
      }
    },
    "/locations/get_locations.php": {
      "get": {
        "tags": [
          "Static Data"
        ],
        "summary": "System Locations",
        "description": "Takes in 4 parameters to return all SEPTA locations from a geographical point within a radius that is measured in miles.",
        "operationId": "Locations",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "lon",
            "in": "query",
            "description": "Longitude",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "lat",
            "in": "query",
            "description": "Latitude",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Location Type",
            "type": "string",
            "enum": [
              "bus_stops",
              "perk_locations",
              "rail_stations",
              "sales_locations",
              "trolley_stops"
            ]
          },
          {
            "name": "radius",
            "in": "query",
            "description": "Radius",
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/Locations"
            }
          }
        }
      }
    },
    "/gtfsrt/septa-pa-us/Service/print.php": {
      "get": {
        "tags": [
          "GTFS Data"
        ],
        "summary": "GTFS Bus alerts",
        "description": "A human-readable representation of the bus alerts GTFS data. This endpoint shows only the **top five** results. For the complete set of results, please parse the raw protobuf file linked below.  Information on parsing this protobuf file can be found at [gtfs.org](https://gtfs.org/realtime/language-bindings/)",
        "operationId": "GTFSBusAlert",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/GtfsAlert"
            }
          }
        },
        "externalDocs": {
          "description": "GTFS bus alerts protobuf file",
          "url": "https://www3.septa.org/gtfsrt/septa-pa-us/Service/rtServiceAlerts.pb"
        }
      }
    },
    "/gtfsrt/septarail-pa-us/Service/print.php": {
      "get": {
        "tags": [
          "GTFS Data"
        ],
        "summary": "GTFS regional rail alerts",
        "description": "A human-readable representation of the regional rail alerts GTFS data. This endpoint shows only the **top five** results. For a complete set of results, please parse the raw protobuf file linked below. Information on parsing this protobuf file can be found at [gtfs.org](https://gtfs.org/realtime/language-bindings/)",
        "operationId": "GTFSTrainAlert",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/GtfsAlert"
            }
          }
        },
        "externalDocs": {
          "description": "GTFS regional rail alerts protobuf file",
          "url": "https://www3.septa.org/gtfsrt/septarail-pa-us/Service/rtServiceAlerts.pb"
        }
      }
    },
    "/gtfsrt/septa-pa-us/Trip/print.php": {
      "get": {
        "tags": [
          "GTFS Data"
        ],
        "summary": "GTFS bus trip updates",
        "description": "A human-readable representation of the bus/trolley trip update GTFS data. This endpoint shows only the **top five** results; For a complete set of results, please parse the raw protobuf file linked below.  Information on parsing this protobuf file can be found at [gtfs.org](https://gtfs.org/realtime/language-bindings/)",
        "operationId": "GTFSBusTrip",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/GtfsTrip"
            }
          }
        },
        "externalDocs": {
          "description": "GTFS bus/trolley trip update protobuf file",
          "url": "https://www3.septa.org/gtfsrt/septa-pa-us/Trip/rtTripUpdates.pb"
        }
      }
    },
    "/gtfsrt/septarail-pa-us/Trip/print.php": {
      "get": {
        "tags": [
          "GTFS Data"
        ],
        "summary": "GTFS regional rail trip updates",
        "description": "A human-readable representation of the regional rail trip update GTFS data. This endpoint shows only the **top five** results; For a complete set of results, please parse the raw protobuf file linked below.  Information on parsing this protobuf file can be found at [gtfs.org](https://gtfs.org/realtime/language-bindings/)",
        "operationId": "GTFSTrainTrip",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/GtfsTrip"
            }
          }
        },
        "externalDocs": {
          "description": "GTFS bus/trolley trip update protobuf file",
          "url": "https://www3.septa.org/gtfsrt/septarail-pa-us/Trip/rtTripUpdates.pb"
        }
      }
    },
    "/gtfsrt/septa-pa-us/Vehicle/print.php": {
      "get": {
        "tags": [
          "GTFS Data"
        ],
        "summary": "GTFS bus vehicle position updates",
        "description": "A human-readable representation of the bus/trolley vehicle position GTFS data. This endpoint shows only the **top five** results; For a complete set of results, please parse the raw protobuf file linked below.  Information on parsing this protobuf file can be found at [gtfs.org](https://gtfs.org/realtime/language-bindings/)",
        "operationId": "GTFSBusVehicle",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/GtfsVehicle"
            }
          }
        },
        "externalDocs": {
          "description": "GTFS bus/trolley vehicle position protobuf file",
          "url": "https://www3.septa.org/gtfsrt/septa-pa-us/Vehicle/rtVehiclePosition.pb"
        }
      }
    },
    "/gtfsrt/septarail-pa-us/Vehicle/print.php": {
      "get": {
        "tags": [
          "GTFS Data"
        ],
        "summary": "GTFS regional rail vehicle position updates",
        "description": "A human-readable representation of the regional rail vehicle position GTFS data. This endpoint shows only the **top five** results; For a complete set of results, please parse the raw protobuf file linked below.  Information on parsing this protobuf file can be found at [gtfs.org](https://gtfs.org/realtime/language-bindings/)",
        "operationId": "GTFSTrainVehicle",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "success",
            "schema": {
              "$ref": "#/definitions/GtfsVehicle"
            }
          }
        },
        "externalDocs": {
          "description": "GTFS regional rail vehicle position protobuf file",
          "url": "https://www3.septa.org/gtfsrt/septarail-pa-us/Vehicle/rtVehiclePosition.pb"
        }
      }
    }
  },
  "definitions": {
    "Arrivals": {
      "type": "object",
      "properties": {
        "*": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "Northbound": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "direction": {
                      "type": "string",
                      "description": "The direction of the regional rail. 'N' for Northbound and 'S' for Southbound",
                      "enum": [
                        "N",
                        "S"
                      ]
                    },
                    "path": {
                      "type": "string",
                      "description": "Unique path to represent a regional rail line"
                    },
                    "train_id": {
                      "type": "string",
                      "format": "byte",
                      "description": "Regional rail train number"
                    },
                    "origin": {
                      "type": "string",
                      "description": "Regional rail originating station"
                    },
                    "destination": {
                      "type": "string",
                      "description": "Regional rail terminating station"
                    },
                    "line": {
                      "type": "string",
                      "description": "Regional rail line name"
                    },
                    "status": {
                      "type": "string",
                      "format": "byte",
                      "description": "The current status of the transiting trains"
                    },
                    "service_type": {
                      "type": "string",
                      "description": "Shows if the regional rail is an express or a local"
                    },
                    "next_station": {
                      "type": "string",
                      "description": "The next regional rail station of the transiting train"
                    },
                    "sched_time": {
                      "type": "string",
                      "description": "Scheduled time of arrival for regional rail at the station passed as parameter in the API"
                    },
                    "depart_time": {
                      "type": "string",
                      "description": "Scheduled time of departure for the regional rail at the station passed as parameter in the API"
                    },
                    "track": {
                      "type": "string",
                      "description": "The track where the regional rail is scheduled to arrive at the station passed as parameter in the API"
                    },
                    "track_change": {
                      "type": "string",
                      "description": "Shows if there is a change in track for the regional rail at the station passed as parameter in the API"
                    },
                    "platform": {
                      "type": "string",
                      "description": "Determines the scheduled part of the track where the regional rail will stop"
                    },
                    "platform_change": {
                      "type": "string",
                      "description": "Determines if there is a change from the scheduled part of the track where the regional rail will stop"
                    }
                  }
                }
              },
              "Southbound": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "direction": {
                      "type": "string",
                      "description": "Determines the direction of the regional rail. 'N' for Northbound and 'S' for Southbound",
                      "enum": [
                        "N",
                        "S"
                      ]
                    },
                    "path": {
                      "type": "string",
                      "description": "Unique path to represent a regional rail line"
                    },
                    "train_id": {
                      "type": "string",
                      "format": "byte",
                      "description": "A unique number to identify a regional rail"
                    },
                    "origin": {
                      "type": "string",
                      "description": "Regional rail originating station"
                    },
                    "destination": {
                      "type": "string",
                      "description": "Regional rail terminating station"
                    },
                    "line": {
                      "type": "string",
                      "description": "Regional rail lines"
                    },
                    "status": {
                      "type": "string",
                      "format": "byte",
                      "description": "The current status of the transiting trains"
                    },
                    "service_type": {
                      "type": "string",
                      "description": "Shows if the regional rail is an express or a local"
                    },
                    "next_station": {
                      "type": "string",
                      "description": "The next regional rail station of the transiting train"
                    },
                    "sched_time": {
                      "type": "string",
                      "description": "Scheduled time of arrival for regional rail at the station passed as parameter in the API"
                    },
                    "depart_time": {
                      "type": "string",
                      "description": "Scheduled time of departure for the regional rail at the station passed as parameter in the API"
                    },
                    "track": {
                      "type": "string",
                      "description": "The track where the regional rail is scheduled to arrive at the station passed as parameter in the API"
                    },
                    "track_change": {
                      "type": "string",
                      "description": "Shows if there is a change in track for the regional rail at the station passed as parameter in the API"
                    },
                    "platform": {
                      "type": "string",
                      "description": "Determines the scheduled part of the track where the regional rail will stop"
                    },
                    "platform_change": {
                      "type": "string",
                      "description": "Determines if there is a change from the scheduled part of the track where the regional rail will stop"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "TrainView": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "string",
            "description": "The geographical latitude of the regional rail current location"
          },
          "lon": {
            "type": "string",
            "description": "The geographical longitude of the regional rail current location"
          },
          "trainno": {
            "type": "string",
            "format": "byte",
            "description": "Regional rail train number"
          },
          "service": {
            "type": "string",
            "format": "byte",
            "description": "Shows if the regional rail is an express or a local"
          },
          "dest": {
            "type": "string",
            "description": "Regional rail terminating station"
          },
          "currentstop": {
            "type": "string",
            "description": "Current stop of the transiting regional rail"
          },
          "nextstop": {
            "type": "string",
            "description": "The next regional rail station of the transiting regional rail"
          },
          "line": {
            "type": "string",
            "description": "Regional rail line name"
          },
          "consist": {
            "type": "string",
            "format": "byte",
            "description": "A list of passenger cars attached to the regional rail"
          },
          "heading": {
            "type": "number",
            "format": "double"
          },
          "late": {
            "type": "integer",
            "format": "int32",
            "description": "The current status of the transiting trains"
          },
          "SOURCE": {
            "type": "string",
            "description": "Regional rail originating station"
          },
          "TRACK": {
            "type": "string",
            "description": "The track where the regional rail is scheduled to arrive at a station"
          },
          "TRACK_CHANGE": {
            "type": "string",
            "description": "Shows if there is a change in track for the regional rail at a station"
          }
        }
      }
    },
    "NextToArrive": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "orig_train": {
            "type": "string",
            "format": "byte",
            "description": "Initial regional rail number of the train passing through the requested source station"
          },
          "orig_line": {
            "type": "string",
            "description": "Initial regional rail line where the requested source station is"
          },
          "orig_departure_time": {
            "type": "string",
            "description": "Departure time of the initial regional rail at the requested source station"
          },
          "orig_arrival_time": {
            "type": "string",
            "description": "Arrival time of the regional rail at the requested destination or the connecting station"
          },
          "orig_delay": {
            "type": "string",
            "format": "byte",
            "description": "Current status of the intial regional rail"
          },
          "term_train": {
            "type": "string",
            "description": "Regional rail number of the connecting train towards the requested destination"
          },
          "term_line": {
            "type": "string",
            "description": "Connecting regional rail line where the requested destination station is"
          },
          "term_depart_time": {
            "type": "string",
            "description": "Departure time of the connecting regional rail from the connecting station"
          },
          "term_arrival_time": {
            "type": "string",
            "description": "Arrival time of the connecting regional rail at the requested destination"
          },
          "Connection": {
            "type": "string",
            "description": "Connecting station name"
          },
          "term_delay": {
            "type": "string",
            "format": "byte",
            "description": "Current status of the connecting regional rail"
          },
          "isdirect": {
            "type": "boolean",
            "description": "Indicates if the journey is direct or not"
          }
        }
      }
    },
    "TransitView": {
      "type": "object",
      "properties": {
        "bus": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "lat": {
                "type": "string",
                "description": "The geographical latitude coodinate of the bus/trolley current location"
              },
              "lng": {
                "type": "string",
                "description": "The geographical longitude coordinate of the bus/trolley current location"
              },
              "label": {
                "type": "string",
                "description": "Septa bus/trolley vehicle number"
              },
              "trip": {
                "type": "string",
                "format": "byte",
                "description": "Unique trip id of the Septa bus/trolley"
              },
              "VehicleID": {
                "type": "string",
                "format": "byte",
                "description": "Septa bus/trolley vehicle number similar to label"
              },
              "BlockID": {
                "type": "string",
                "format": "byte",
                "description": "Unique identifier for blocks in a vehicle trip"
              },
              "Direction": {
                "type": "string",
                "format": "byte",
                "description": "Direction of the Septa bus/trolley"
              },
              "destination": {
                "type": "string",
                "description": "Destination stop of the Septa bus/trolley"
              },
              "heading": {
                "type": "string",
                "description": "Heading of the vehicle in degrees"
              },
              "late": {
                "type": "integer",
                "format": "int32",
                "description": "Current status of the transiting vehicle"
              },
              "next_stop_id": {
                "type": "string",
                "format": "byte",
                "description": "The next stop id of the transiting vehicle"
              },
              "next_stop_name": {
                "type": "string",
                "description": "The next stop name of the transiting vehicle"
              },
              "next_stop_sequence": {
                "type": "integer",
                "format": "int32",
                "description": "Sequence number of the next stop from GTFS of the transiting vehicle for a particular trip"
              },
              "estimated_seat_availability": {
                "type": "string",
                "description": "Status of seat availability of the transiting vehicle"
              },
              "Offset": {
                "type": "string",
                "format": "byte",
                "description": "Number of minutes since the current location of the transiting vehicle is updated"
              },
              "Offset_sec": {
                "type": "string",
                "format": "byte",
                "description": "Number of seconds since the current location of the transiting vehicle is updated"
              },
              "timestamp": {
                "type": "integer",
                "format": "int32",
                "description": "current time in unix timestamp format"
              }
            }
          }
        }
      }
    },
    "TransitViewAll": {
      "type": "object",
      "properties": {
        "routes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "*": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "lat": {
                      "type": "string",
                      "description": "The geographical latitude coodinate of the bus/trolley current location"
                    },
                    "lng": {
                      "type": "string",
                      "description": "The geographical longitude coordinate of the bus/trolley current location"
                    },
                    "label": {
                      "type": "string",
                      "format": "byte",
                      "description": "Septa bus/trolley vehicle number"
                    },
                    "VehicleID": {
                      "type": "string",
                      "format": "byte",
                      "description": "Septa bus/trolley vehicle number"
                    },
                    "BlockID": {
                      "type": "string",
                      "format": "byte",
                      "description": "Unique identifier for blocks in a vehicle trip"
                    },
                    "Direction": {
                      "type": "string",
                      "format": "byte",
                      "description": "Direction of the Septa bus/trolley"
                    },
                    "destination": {
                      "type": "string",
                      "description": "Destination stop of the Septa bus/trolley"
                    },
                    "Offset": {
                      "type": "string",
                      "format": "byte",
                      "description": "Number of minutes since the current location of the transiting vehicle is updated"
                    },
                    "heading": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Heading of the vehicle in degrees"
                    },
                    "late": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Current status of the transiting vehicle in minutes."
                    },
                    "original_late": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Current status of the transiting vehicle in minutes similar to the late field except the calculations are done using leagcy                        methods"
                    },
                    "Offset_sec": {
                      "type": "string",
                      "format": "byte",
                      "description": "Number of seconds since the current location of the transiting vehicle is updated"
                    },
                    "trip": {
                      "type": "string",
                      "format": "byte",
                      "description": "Unique trip id of the Septa bus/trolley"
                    },
                    "next_stop_id": {
                      "type": "string",
                      "format": "byte",
                      "description": "The next stop id of the transiting vehicle"
                    },
                    "next_stop_name": {
                      "type": "string",
                      "description": "The next stop name of the transiting vehicle"
                    },
                    "next_stop_sequence": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Sequence number of the next stop from GTFS of the transiting vehicle for a particular trip"
                    },
                    "estimated_seat_availability": {
                      "type": "string",
                      "description": "Status of seat availability of the transiting vehicle"
                    },
                    "timestamp": {
                      "type": "integer",
                      "format": "int32",
                      "description": "current time in unix timestamp format"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "BusDetours": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "route_id": {
            "type": "string",
            "description": "Vehicle route id"
          },
          "route_info": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "route_direction": {
                  "type": "string",
                  "format": "byte",
                  "description": "Shows which direction of the route the detour is active"
                },
                "reason": {
                  "type": "string",
                  "description": "Reason for detour"
                },
                "start_location": {
                  "type": "string",
                  "description": "Location where the detour starts"
                },
                "end_location": {
                  "type": "string",
                  "description": "Location where the detour ends"
                },
                "start_date_time": {
                  "type": "string",
                  "description": "Date and time when the route detour starts"
                },
                "end_date_time": {
                  "type": "string",
                  "description": "Date and time when the route detour ends"
                },
                "current_message": {
                  "type": "string",
                  "description": "message to customers (ex: details of alternate route to take)"
                }
              }
            }
          }
        }
      }
    },
    "Alerts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "route": {
            "type": "string",
            "description": "Bus/trolley route name"
          },
          "route_id": {
            "type": "string",
            "description": "Bus/Trolley route id"
          },
          "route_name": {
            "type": "string",
            "description": "Bus/trolley route name"
          },
          "sequence": {
            "type": "string",
            "format": "byte"
          },
          "mode": {
            "type": "string",
            "format": "byte",
            "description": "Mode of transportation"
          },
          "isadvisory": {
            "type": "string",
            "enum": [
              "Yes",
              "No"
            ],
            "description": "Shows if there is an advisory for the route"
          },
          "isdetour": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Shows if there is an active detour for the route"
          },
          "isalert": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Shows if there is an alert for the route"
          },
          "issuppend": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Shows if route is suspended"
          },
          "iselevator": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Shows if there is an elevator issue on any of the bus/trolley stations"
          },
          "issuspended": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Shows if the route is suspended"
          },
          "isstrike": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Determines if there are any strike alerts for the route"
          },
          "ismodifiedservice": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Determines if the bus/trolley service is modified"
          },
          "isdelays": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Determines if there are any delays for the route"
          },
          "isdiversion": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Determines if there are any diversions for the route"
          },
          "isdetouralert": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ]
          },
          "last_updated": {
            "type": "string",
            "description": "Time since the alert for the route was updated"
          },
          "isSnow": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Determines if there are any snow alerts for the route"
          },
          "description": {
            "type": "string",
            "description": "Detailed description of alert"
          },
          "alert": {
            "type": "string"
          },
          "advisory": {
            "type": "string",
            "description": "Advisory to customers during alerts"
          },
          "detour": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "location_start": {
                  "type": "string",
                  "description": "Location where the detour starts"
                },
                "location_end": {
                  "type": "string",
                  "description": "Location where the detour ends"
                },
                "start": {
                  "type": "string",
                  "description": "Date and time when the route detour starts"
                },
                "end": {
                  "type": "string",
                  "description": "Date and time when the route detour ends"
                },
                "message": {
                  "type": "string",
                  "description": "message to customers (ex: details of alternate route to take)"
                },
                "reason": {
                  "type": "string",
                  "description": "reason for detour"
                }
              }
            }
          },
          "elevator": {
            "type": "array",
            "items": {}
          }
        }
      }
    },
    "MessageAlerts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "route_id": {
            "type": "string",
            "description": "Bus/Trolley route id"
          },
          "route_name": {
            "type": "string",
            "description": "Bus/trolley route name"
          },
          "current_message": {
            "type": "string",
            "description": "Route alert message"
          },
          "advisory_id": {
            "type": "string",
            "format": "int32",
            "description": "Unique id for advisory"
          },
          "advisory_message": {
            "type": "string",
            "description": "Advisory to customers during alerts"
          },
          "detour_message": {
            "type": "string",
            "description": "message to customers (ex: details of alternate route to take)"
          },
          "detour_start_location": {
            "type": "string",
            "description": "Location where the detour starts"
          },
          "detour_start_date_time": {
            "type": "string",
            "description": "Date and time when the route detour starts"
          },
          "detour_end_date_time": {
            "type": "string",
            "description": "Date and time when the route detour ends"
          },
          "detour_reason": {
            "type": "string",
            "description": "reason for detour"
          },
          "last_updated": {
            "type": "string",
            "description": "Time since the alert for the route was updated"
          },
          "isSnow": {
            "type": "string",
            "enum": [
              "Y",
              "N"
            ],
            "description": "Determines if there are any snow alerts for the route"
          }
        }
      }
    },
    "ElevatorOutage": {
      "type": "object",
      "properties": {
        "meta": {
          "type": "object",
          "properties": {
            "elevators_out": {
              "type": "integer",
              "format": "int32",
              "description": "Number of elevators out of order"
            },
            "updated": {
              "type": "string",
              "description": "date and time the results were last updated"
            }
          }
        },
        "results": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "line": {
                "type": "string",
                "description": "Septa regional rail/trolley/bus lines"
              },
              "station": {
                "type": "string",
                "description": "Septa regional rail/trolley/bus station name"
              },
              "elevator": {
                "type": "string",
                "description": "Elevator description"
              },
              "message": {
                "type": "string",
                "description": "Advisory message for elevator outage"
              },
              "message_html": {
                "type": "string",
                "description": "Advisory message for elevator outage in html format"
              }
            }
          }
        }
      }
    },
    "TrainSchedule": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "station": {
            "type": "string",
            "description": "Stop names of the regional rail number passed as parameter"
          },
          "sched_tm": {
            "type": "string",
            "description": "Scheduled time of arrival for the regionall rail at the station"
          },
          "est_tm": {
            "type": "string",
            "description": "Estimated time of arrival for the regionall rail at the station"
          },
          "act_tm": {
            "type": "string",
            "description": "Actual time of arrival for the regionall rail at the station"
          }
        }
      }
    },
    "SMS": {
      "description": "SMS output",
      "type": "string"
    },
    "BusSchedule": {
      "type": "object",
      "properties": {
        "*": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "StopName": {
                "type": "string",
                "description": "Septa bus/trolley stop name"
              },
              "Route": {
                "type": "string",
                "description": "Septa bus/trolley route number"
              },
              "date": {
                "type": "string",
                "description": "Arrival time of Septa bus/trolley at the stop passed as parameter"
              },
              "day": {
                "type": "string",
                "maxLength": 3,
                "description": "Arrival day in three letter format of the Septa bus/trolley at the stop passed as parameter"
              },
              "Direction": {
                "type": "string",
                "enum": [
                  "0",
                  "1"
                ],
                "description": "The direction of the Septa bus/trolley. 0 for inbound and 1 for outbound"
              },
              "DateCalender": {
                "type": "string",
                "description": "Arrival date and time of the Septa bus/trolley at stop passed as parameter"
              },
              "DirectionDesc": {
                "type": "string",
                "description": "Septa bus/trolley destination"
              }
            }
          }
        }
      }
    },
    "Stops": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "lng": {
            "type": "string",
            "description": "Stop Longitude"
          },
          "lat": {
            "type": "string",
            "description": "Stop Latitude"
          },
          "stopid": {
            "type": "string",
            "format": "byte",
            "description": "Stop id"
          },
          "stopname": {
            "type": "string",
            "description": "Stop name"
          }
        }
      }
    },
    "Locations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "location_id": {
            "type": "string",
            "format": "byte",
            "description": "ID of the Septa resource"
          },
          "location_name": {
            "type": "string",
            "description": "Name of the Septa resource"
          },
          "location_lat": {
            "type": "string",
            "description": "Latitude of the Septa resource"
          },
          "location_lon": {
            "type": "string",
            "description": "Longitude of the Septa resource"
          },
          "distance": {
            "type": "string",
            "description": "Distance in miles between the resource and the location passed as parameter"
          },
          "loction_type": {
            "type": "string",
            "description": "Septa resource types (ex: Bus stops, regional rail stations)"
          },
          "location_data": {
            "type": "object",
            "properties": {
              "location_id": {
                "type": "string",
                "format": "byte",
                "description": "ID of the Septa resource"
              },
              "location_name": {
                "type": "string",
                "description": "Name of the Septa resource"
              },
              "startDate": {
                "type": "string"
              },
              "endDate": {
                "type": "string"
              },
              "address1": {
                "type": "string",
                "description": "Address of the Septa resource"
              },
              "address2": {
                "type": "string",
                "description": "Address of the Septa resource"
              },
              "city": {
                "type": "string",
                "description": "City where the Septa resource is situated"
              },
              "state": {
                "type": "string",
                "format": "byte",
                "maxLength": 2,
                "description": "State where the Septa resource is situated"
              },
              "zip": {
                "type": "string",
                "format": "byte",
                "maxLength": 5,
                "description": "Zipcode of the Septa resource is situated"
              },
              "hours": {
                "type": "string",
                "description": "Septa resource hours of operations"
              },
              "loc_name": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "description": "Show if the resource is active or closed down"
              },
              "phone": {
                "type": "string",
                "maxLength": 10,
                "description": "Location phome number of the Septa resource"
              }
            }
          }
        }
      }
    },
    "GtfsAlert": {
      "type": "object",
      "properties": {
        "header": {
          "type": "object",
          "properties": {
            "gtfs_realtime_version": {
              "type": "string",
              "description": "Version of speed specification."
            },
            "timestamp": {
              "type": "integer",
              "description": "The time where this dataset was generated on server for determining the sequence of alert feeds"
            },
            "incrementality": {
              "type": "string",
              "description": "Determines whether dataset is incremental or full"
            }
          }
        },
        "entity": {
          "type": "array",
          "description": "Multiple entities can be included in the feed",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the entity"
              },
              "alert": {
                "type": "object",
                "description": "Type of the entity",
                "properties": {
                  "informed_entity": {
                    "type": "array",
                    "description": "Selects which GTFS entities will be affected",
                    "items": {
                      "type": "object",
                      "properties": {
                        "route_id": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "cause": {
                    "type": "string",
                    "description": "cause of the alert - see gtfs-realtime.proto for valid values",
                    "enum": [
                      "UNKNOWN_CAUSE",
                      "OTHER_CAUSE",
                      "TECHNICAL_PROBLEM",
                      "STRIKE",
                      "DEMONSTRATION",
                      "ACCIDENT",
                      "HOLIDAY",
                      "WEATHER",
                      "MAINTENANCE",
                      "CONSTRUCTION",
                      "POLICE_ACTIVITY",
                      "MEDICAL_EMERGENCY"
                    ]
                  },
                  "effect": {
                    "type": "string",
                    "description": "effect of the alert - see gtfs-realtime.proto for valid values",
                    "enum": [
                      "NO_SERVICE",
                      "REDUCED_SERVICE",
                      "SIGNIFICANT_DELAYS",
                      "DETOUR",
                      "ADDITIONAL_SERVICE",
                      "MODIFIED_SERVICE",
                      "OTHER_EFFECT",
                      "UNKNOWN_EFFECT",
                      "STOP_MOVED"
                    ]
                  },
                  "url": {
                    "type": "object",
                    "description": "The given url provides additional information",
                    "properties": {
                      "translation": {
                        "type": "array",
                        "description": "multiple languages/translations supported",
                        "items": {
                          "type": "object",
                          "properties": {
                            "text": {
                              "type": "string",
                              "description": "page hosted outside of Google (at provider/agency, etc.)"
                            },
                            "language": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "header_text": {
                    "type": "object",
                    "description": "Header for the alert will be highlighted",
                    "properties": {
                      "translation": {
                        "type": "array",
                        "description": "multiple languages/translations supported",
                        "items": {
                          "type": "object",
                          "properties": {
                            "text": {
                              "type": "string"
                            },
                            "language": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "description_text": {
                    "type": "object",
                    "description": "Alert description. Additional info to the header text",
                    "properties": {
                      "translation": {
                        "type": "array",
                        "description": "multiple languages/translations supported",
                        "items": {
                          "type": "object",
                          "properties": {
                            "text": {
                              "type": "string"
                            },
                            "language": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "GtfsTrip": {
      "type": "object",
      "properties": {
        "header": {
          "type": "object",
          "properties": {
            "gtfs_realtime_version": {
              "type": "string",
              "description": "Version of speed specification."
            },
            "timestamp": {
              "type": "integer",
              "description": "The time where this dataset was generated on server for determining the sequence of alert feeds"
            },
            "incrementality": {
              "type": "string",
              "description": "Determines whether dataset is incremental or full"
            }
          }
        },
        "entity": {
          "type": "array",
          "description": "Multiple entities can be included in the feed",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "unique identifier for the entity"
              },
              "is_deleted": {
                "type": "boolean",
                "description": "Whether this entity is to be deleted."
              },
              "trip_update": {
                "type": "array",
                "description": "Data about the realtime departure delays of a trip.",
                "items": {
                  "type": "object",
                  "properties": {
                    "*": {
                      "type": "object",
                      "properties": {
                        "stop_time_update": {
                          "type": "object",
                          "description": "Updates to StopTimes for the trip",
                          "properties": {
                            "stop_sequence": {
                              "type": "integer",
                              "description": "Must be the same as in stop_times.txt in the corresponding GTFS feed"
                            },
                            "arrival": {
                              "type": "object",
                              "description": "If schedule_relationship is empty or SCHEDULED, either arrival or departure must be provided within a StopTimeUpdate                       ",
                              "properties": {
                                "time": {
                                  "type": "number",
                                  "description": "Event as absolute time. In POSIX time"
                                }
                              }
                            },
                            "departure": {
                              "type": "object",
                              "description": "If schedule_relationship is empty or SCHEDULED, either arrival or departure must be provided within a StopTimeUpdate                       ",
                              "properties": {
                                "time": {
                                  "type": "number",
                                  "description": "Event as absolute time. In POSIX time"
                                }
                              }
                            },
                            "stop_id": {
                              "type": "string",
                              "description": "Must be the same as in stops.txt in the corresponding GTFS feed."
                            },
                            "schedule_relationship": {
                              "type": "string",
                              "description": "The default relationship is SCHEDULED.",
                              "enum": [
                                "SCHEDULED",
                                "SKIPPED",
                                "NO_DATA"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "trip": {
                      "type": "object",
                      "properties": {
                        "trip_id": {
                          "type": "string",
                          "description": "The trip_id from the GTFS feed that this selector refers to."
                        },
                        "start_time": {
                          "type": "string",
                          "description": "The initially scheduled start time of this trip instance."
                        },
                        "start_date": {
                          "type": "string",
                          "description": "The start date of this trip instance in YYYYMMDD format."
                        },
                        "schedule_relationship": {
                          "type": "string",
                          "description": "The default relationship is SCHEDULED.",
                          "enum": [
                            "SCHEDULED",
                            "ADDED",
                            "UNSCHEDULED",
                            "CANCELED"
                          ]
                        },
                        "route_id": {
                          "type": "string",
                          "description": "The route_id from the GTFS feed that this selector refers to."
                        },
                        "direction_id": {
                          "type": "integer",
                          "description": "The direction_id from the GTFS feed trips.txt file, which indicates the direction of travel.",
                          "enum": [
                            0,
                            1
                          ]
                        }
                      }
                    },
                    "vehicle": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "Internal system identification of the vehicle."
                        }
                      }
                    },
                    "timestamp": {
                      "type": "integer",
                      "description": "Moment at which the vehicle's real-time progress was measured."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "GtfsVehicle": {
      "type": "object",
      "properties": {
        "header": {
          "type": "object",
          "properties": {
            "gtfs_realtime_version": {
              "type": "string",
              "description": "Version of speed specification."
            },
            "timestamp": {
              "type": "integer",
              "description": "The time where this dataset was generated on server for determining the sequence of alert feeds"
            },
            "incrementality": {
              "type": "string",
              "description": "Determines whether dataset is incremental or full"
            }
          }
        },
        "entity": {
          "type": "array",
          "description": "Multiple entities can be included in the feed",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "unique identifier for the entity"
              },
              "is_deleted": {
                "type": "boolean",
                "description": "Whether this entity is to be deleted."
              },
              "vehicle": {
                "type": "object",
                "description": "Realtime positioning information for a given vehicle.",
                "properties": {
                  "trip": {
                    "type": "object",
                    "description": "A descriptor that identifies a single instance of a GTFS trip.",
                    "properties": {
                      "trip_id": {
                        "type": "string",
                        "description": "The trip_id from the GTFS feed that this selector refers to."
                      },
                      "route_id": {
                        "type": "string",
                        "description": "The route_id from the GTFS feed that this selector refers to."
                      },
                      "start_date": {
                        "type": "string",
                        "description": "The start date of this trip instance in YYYYMMDD format."
                      }
                    }
                  },
                  "vehicle": {
                    "type": "object",
                    "description": "Identification information for the vehicle performing the trip.",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Internal system identification of the vehicle."
                      },
                      "label": {
                        "type": "string",
                        "description": "User visible label, i.e., something that must be shown to the passenger to help identify the correct vehicle."
                      }
                    }
                  },
                  "position": {
                    "type": "object",
                    "description": "A geographic position of a vehicle.",
                    "properties": {
                      "latitude": {
                        "type": "number",
                        "format": "float",
                        "description": "Degrees North, in the WGS-84 coordinate system."
                      },
                      "longitude": {
                        "type": "number",
                        "format": "float",
                        "description": "Degrees East, in the WGS-84 coordinate system."
                      },
                      "bearing": {
                        "type": "number",
                        "format": "float",
                        "description": "Bearing, in degrees, clockwise from True North, i.e., 0 is North and 90 is East."
                      }
                    }
                  },
                  "current_stop_sequence": {
                    "type": "integer",
                    "description": "The stop sequence index of the current stop."
                  },
                  "stop_id": {
                    "type": "string",
                    "description": "Identifies the current stop."
                  },
                  "current_status": {
                    "type": "string",
                    "description": "The exact status of the vehicle with respect to the current stop.",
                    "enum": [
                      "INCOMING_AT",
                      "STOPPED_AT",
                      "IN_TRANSIT_TO"
                    ]
                  },
                  "timestamp": {
                    "type": "integer",
                    "description": "Moment at which the vehicle's position was measured."
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
