{
  "openapi": "3.0.0",
  "info": {
    "title": "",
    "description": "",
    "termsOfService": "http://www.bnsf.com/site-terms-of-use.html",
    "contact": {
      "name": "BNSF Customer API",
      "email": "CustomerAPI@bnsf.com"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.bnsf.com:6443"
    }
  ],
  "paths": {
    "/v1/intermodal-schedules": {
      "get": {
        "tags": [
          "Requests"
        ],
        "summary": "Intermodal Schedules - Returns all Intermodal Schedules.",
        "parameters": [
          {
            "name": "shipmentServiceLevelCode",
            "in": "query",
            "description": "E=Expedited; P = Premium; Y = Empty",
            "schema": {
              "type": "string",
              "title": "Schema",
              "example": "E"
            }
          },
          {
            "name": "businessTypeCode",
            "in": "query",
            "description": "D=Domestic; I=International; B=International and Domestic",
            "schema": {
              "type": "string",
              "title": "Schema",
              "example": "D"
            }
          },
          {
            "name": "equipmentTypeCode",
            "in": "query",
            "description": "K=Container; V=Trailer",
            "schema": {
              "type": "string",
              "title": "Schema",
              "example": "K"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "**OK**\n\nThe request has succeeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Schema",
                  "properties": {
                    "elements": {
                      "type": "array",
                      "title": "Elements",
                      "items": {
                        "$ref": "#/components/schemas/intermodal_schedules"
                      },
                      "nullable": false
                    }
                  },
                  "additionalProperties": true,
                  "nullable": false
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "504": {
            "$ref": "#/components/responses/504"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "intermodal_schedules": {
        "type": "object",
        "title": "Intermodal Schedules",
        "properties": {
          "additionalDescription": {
            "type": "string",
            "title": "additionalDescription",
            "description": "Customer specific information.",
            "example": "None"
          },
          "additionalDetails": {
            "type": "string",
            "title": "additionalDetails",
            "description": "Customer specific information.",
            "example": "None"
          },
          "businessTypeName": {
            "type": "string",
            "title": "Business Type",
            "description": "Service schedules for business types. I=International; D=Domestic; or B= International and Domestic",
            "example": "Domestic"
          },
          "destinationAvailabilityDayOfWeekName": {
            "type": "string",
            "title": "Destination Availability Day Of Week",
            "description": "Destination availability day of week",
            "example": "Friday"
          },
          "destinationAvailabilityTime": {
            "type": "string",
            "title": "Destination Availability Time",
            "description": "Desitnation availability time",
            "example": "04:00"
          },
          "destinationStationName": {
            "type": "string",
            "title": "Destination Facility",
            "description": "Destination station/facility",
            "example": "CHICAGO"
          },
          "destinationStateCode": {
            "type": "string",
            "title": "Destination State",
            "description": "Destination state",
            "example": "IL"
          },
          "equipmentTypeName": {
            "type": "string",
            "title": "Equipment Type",
            "description": "Equipment type. K=Container; V=Trailer",
            "example": "Container"
          },
          "bnsfTransitGoalHourCount": {
            "type": "string",
            "title": "Goal Hours",
            "description": "Goal hours, number of hours from cutoff to availability",
            "example": "24"
          },
          "interchangeDeliveredSCAC": {
            "type": "string",
            "title": "Interchange Delivered Carrier",
            "description": "Interchange delivered carrier (to)",
            "example": "UPRR"
          },
          "interchangeReceivedSCAC": {
            "type": "string",
            "title": "Interchange Received Carrier",
            "description": "Interchange received carrier (from)",
            "example": "NS"
          },
          "originCutoffDayOfWeekName": {
            "type": "string",
            "title": "Origin Cutoff Day Of Week",
            "description": "Origin cutoff day of week",
            "example": "Monday"
          },
          "originCutoffTime": {
            "type": "string",
            "title": "Origin Cutoff Time",
            "description": "Origin cutoff time",
            "example": 600
          },
          "originStationName": {
            "type": "string",
            "title": "Origin Facility",
            "description": "Origin station/facility",
            "example": "ALBUQUERQUE"
          },
          "originStateCode": {
            "type": "string",
            "title": "Origin State",
            "description": "Origin State",
            "example": "NM"
          },
          "shipmentServiceLevelName": {
            "type": "string",
            "title": "Service Level",
            "description": "Service level billed for shipment. E=Expedited; P = Premium; Y = Empty",
            "example": "Expedited"
          },
          "updateTimestamp": {
            "type": "string",
            "title": "updateTimestamp",
            "description": "Timestamp when the schedule was updated.",
            "example": "09/03/2019 09:34"
          }
        },
        "additionalProperties": true,
        "nullable": false
      }
    },
    "responses": {
      "400": {
        "description": "**Bad Request**\n\nThe request could not be understood by the server due to incorrect syntax. Do not repeat the request without modifications."
      },
      "401": {
        "description": "**Unauthorized**\n\nIndicates that the request requires user authentication information. The client MAY repeat the request with a suitable Authorization."
      },
      "403": {
        "description": "Unauthorized request. Here are the most common causes:\n    \n* You are getting 403 Access Denied.\n\n   * It takes a few days for us to get you set up after you register. When set up is complete, you will receive an email letting you know. If you have not received the email, please wait up to five business days. Let us know via API Support if you still have not received the email after five business days.\n   * You can also get this error if your certificate is not configured properly on your side. Please review the Mutual Authentication in the Getting Started section of our documentation.\n\n\n* You are getting 403 \"message\": \"Insufficient privileges\" when accessing a restricted service for which you do not have permission. You can use our Registration form to request access. Be sure to explain the situation in the \"Please explain how you intend to use the API\" field.\n"
      },
      "404": {
        "description": "**Not Found**\n\nThe server cannot find the requested resource (URI). That is, the address of the endpoint in your request does not exist. Please consult the documentation."
      },
      "405": {
        "description": "**Method Not Allowed**\n\nThe request HTTP method is known by the server but has been disabled and cannot be used for that resource. For example, you may be using GET when POST is required. Please consult the documentation."
      },
      "429": {
        "description": "**Too Many Requests**\n\nThe BNSF API Gateway enforces rate limits to maintain application security and performance.  Current rate limits are set as follows:\n* 1 API Request Per Second, Per Partner, Per Service\n* 15 API Requests Per Minute, Per Partner, Per Service\n* 100 API Request Per Minute, Per Service\n \nWhen requests exceed these limits the API Gateway will return a **429 Too Many Requests** error response. Upon receiving such exceptions, you can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits. "
      },
      "500": {
        "description": "**Internal Server Error**\n\nThe server encountered an unexpected condition which prevented it from fulfilling the request. This is always a problem on the server side. Our internal support systems will be made aware."
      },
      "504": {
        "description": "**Gateway Timeout**\n\nThe server is acting as a gateway and cannot get a response in time for a request. Wait about one minute then try again."
      }
    }
  },
  "security": [
    {
      "Restricted": []
    }
  ]
}