{
  "swagger": "2.0",
  "info": {
    "version": "v1",
    "title": "Availtec.MyAvail.TIDS.RestAdapter"
  },
  "host": "realtimebjcta.availtec.com",
  "basePath": "/InfoPoint",
  "schemes": [
    "https"
  ],
  "paths": {
    "/rest/AgencyInfo/Get": {
      "get": {
        "tags": [
          "AgencyInfo"
        ],
        "summary": "Get a list of configured Agencies",
        "operationId": "AgencyInfo_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AgencyInfo"
              }
            }
          }
        }
      }
    },
    "/sms/AgencyInfo": {
      "get": {
        "tags": [
          "AgencyInfo"
        ],
        "summary": "Get a list of configured Agencies",
        "operationId": "AgencyInfo_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AgencyInfo"
              }
            }
          }
        }
      }
    },
    "/rest/Authentication/ChangePassword": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "change password for a given user",
        "operationId": "Authentication_ChangePassword",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "email is username",
            "required": true,
            "type": "string"
          },
          {
            "name": "oldPassword",
            "in": "query",
            "description": "old password",
            "required": true,
            "type": "string"
          },
          {
            "name": "newPassword",
            "in": "query",
            "description": "new password",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "/rest/Authentication/CreateUser": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "create a new user",
        "operationId": "Authentication_CreateUser",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "email is username",
            "required": true,
            "type": "string"
          },
          {
            "name": "password",
            "in": "query",
            "description": "password for new user",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/rest/Authentication/ForgotPasswordConfirmation": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "confirmation for a forgortten password attempt, call this with the toekn emailed to the user after they request a\r\npassword reset",
        "operationId": "Authentication_ForgotPasswordConfirmation",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "email is username",
            "required": true,
            "type": "string"
          },
          {
            "name": "code",
            "in": "query",
            "description": "reset code from the email sent to the user",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "format": "int32",
              "enum": [
                0,
                1,
                2,
                3,
                4
              ],
              "type": "integer"
            }
          }
        }
      }
    },
    "/rest/Authentication/ForgotPasswordRequest": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "request to recover a forgotten password.  causes email to be sent to the user with reset token to be used in call\r\nto ForgotPasswordConfirmation",
        "operationId": "Authentication_ForgotPasswordRequest",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "email is username",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "format": "int32",
              "enum": [
                0,
                1,
                2,
                3,
                4
              ],
              "type": "integer"
            }
          }
        }
      }
    },
    "/rest/Authentication/GetAuthToken": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "the token is in the header as \"token:X\" to be used in all authenticated calls from here on",
        "operationId": "Authentication_GetAuthToken",
        "consumes": [],
        "produces": [],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/rest/Authentication/LogOff": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "LogOff the current user based on the auth token in the header",
        "operationId": "Authentication_LogOff",
        "consumes": [],
        "produces": [],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/rest/Authentication/TestHeaders": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Test the auth headers to see if they are valid and can authenticate",
        "operationId": "Authentication_TestHeaders",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/rest/Authentication/TestAuthenticationAttribute": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Call this to test the auth attribute",
        "operationId": "Authentication_TestAuthenticationAttribute",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/sms/Authentication": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "the token is in the header as \"token:X\" to be used in all authenticated calls from here on",
        "operationId": "Authentication_GetAuthToken",
        "consumes": [],
        "produces": [],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "change password for a given user",
        "operationId": "Authentication_ChangePassword",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "email is username",
            "required": true,
            "type": "string"
          },
          {
            "name": "oldPassword",
            "in": "query",
            "description": "old password",
            "required": true,
            "type": "string"
          },
          {
            "name": "newPassword",
            "in": "query",
            "description": "new password",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "/rest/Categories/GetAllCategories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Get all categories",
        "operationId": "Categories_GetAllCategories",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Category"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Categories"
        ],
        "summary": "Get all categories",
        "operationId": "Categories_GetAllCategories",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Category"
              }
            }
          }
        }
      }
    },
    "/sms/Categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Get all categories",
        "operationId": "Categories_GetAllCategories",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Category"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Categories"
        ],
        "summary": "Get all categories",
        "operationId": "Categories_GetAllCategories",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Category"
              }
            }
          }
        }
      }
    },
    "/rest/ErrorTest/Get/{id}": {
      "get": {
        "tags": [
          "ErrorTest"
        ],
        "summary": "Get any type of HTTP Error by sending the Http Status Code",
        "operationId": "ErrorTest_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "HTTP Error Number for the error to return",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/sms/ErrorTest/{id}": {
      "get": {
        "tags": [
          "ErrorTest"
        ],
        "summary": "Get any type of HTTP Error by sending the Http Status Code",
        "operationId": "ErrorTest_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "HTTP Error Number for the error to return",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/rest/Feedback/Put": {
      "put": {
        "tags": [
          "Feedback"
        ],
        "summary": "The put handler",
        "operationId": "Feedback_Put",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "feedback",
            "in": "body",
            "description": "The feedback data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Feedback"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/sms/Feedback": {
      "put": {
        "tags": [
          "Feedback"
        ],
        "summary": "The put handler",
        "operationId": "Feedback_Put",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "feedback",
            "in": "body",
            "description": "The feedback data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Feedback"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/rest/HeadwaySchedules/Get/{id}": {
      "get": {
        "tags": [
          "HeadwaySchedules"
        ],
        "summary": "The get.",
        "operationId": "HeadwaySchedules_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/HeadwaySchedule"
            }
          }
        }
      }
    },
    "/rest/HeadwaySchedules/GetAllHeadwaySchedules": {
      "get": {
        "tags": [
          "HeadwaySchedules"
        ],
        "summary": "The get all headway schedules.",
        "operationId": "HeadwaySchedules_GetAllHeadwaySchedules",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/HeadwaySchedule"
              }
            }
          }
        }
      }
    },
    "/sms/HeadwaySchedules/{id}": {
      "get": {
        "tags": [
          "HeadwaySchedules"
        ],
        "summary": "The get.",
        "operationId": "HeadwaySchedules_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/HeadwaySchedule"
            }
          }
        }
      }
    },
    "/sms/HeadwaySchedules": {
      "get": {
        "tags": [
          "HeadwaySchedules"
        ],
        "summary": "The get all headway schedules.",
        "operationId": "HeadwaySchedules_GetAllHeadwaySchedules",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/HeadwaySchedule"
              }
            }
          }
        }
      }
    },
    "/rest/PSN/GetTransactionsByPSN": {
      "get": {
        "tags": [
          "PSN"
        ],
        "summary": "Return the last x transactions for the given PSN",
        "operationId": "PSN_GetTransactionsByPSN",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "psn",
            "in": "query",
            "description": "PrintedSerialNumber to lookup",
            "required": true,
            "type": "string"
          },
          {
            "name": "numberOfTransactions",
            "in": "query",
            "description": "The number of transactions to return.\r\nKeyword \"all\" returns all transactions for the given PSN",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PSN"
              }
            }
          }
        }
      }
    },
    "/sms/PSN": {
      "get": {
        "tags": [
          "PSN"
        ],
        "summary": "Return the last x transactions for the given PSN",
        "operationId": "PSN_GetTransactionsByPSN",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "psn",
            "in": "query",
            "description": "PrintedSerialNumber to lookup",
            "required": true,
            "type": "string"
          },
          {
            "name": "numberOfTransactions",
            "in": "query",
            "description": "The number of transactions to return.\r\nKeyword \"all\" returns all transactions for the given PSN",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PSN"
              }
            }
          }
        }
      }
    },
    "/rest/PublicMessages/Get/{id}": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Get Public Message by ID",
        "operationId": "PublicMessages_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Public Message id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PublicMessage"
            }
          }
        }
      }
    },
    "/rest/PublicMessages/GetActiveMessagesForSignageById": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Return a list of Messages meant for display on a specific sign",
        "operationId": "PublicMessages_GetActiveMessagesForSignageById",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "signId",
            "in": "query",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignagePublicMessage"
              }
            }
          }
        }
      }
    },
    "/rest/PublicMessages/GetActiveMessagesForSignageByMAC": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Return a list of Messages meant for display on a specific sign",
        "operationId": "PublicMessages_GetActiveMessagesForSignageByMAC",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "macAddress",
            "in": "query",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignagePublicMessage"
              }
            }
          }
        }
      }
    },
    "/rest/PublicMessages/GetAllMessages": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Get all messages.",
        "operationId": "PublicMessages_GetAllMessages",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PublicMessage"
              }
            }
          }
        }
      }
    },
    "/rest/PublicMessages/GetCurrentMessages": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Get current messages.",
        "operationId": "PublicMessages_GetCurrentMessages",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PublicMessage"
              }
            }
          }
        }
      }
    },
    "/rest/PublicMessages/GetCurrentMessagesFormatted": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Get current messages with the formatted message.",
        "operationId": "PublicMessages_GetCurrentMessagesFormatted",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PublicMessageFormatted"
              }
            }
          }
        }
      }
    },
    "/rest/PublicMessages/GetCurrentMessagesHashCode": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Get a hash code for the public message collection to determine if there are any changes.",
        "operationId": "PublicMessages_GetCurrentMessagesHashCode",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/sms/PublicMessages/{id}": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Get Public Message by ID",
        "operationId": "PublicMessages_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Public Message id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PublicMessage"
            }
          }
        }
      }
    },
    "/sms/PublicMessages": {
      "get": {
        "tags": [
          "PublicMessages"
        ],
        "summary": "Return a list of Messages meant for display on a specific sign",
        "operationId": "PublicMessages_GetActiveMessagesForSignageById",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "signId",
            "in": "query",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignagePublicMessage"
              }
            }
          }
        }
      }
    },
    "/rest/RouteDetails/Get/{id}": {
      "get": {
        "tags": [
          "RouteDetails"
        ],
        "summary": "Get Stops on a Route",
        "operationId": "RouteDetails_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Route id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Route"
            }
          }
        }
      }
    },
    "/rest/RouteDetails/GetAllRouteDetails": {
      "get": {
        "tags": [
          "RouteDetails"
        ],
        "summary": "Get all route details.",
        "operationId": "RouteDetails_GetAllRouteDetails",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Route"
              }
            }
          }
        }
      }
    },
    "/rest/RouteDetails/GetDirectionsByRouteID/{id}": {
      "get": {
        "tags": [
          "RouteDetails"
        ],
        "summary": "Gets the directions by route ID.",
        "operationId": "RouteDetails_GetDirectionsByRouteID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The route id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Direction"
              }
            }
          }
        }
      }
    },
    "/rest/RouteDetails/GetStopsForRouteDirection": {
      "get": {
        "tags": [
          "RouteDetails"
        ],
        "summary": "Gets the stops for route direction.",
        "operationId": "RouteDetails_GetStopsForRouteDirection",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeId",
            "in": "query",
            "description": "The route id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction.",
            "required": true,
            "type": "string"
          },
          {
            "name": "timepointsOnly",
            "in": "query",
            "description": "true if only timepoint stops should be returned",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      }
    },
    "/sms/RouteDetails": {
      "get": {
        "tags": [
          "RouteDetails"
        ],
        "summary": "Get all route details.",
        "operationId": "RouteDetails_GetAllRouteDetails",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Route"
              }
            }
          }
        }
      }
    },
    "/rest/Routes/Get/{id}": {
      "get": {
        "tags": [
          "Routes"
        ],
        "summary": "Get Route by ID",
        "operationId": "Routes_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Route"
            }
          }
        }
      }
    },
    "/rest/Routes/GetAllRoutes": {
      "get": {
        "tags": [
          "Routes"
        ],
        "summary": "Get all routes",
        "operationId": "Routes_GetAllRoutes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Route"
              }
            }
          }
        }
      }
    },
    "/rest/Routes/GetVisibleRoutes": {
      "get": {
        "tags": [
          "Routes"
        ],
        "summary": "Get visible routes.",
        "operationId": "Routes_GetVisibleRoutes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Route"
              }
            }
          }
        }
      }
    },
    "/sms/Routes/{id}": {
      "get": {
        "tags": [
          "Routes"
        ],
        "summary": "Get Route by ID",
        "operationId": "Routes_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Route"
            }
          }
        }
      }
    },
    "/rest/SignageConfig/GetAllSignConfigs": {
      "get": {
        "tags": [
          "SignageConfig"
        ],
        "summary": "Get all sign configs",
        "operationId": "SignageConfig_GetAllSignConfigs",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignageConfig"
              }
            }
          }
        }
      }
    },
    "/rest/SignageConfig/GetSignConfigById/{id}": {
      "get": {
        "tags": [
          "SignageConfig"
        ],
        "summary": "Get sign config.",
        "operationId": "SignageConfig_GetSignConfigById",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the sign.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/SignageConfig"
            }
          }
        }
      }
    },
    "/rest/SignageConfig/GetSignConfigByMAC/{id}": {
      "get": {
        "tags": [
          "SignageConfig"
        ],
        "summary": "Get sign config.",
        "operationId": "SignageConfig_GetSignConfigByMAC",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/SignageConfig"
            }
          }
        }
      }
    },
    "/sms/SignageConfig": {
      "get": {
        "tags": [
          "SignageConfig"
        ],
        "summary": "Get all sign configs",
        "operationId": "SignageConfig_GetAllSignConfigs",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignageConfig"
              }
            }
          }
        }
      }
    },
    "/rest/SignageStopDepartures/GetAllSignageDepartures": {
      "get": {
        "tags": [
          "SignageStopDepartures"
        ],
        "summary": "Get all signage departures",
        "operationId": "SignageStopDepartures_GetAllSignageDepartures",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignageStopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/SignageStopDepartures/GetSignageDeparturesByMac": {
      "get": {
        "tags": [
          "SignageStopDepartures"
        ],
        "summary": "Get all signage departures for a specific sign MAC address. MAC address is a parameter from avl.SignAttributes",
        "operationId": "SignageStopDepartures_GetSignageDeparturesByMac",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "macAddress",
            "in": "query",
            "description": "The MAC address of the sign",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignageStopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/SignageStopDepartures/GetSignageDeparturesBySignId": {
      "get": {
        "tags": [
          "SignageStopDepartures"
        ],
        "summary": "Get all signage departures for a specific sign id. SignId from avl.SignInformation",
        "operationId": "SignageStopDepartures_GetSignageDeparturesBySignId",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "signId",
            "in": "query",
            "description": "The sign id from avl.SignInformation.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignageStopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/SignageStopDepartures/GetSignageDeparturesByStopId": {
      "get": {
        "tags": [
          "SignageStopDepartures"
        ],
        "summary": "Get all signage departures for a specific stop id",
        "operationId": "SignageStopDepartures_GetSignageDeparturesByStopId",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "stopId",
            "in": "query",
            "description": "The stop id to use as the filter.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignageStopDeparture"
              }
            }
          }
        }
      }
    },
    "/sms/SignageStopDepartures": {
      "get": {
        "tags": [
          "SignageStopDepartures"
        ],
        "summary": "Get all signage departures",
        "operationId": "SignageStopDepartures_GetAllSignageDepartures",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SignageStopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/StaticData/GetAllStaticData": {
      "get": {
        "tags": [
          "StaticData"
        ],
        "summary": "The get all static data.",
        "operationId": "StaticData_GetAllStaticData",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Route"
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/sms/StaticData": {
      "get": {
        "tags": [
          "StaticData"
        ],
        "summary": "The get all static data.",
        "operationId": "StaticData_GetAllStaticData",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Route"
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/rest/StopDepartures/Get/{id}": {
      "get": {
        "tags": [
          "StopDepartures"
        ],
        "summary": "Get by ID, but this may match multiple StopDepartures, so return a collection",
        "operationId": "StopDepartures_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Stop ID for which to get Stop Departures",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/StopDepartures/GetAllStopDepartures": {
      "get": {
        "tags": [
          "StopDepartures"
        ],
        "summary": "Get all stop departures",
        "operationId": "StopDepartures_GetAllStopDepartures",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/StopDepartures/GetAllStopDeparturesWithPastDepartures": {
      "get": {
        "tags": [
          "StopDepartures"
        ],
        "summary": "Get all stop departures including past departures",
        "operationId": "StopDepartures_GetAllStopDeparturesWithPastDepartures",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/StopDepartures/GetPast/{id}": {
      "get": {
        "tags": [
          "StopDepartures"
        ],
        "summary": "Get by ID, but this may match multiple StopDepartures, so return a collection.  This inlcudes stops with ADT",
        "operationId": "StopDepartures_GetPast",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Stop ID for which to get Stop Departures",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StopDeparture"
              }
            }
          }
        }
      }
    },
    "/rest/StopInfo/GetStopInfo": {
      "get": {
        "tags": [
          "StopInfo"
        ],
        "operationId": "StopInfo_GetStopInfo",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "text",
            "in": "query",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/rest/StopInfo/Post": {
      "post": {
        "tags": [
          "StopInfo"
        ],
        "operationId": "StopInfo_Post",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "sms",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Sms"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/sms/StopInfo": {
      "get": {
        "tags": [
          "StopInfo"
        ],
        "operationId": "StopInfo_GetStopInfo",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "text",
            "in": "query",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      },
      "post": {
        "tags": [
          "StopInfo"
        ],
        "operationId": "StopInfo_Post",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "sms",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Sms"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/rest/Stops/Get/{id}": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Get Stop by ID",
        "operationId": "Stops_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Stop ID",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Stop"
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Get Stop by ID",
        "operationId": "Stops_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Stop ID",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Stop"
            }
          }
        }
      }
    },
    "/rest/Stops/GetAllStops": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Get all Stops",
        "operationId": "Stops_GetAllStops",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Get all Stops",
        "operationId": "Stops_GetAllStops",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      }
    },
    "/rest/Stops/GetAllStopsForRouteDirections": {
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Get all stops for route directions",
        "operationId": "Stops_GetAllStopsForRouteDirections",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeDirections",
            "in": "body",
            "description": "Collection of Route Direction Objects",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RouteDirections"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      }
    },
    "/rest/Stops/GetAllStopsForRoutes": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Get all stops for routes",
        "operationId": "Stops_GetAllStopsForRoutes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeIDs",
            "in": "query",
            "description": "IEnumerable of Route IDs",
            "required": true,
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "collectionFormat": "multi"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Get all stops for routes",
        "operationId": "Stops_GetAllStopsForRoutes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeIDs",
            "in": "query",
            "description": "IEnumerable of Route IDs",
            "required": true,
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "collectionFormat": "multi"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      }
    },
    "/rest/Stops/Nearest": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Gets nearests stops.",
        "operationId": "Stops_Nearest",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "latitude",
            "in": "query",
            "description": "The latitude.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "longitude",
            "in": "query",
            "description": "The longitude.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "routeId",
            "in": "query",
            "description": "The route identifier.",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "take",
            "in": "query",
            "description": "The take.",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Gets nearests stops.",
        "operationId": "Stops_Nearest",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "latitude",
            "in": "query",
            "description": "The latitude.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "longitude",
            "in": "query",
            "description": "The longitude.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "routeId",
            "in": "query",
            "description": "The route identifier.",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "take",
            "in": "query",
            "description": "The take.",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      }
    },
    "/rest/Stops/NearestStop": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Gets the nearest stop.",
        "operationId": "Stops_NearestStop",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "latitude",
            "in": "query",
            "description": "The latitude.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "longitude",
            "in": "query",
            "description": "The longitude.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "routeId",
            "in": "query",
            "description": "The route identifier.",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Stop"
            }
          }
        }
      }
    },
    "/rest/Stops/Search": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Search Stops",
        "operationId": "Stops_Search",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "String search query",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Search Stops",
        "operationId": "Stops_Search",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "String search query",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      }
    },
    "/sms/Stops/{id}": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Get Stop by ID",
        "operationId": "Stops_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Stop ID",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Stop"
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Get Stop by ID",
        "operationId": "Stops_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Stop ID",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Stop"
            }
          }
        }
      }
    },
    "/sms/Stops": {
      "get": {
        "tags": [
          "Stops"
        ],
        "summary": "Get all Stops",
        "operationId": "Stops_GetAllStops",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stops"
        ],
        "summary": "Get all stops for routes",
        "operationId": "Stops_GetAllStopsForRoutes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeIDs",
            "in": "query",
            "description": "IEnumerable of Route IDs",
            "required": true,
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "collectionFormat": "multi"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Stop"
              }
            }
          }
        }
      }
    },
    "/rest/TransitAuthorityConfig/Get": {
      "get": {
        "tags": [
          "TransitAuthorityConfig"
        ],
        "summary": "Get all TransitAuthorityConfig",
        "operationId": "TransitAuthorityConfig_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TransitAuthorityConfig"
            }
          }
        }
      }
    },
    "/sms/TransitAuthorityConfig": {
      "get": {
        "tags": [
          "TransitAuthorityConfig"
        ],
        "summary": "Get all TransitAuthorityConfig",
        "operationId": "TransitAuthorityConfig_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TransitAuthorityConfig"
            }
          }
        }
      }
    },
    "/rest/Vehicles/Get/{id}": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get VehicleLocation object by ID",
        "operationId": "Vehicles_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/VehicleLocation"
            }
          }
        }
      }
    },
    "/rest/Vehicles/GetAllVehicles": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get all vehicles.",
        "operationId": "Vehicles_GetAllVehicles",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VehicleLocation"
              }
            }
          }
        }
      }
    },
    "/rest/Vehicles/GetAllVehiclesForRoute": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get all vehicles for route.",
        "operationId": "Vehicles_GetAllVehiclesForRoute",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeID",
            "in": "query",
            "description": "The route id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VehicleLocation"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get all vehicles for route.",
        "operationId": "Vehicles_GetAllVehiclesForRoute",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeID",
            "in": "query",
            "description": "The route id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VehicleLocation"
              }
            }
          }
        }
      }
    },
    "/rest/Vehicles/GetAllVehiclesForRoutes": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get all vehicles for a collection of routes",
        "operationId": "Vehicles_GetAllVehiclesForRoutes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeIDs",
            "in": "query",
            "description": "Collection of Route IDs",
            "required": true,
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "collectionFormat": "multi"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VehicleLocation"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get all vehicles for a collection of routes",
        "operationId": "Vehicles_GetAllVehiclesForRoutes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeIDs",
            "in": "query",
            "description": "Collection of Route IDs",
            "required": true,
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "collectionFormat": "multi"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VehicleLocation"
              }
            }
          }
        }
      }
    },
    "/sms/Vehicles/{id}": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get VehicleLocation object by ID",
        "operationId": "Vehicles_Get",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/VehicleLocation"
            }
          }
        }
      }
    },
    "/sms/Vehicles": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get all vehicles.",
        "operationId": "Vehicles_GetAllVehicles",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VehicleLocation"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Vehicles"
        ],
        "summary": "Get all vehicles for route.",
        "operationId": "Vehicles_GetAllVehiclesForRoute",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "routeID",
            "in": "query",
            "description": "The route id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VehicleLocation"
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AgencyInfo": {
      "type": "object",
      "properties": {
        "ActiveScheduleName": {
          "type": "string"
        },
        "ActiveScheduleVersionRecordId": {
          "format": "int32",
          "type": "integer"
        },
        "GtfsAgencyId": {
          "format": "int32",
          "type": "integer"
        },
        "GtfsAgencyName": {
          "type": "string"
        },
        "ServerId": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "Category": {
      "type": "object",
      "properties": {
        "CategoryId": {
          "format": "int32",
          "type": "integer"
        },
        "ReportLabel": {
          "type": "string"
        }
      }
    },
    "Feedback": {
      "required": [
        "Comment",
        "Email"
      ],
      "type": "object",
      "properties": {
        "Comment": {
          "maxLength": 512,
          "minLength": 5,
          "type": "string"
        },
        "Email": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "SentOn": {
          "format": "date-time",
          "type": "string"
        },
        "UserID": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "HeadwaySchedule": {
      "type": "object",
      "properties": {
        "EndTime": {
          "format": "date-time",
          "type": "string"
        },
        "HeadwayInterval": {
          "format": "int32",
          "type": "integer"
        },
        "InternalSignDescription": {
          "type": "string"
        },
        "IVRServiceDescription": {
          "type": "string"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "ScheduledHeadwayInterval": {
          "format": "int32",
          "type": "integer"
        },
        "ServiceDescription": {
          "type": "string"
        },
        "StartTime": {
          "format": "date-time",
          "type": "string"
        },
        "TripId": {
          "format": "int32",
          "type": "integer"
        },
        "TripLabel": {
          "type": "string"
        }
      }
    },
    "PSN": {
      "type": "object",
      "properties": {
        "Blacklist": {
          "type": "boolean"
        },
        "CardExpireDate": {
          "format": "date-time",
          "type": "string"
        },
        "CustomerId": {
          "format": "int64",
          "type": "integer"
        },
        "ESN": {
          "format": "int64",
          "type": "integer"
        },
        "ExpirationDate": {
          "format": "date-time",
          "type": "string"
        },
        "FareName": {
          "type": "string"
        },
        "IssuedOn": {
          "format": "date-time",
          "type": "string"
        },
        "MdcId": {
          "format": "int32",
          "type": "integer"
        },
        "Pass1EndDate": {
          "format": "date-time",
          "type": "string"
        },
        "Pass1FareName": {
          "type": "string"
        },
        "Pass1FareRecordId": {
          "format": "int32",
          "type": "integer"
        },
        "Pass1StartDate": {
          "format": "date-time",
          "type": "string"
        },
        "Pass1Type": {
          "format": "int32",
          "type": "integer"
        },
        "Pass1ValidDayCount": {
          "format": "int32",
          "type": "integer"
        },
        "Pass2EndDate": {
          "format": "date-time",
          "type": "string"
        },
        "Pass2FareName": {
          "type": "string"
        },
        "Pass2FareRecordId": {
          "format": "int32",
          "type": "integer"
        },
        "Pass2StartDate": {
          "format": "date-time",
          "type": "string"
        },
        "Pass2Type": {
          "format": "int32",
          "type": "integer"
        },
        "Pass2ValidDayCount": {
          "format": "int32",
          "type": "integer"
        },
        "PersonalizedOn": {
          "format": "date-time",
          "type": "string"
        },
        "PrintedOn": {
          "format": "date-time",
          "type": "string"
        },
        "PrintedSerialNumber": {
          "type": "string"
        },
        "PursePostBalance": {
          "format": "double",
          "type": "number"
        },
        "PursePreviousBalance": {
          "format": "double",
          "type": "number"
        },
        "PurseTransactionAmount": {
          "format": "double",
          "type": "number"
        },
        "RecId": {
          "format": "int64",
          "type": "integer"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "RouteName": {
          "type": "string"
        },
        "RunId": {
          "format": "int32",
          "type": "integer"
        },
        "RunName": {
          "type": "string"
        },
        "ServerTime": {
          "format": "date-time",
          "type": "string"
        },
        "StopId": {
          "format": "int32",
          "type": "integer"
        },
        "StopName": {
          "type": "string"
        },
        "TokenFareName": {
          "type": "string"
        },
        "TokenFareRecordId": {
          "format": "int32",
          "type": "integer"
        },
        "TokenPostBalance": {
          "format": "float",
          "type": "number"
        },
        "TokenPreBalance": {
          "format": "float",
          "type": "number"
        },
        "TokenType": {
          "format": "int32",
          "type": "integer"
        },
        "TokenValidityEndDate": {
          "format": "date-time",
          "type": "string"
        },
        "TransactionResult": {
          "format": "int32",
          "type": "integer"
        },
        "TransactionTypeRecordId": {
          "format": "int32",
          "type": "integer"
        },
        "TripId": {
          "format": "int32",
          "type": "integer"
        },
        "Vehicle": {
          "type": "string"
        },
        "VehicleTime": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "PublicMessage": {
      "type": "object",
      "properties": {
        "Cause": {
          "format": "int32",
          "enum": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12
          ],
          "type": "integer"
        },
        "CauseReportLabel": {
          "type": "string"
        },
        "Header": {
          "type": "string"
        },
        "ChannelMessages": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ChannelMessage"
          }
        },
        "DaysOfWeek": {
          "format": "int32",
          "enum": [
            1,
            2,
            4,
            8,
            16,
            32,
            64
          ],
          "type": "integer"
        },
        "Effect": {
          "format": "int32",
          "enum": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10
          ],
          "type": "integer"
        },
        "EffectReportLabel": {
          "type": "string"
        },
        "FromDate": {
          "format": "date-time",
          "type": "string"
        },
        "FromTime": {
          "format": "date-time",
          "type": "string"
        },
        "Message": {
          "type": "string"
        },
        "MessageId": {
          "format": "int32",
          "type": "integer"
        },
        "MessageTranslations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TranslatedText"
          }
        },
        "Priority": {
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            -1
          ],
          "type": "integer"
        },
        "PublicAccess": {
          "format": "int32",
          "type": "integer"
        },
        "Published": {
          "type": "boolean"
        },
        "Routes": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          }
        },
        "Signs": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          }
        },
        "ToDate": {
          "format": "date-time",
          "type": "string"
        },
        "ToTime": {
          "format": "date-time",
          "type": "string"
        },
        "URL": {
          "type": "string"
        },
        "Detour_Id": {
          "format": "int32",
          "type": "integer"
        },
        "SharedMessageKey": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "IsPrimaryRecord": {
          "type": "boolean"
        }
      }
    },
    "ChannelMessage": {
      "type": "object",
      "properties": {
        "ChannelId": {
          "format": "int32",
          "type": "integer"
        },
        "ChannelMessageTranslations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ChannelMessageTranslation"
          }
        },
        "Message": {
          "type": "string"
        }
      }
    },
    "TranslatedText": {
      "type": "object",
      "properties": {
        "Lang": {
          "type": "string"
        },
        "Text": {
          "type": "string"
        },
        "TextFormatted": {
          "type": "string"
        }
      }
    },
    "ChannelMessageTranslation": {
      "type": "object",
      "properties": {
        "LanguageId": {
          "type": "string"
        },
        "TranslatedText": {
          "type": "string"
        }
      }
    },
    "SignagePublicMessage": {
      "type": "object",
      "properties": {
        "Cause": {
          "format": "int32",
          "type": "integer"
        },
        "CauseReportLabel": {
          "type": "string"
        },
        "DaysOfWeek": {
          "format": "int32",
          "enum": [
            1,
            2,
            4,
            8,
            16,
            32,
            64
          ],
          "type": "integer"
        },
        "Effect": {
          "format": "int32",
          "type": "integer"
        },
        "EffectReportLabel": {
          "type": "string"
        },
        "FromDate": {
          "format": "date-time",
          "type": "string"
        },
        "FromTime": {
          "format": "date-time",
          "type": "string"
        },
        "Message": {
          "type": "string"
        },
        "MessageId": {
          "format": "int32",
          "type": "integer"
        },
        "MessageTranslations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TranslatedText"
          }
        },
        "Priority": {
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            -1
          ],
          "type": "integer"
        },
        "Published": {
          "type": "boolean"
        },
        "ToDate": {
          "format": "date-time",
          "type": "string"
        },
        "ToTime": {
          "format": "date-time",
          "type": "string"
        },
        "URL": {
          "type": "string"
        }
      }
    },
    "PublicMessageFormatted": {
      "type": "object",
      "properties": {
        "FromDateTime": {
          "format": "date-time",
          "type": "string"
        },
        "ToDateTime": {
          "format": "date-time",
          "type": "string"
        },
        "MessageFormatted": {
          "type": "string"
        },
        "MessageId": {
          "format": "int32",
          "type": "integer"
        },
        "Title": {
          "type": "string"
        },
        "Priority": {
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            -1
          ],
          "type": "integer"
        },
        "Routes": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          }
        }
      }
    },
    "Route": {
      "type": "object",
      "properties": {
        "Color": {
          "type": "string"
        },
        "Directions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Direction"
          }
        },
        "GoogleDescription": {
          "type": "string"
        },
        "Group": {
          "type": "string"
        },
        "IncludeInGoogle": {
          "type": "boolean"
        },
        "IsHeadway": {
          "type": "boolean"
        },
        "IsHeadwayMonitored": {
          "type": "boolean"
        },
        "IsVisible": {
          "type": "boolean"
        },
        "IvrDescription": {
          "type": "string"
        },
        "LongName": {
          "type": "string"
        },
        "Messages": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PublicMessage"
          }
        },
        "RouteAbbreviation": {
          "type": "string"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "RouteRecordId": {
          "format": "int32",
          "type": "integer"
        },
        "RouteStops": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RouteStop"
          }
        },
        "RouteTraceFilename": {
          "type": "string"
        },
        "RouteTraceHash64": {
          "type": "string"
        },
        "ShortName": {
          "type": "string"
        },
        "SortOrder": {
          "format": "int32",
          "type": "integer"
        },
        "Stops": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Stop"
          }
        },
        "TextColor": {
          "type": "string"
        },
        "Vehicles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VehicleLocation"
          }
        },
        "DetourActiveMessageCount": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "Direction": {
      "type": "object",
      "properties": {
        "Dir": {
          "type": "string"
        },
        "DirectionDesc": {
          "type": "string"
        },
        "DirectionIconFileName": {
          "type": "string"
        }
      }
    },
    "RouteStop": {
      "type": "object",
      "properties": {
        "Direction": {
          "type": "string"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "SortOrder": {
          "format": "int32",
          "type": "integer"
        },
        "StopId": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "Stop": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "string"
        },
        "IsTimePoint": {
          "type": "boolean"
        },
        "Latitude": {
          "format": "double",
          "type": "number"
        },
        "Longitude": {
          "format": "double",
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "StopId": {
          "format": "int32",
          "type": "integer"
        },
        "StopRecordId": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "VehicleLocation": {
      "type": "object",
      "properties": {
        "BlockFareboxId": {
          "format": "int32",
          "type": "integer"
        },
        "CommStatus": {
          "type": "string"
        },
        "Destination": {
          "type": "string"
        },
        "Deviation": {
          "format": "int32",
          "type": "integer"
        },
        "Direction": {
          "type": "string"
        },
        "DirectionLong": {
          "type": "string"
        },
        "DisplayStatus": {
          "type": "string"
        },
        "StopId": {
          "format": "int32",
          "type": "integer"
        },
        "CurrentStatus": {
          "type": "string"
        },
        "DriverName": {
          "type": "string"
        },
        "DriverLastName": {
          "type": "string"
        },
        "DriverFirstName": {
          "type": "string"
        },
        "DriverFareboxId": {
          "format": "int32",
          "type": "integer"
        },
        "VehicleFareboxId": {
          "format": "int32",
          "type": "integer"
        },
        "GPSStatus": {
          "format": "int32",
          "type": "integer"
        },
        "Heading": {
          "format": "int32",
          "type": "integer"
        },
        "LastStop": {
          "type": "string"
        },
        "LastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "Latitude": {
          "format": "double",
          "type": "number"
        },
        "Longitude": {
          "format": "double",
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "OccupancyStatus": {
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6
          ],
          "type": "integer"
        },
        "OnBoard": {
          "format": "int32",
          "type": "integer"
        },
        "OpStatus": {
          "type": "string"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "RunId": {
          "format": "int32",
          "type": "integer"
        },
        "Speed": {
          "format": "int32",
          "type": "integer"
        },
        "TripId": {
          "format": "int32",
          "type": "integer"
        },
        "VehicleId": {
          "format": "int32",
          "type": "integer"
        },
        "SeatingCapacity": {
          "format": "int32",
          "type": "integer"
        },
        "TotalCapacity": {
          "format": "int32",
          "type": "integer"
        },
        "PropertyName": {
          "type": "string"
        },
        "OccupancyStatusReportLabel": {
          "type": "string"
        }
      }
    },
    "SignageConfig": {
      "type": "object",
      "properties": {
        "AckThreshold": {
          "format": "int32",
          "type": "integer"
        },
        "CharsPerLine": {
          "format": "int32",
          "type": "integer"
        },
        "CommAddr": {
          "type": "string"
        },
        "DepartureDelta": {
          "format": "int32",
          "type": "integer"
        },
        "MessageControllerId": {
          "format": "int32",
          "type": "integer"
        },
        "MessageScroll": {
          "type": "boolean"
        },
        "NumberofDepartures": {
          "format": "int32",
          "type": "integer"
        },
        "NumberofLines": {
          "format": "int32",
          "type": "integer"
        },
        "PageControllerId": {
          "format": "int32",
          "type": "integer"
        },
        "SignageAttributes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SignageAttribute"
          }
        },
        "SignageDestinations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SignageDestination"
          }
        },
        "SignagePlaylists": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SignagePlaylist"
          }
        },
        "SignComms": {
          "type": "string"
        },
        "SignId": {
          "format": "int32",
          "type": "integer"
        },
        "SignName": {
          "type": "string"
        },
        "SignStatus": {
          "type": "string"
        },
        "SignType": {
          "type": "string"
        },
        "StartDisplay": {
          "format": "date-time",
          "type": "string"
        },
        "StopId": {
          "format": "int32",
          "type": "integer"
        },
        "TimeControllerId": {
          "format": "int32",
          "type": "integer"
        },
        "TimeStamp": {
          "format": "date-time",
          "type": "string"
        },
        "UpdateInterval": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "SignageAttribute": {
      "type": "object",
      "properties": {
        "Name": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      }
    },
    "SignageDestination": {
      "type": "object",
      "properties": {
        "DisplayText": {
          "type": "string"
        },
        "Mode": {
          "type": "string"
        },
        "RouteDisplayId": {
          "type": "string"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "RouteSecondaryTTS": {
          "type": "string"
        },
        "RouteTTS": {
          "type": "string"
        },
        "SortOrder": {
          "format": "int32",
          "type": "integer"
        },
        "TripDirection": {
          "type": "string"
        }
      }
    },
    "SignagePlaylist": {
      "type": "object",
      "properties": {
        "Active": {
          "type": "boolean"
        },
        "DisplayTimeSeconds": {
          "format": "int32",
          "type": "integer"
        },
        "LastModified": {
          "format": "date-time",
          "type": "string"
        },
        "Order": {
          "format": "int32",
          "type": "integer"
        },
        "Url": {
          "type": "string"
        }
      }
    },
    "SignageStopDeparture": {
      "type": "object",
      "properties": {
        "LastUpdated": {
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "StopId": {
          "format": "int32",
          "type": "integer"
        },
        "RouteDirections": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SignageRouteDirection"
          }
        }
      }
    },
    "SignageRouteDirection": {
      "type": "object",
      "properties": {
        "Direction": {
          "type": "string"
        },
        "IsDone": {
          "type": "string"
        },
        "IsHeadway": {
          "type": "string"
        },
        "RouteId": {
          "type": "string"
        },
        "Departures": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SignageDeparture"
          }
        },
        "HeadwayDepartures": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SignageHeadwayDeparture"
          }
        }
      }
    },
    "SignageDeparture": {
      "type": "object",
      "properties": {
        "DisplayText": {
          "type": "string"
        },
        "EDT": {
          "format": "date-time",
          "type": "string"
        },
        "ETA": {
          "format": "date-time",
          "type": "string"
        },
        "GoogleTripId": {
          "type": "string"
        },
        "LastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "SDT": {
          "format": "date-time",
          "type": "string"
        },
        "STA": {
          "format": "date-time",
          "type": "string"
        },
        "VehicleId": {
          "type": "string"
        }
      }
    },
    "SignageHeadwayDeparture": {
      "type": "object",
      "properties": {
        "DisplayText": {
          "type": "string"
        },
        "HeadwayIntervalScheduled": {
          "format": "int32",
          "type": "integer"
        },
        "HeadwayIntervalTarget": {
          "format": "int32",
          "type": "integer"
        },
        "LastDeparture": {
          "format": "date-time",
          "type": "string"
        },
        "LastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "NextDeparture": {
          "type": "string"
        },
        "VehicleId": {
          "type": "string"
        }
      }
    },
    "StopDeparture": {
      "type": "object",
      "properties": {
        "LastUpdated": {
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "RouteDirections": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RouteDirection"
          }
        },
        "StopId": {
          "format": "int32",
          "type": "integer"
        },
        "StopRecordId": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "RouteDirection": {
      "type": "object",
      "properties": {
        "Departures": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Departure"
          }
        },
        "Direction": {
          "type": "string"
        },
        "DirectionCode": {
          "type": "string"
        },
        "HeadwayDepartures": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HeadwayDeparture"
          }
        },
        "IsDone": {
          "type": "boolean"
        },
        "IsHeadway": {
          "type": "boolean"
        },
        "IsHeadwayMonitored": {
          "type": "boolean"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "RouteRecordId": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "Departure": {
      "type": "object",
      "properties": {
        "ADT": {
          "format": "date-time",
          "type": "string"
        },
        "ADTLocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "ATA": {
          "format": "date-time",
          "type": "string"
        },
        "ATALocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "Bay": {
          "type": "string"
        },
        "Dev": {
          "type": "string"
        },
        "EDT": {
          "format": "date-time",
          "type": "string"
        },
        "EDTLocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "ETA": {
          "format": "date-time",
          "type": "string"
        },
        "ETALocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "IsCompleted": {
          "type": "boolean"
        },
        "IsLastStopOnTrip": {
          "type": "boolean",
          "readOnly": true
        },
        "LastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "LastUpdatedLocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "Mode": {
          "format": "int32",
          "type": "integer"
        },
        "ModeReportLabel": {
          "type": "string"
        },
        "PropogationStatus": {
          "format": "int32",
          "type": "integer"
        },
        "SDT": {
          "format": "date-time",
          "type": "string"
        },
        "SDTLocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "STA": {
          "format": "date-time",
          "type": "string"
        },
        "STALocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "StopFlag": {
          "format": "int32",
          "type": "integer"
        },
        "StopStatus": {
          "format": "int32",
          "type": "integer"
        },
        "StopStatusReportLabel": {
          "type": "string"
        },
        "Trip": {
          "$ref": "#/definitions/Trip"
        },
        "PropertyName": {
          "type": "string"
        }
      }
    },
    "HeadwayDeparture": {
      "type": "object",
      "properties": {
        "HeadwayIntervalScheduled": {
          "format": "int32",
          "type": "integer"
        },
        "HeadwayIntervalTarget": {
          "format": "int32",
          "type": "integer"
        },
        "LastDeparture": {
          "format": "date-time",
          "type": "string"
        },
        "LastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "NextDeparture": {
          "type": "string"
        },
        "RouteId": {
          "format": "int32",
          "type": "integer"
        },
        "ServiceDescription": {
          "type": "string"
        },
        "TripId": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "Trip": {
      "type": "object",
      "properties": {
        "BlockFareboxId": {
          "format": "int32",
          "type": "integer"
        },
        "GtfsTripId": {
          "type": "string"
        },
        "InternalSignDesc": {
          "type": "string"
        },
        "InternetServiceDesc": {
          "type": "string"
        },
        "IVRServiceDesc": {
          "type": "string"
        },
        "StopSequence": {
          "format": "int32",
          "type": "integer"
        },
        "TripDirection": {
          "type": "string"
        },
        "TripId": {
          "format": "int32",
          "type": "integer"
        },
        "TripRecordId": {
          "format": "int64",
          "type": "integer"
        },
        "TripStartTime": {
          "format": "date-time",
          "type": "string"
        },
        "TripStartTimeLocalTime": {
          "format": "date-time",
          "type": "string"
        },
        "TripStatus": {
          "format": "int32",
          "type": "integer"
        },
        "TripStatusReportLabel": {
          "type": "string"
        }
      }
    },
    "Sms": {
      "type": "object",
      "properties": {
        "From": {
          "type": "string"
        },
        "Text": {
          "type": "string"
        }
      }
    },
    "RouteDirections": {
      "type": "object",
      "properties": {
        "routeDirs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RouteDirection"
          }
        }
      }
    },
    "TransitAuthorityConfig": {
      "type": "object",
      "properties": {
        "AnalyticsCode": {
          "type": "string"
        },
        "ApiKey": {
          "type": "string"
        },
        "ApiKeyHeader": {
          "type": "string"
        },
        "ApiUrl": {
          "type": "string"
        },
        "BaseUrl": {
          "type": "string"
        },
        "BitlyApiKey": {
          "type": "string"
        },
        "BitlyUsername": {
          "type": "string"
        },
        "EnableSms": {
          "type": "boolean"
        },
        "EnableSsl": {
          "type": "boolean"
        },
        "EnableTripPlanning": {
          "type": "boolean"
        },
        "ImageUrl": {
          "type": "string"
        },
        "KmlUrl": {
          "type": "string"
        },
        "NorthEastPoint": {
          "type": "string"
        },
        "ShowPublicMessage": {
          "type": "boolean"
        },
        "SouthWestPoint": {
          "type": "string"
        },
        "SslDomain": {
          "type": "string"
        },
        "StartLatitude": {
          "type": "string"
        },
        "StartLongitude": {
          "type": "string"
        },
        "StartZoom": {
          "type": "string"
        },
        "VehicleRefreshInterval": {
          "format": "int32",
          "type": "integer"
        },
        "IsFoothillExternal": {
          "type": "boolean"
        }
      }
    }
  }
}