BNSF · OpenAPI Overlay 1.0.0

API Evangelist enhancements to the BNSF Automotive Hub Operations API

12 actions 12 updates documentation extends openapi/_original/bnsf-automotive-hub-operations-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for BNSF's API. It is a proposal applied on top of the contract, not a document BNSF publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

operationIdtagstitledescriptionMutualTLSRestricted

Targets 12

$.info
$.servers
$.tags
$.components.securitySchemes
$.security
$.paths['/v1/pregate/automotive/haulaway-entry'].post
$.paths['/v1/vehicles/addHold'].post
$.paths['/v1/vehicles/releaseHold'].post
$.paths['/v1/gate-pass/ramp/{aarRampCode}/vehicle/{vin}'].get
$.paths['/v1/gate-pass/ramp/{aarRampCode}/gate-pass/{gatePassCode}'].get
$.paths['/v1/exit-request'].post
$.paths['/v1/pre-outgate'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements to the BNSF Automotive Hub Operations API
  version: 1.0.0
extends: openapi/_original/bnsf-automotive-hub-operations-openapi.json
x-generated: '2026-09-06'
x-method: generated
x-source: https://www.bnsf.com/ship-with-bnsf/support-services/customer-api/automotive-hub-operations.json
x-note: 'Captures every change API Evangelist made between the verbatim harvested document in openapi/_original/
  and the working document in openapi/. No BNSF-authored field is altered: the overlay only fills in metadata BNSF
  left empty (title, description, tags, operationIds, securitySchemes) and adds the Trial server BNSF documents
  in prose.'
actions:
- target: $.info
  description: BNSF publishes this document with an empty info.title and info.description. Supply the service name
    BNSF uses for it in its own API Catalog, and a description written from that catalog entry.
  update:
    title: BNSF Automotive Hub Operations API
    description: 'Automotive haul-away gate operations at BNSF ramps: gate entry and exit requests, pre-exit submissions,
      VIN holds and hold releases, and gate-pass lookups by AAR ramp code.'
- target: $.servers
  description: The published document names only the Production host. BNSF documents a Trial host on the same port
    in Getting Started; add it so the trial environment is machine-readable.
  update:
  - url: https://api.bnsf.com:6443
    description: Production
  - url: https://api-trial.bnsf.com:6443
    description: Trial
- target: $.tags
  description: The published document declares no tags and labels every operation "Requests". Replace with the service
    name BNSF uses in its Catalog.
  update:
  - name: Automotive Hub Operations
- target: $.components.securitySchemes
  description: The published document declares no securitySchemes at all, while referencing a "Restricted" scheme
    in security requirements. Define both schemes from the Getting Started and API Support pages.
  update:
    MutualTLS:
      type: mutualTLS
      description: 'BNSF requires certificate-based mutual TLS (two-way authentication). Client certificates must
        be x509 PEM, issued by a recognised public Certificate Authority (Domain Validation, Organization Validation,
        Extended Validation or S/MIME), effective no longer than 36 months, with Extended Key Usage including Client
        Authentication (OID 1.3.6.1.5.5.7.3.2). Self-signed, private, Let''s Encrypt, webCARES and Cloudflare-issued
        certificates are not accepted. Source: https://www.bnsf.com/ship-with-bnsf/support-services/customer-api/getting-started/'
    Restricted:
      type: mutualTLS
      description: 'Restricted Service. The same client certificate applies, but the certificate must additionally
        be authorised for this service by BNSF API Support. Unauthorised callers receive 403 "Insufficient privileges".
        Restricted Services are only available in the Production environment. Source: https://www.bnsf.com/ship-with-bnsf/support-services/customer-api/support/'
- target: $.security
  description: Declare the document-level requirement of mutual TLS, which BNSF states in prose but omits from the
    machine-readable contract.
  update:
  - MutualTLS: []
- target: $.paths['/v1/pregate/automotive/haulaway-entry'].post
  description: The published operation has no operationId and is tagged "Requests". Assign a stable operationId
    derived from method and path, and retag to the service.
  update:
    operationId: postV1PregateAutomotiveHaulawayEntry
    tags:
    - Automotive Hub Operations
- target: $.paths['/v1/vehicles/addHold'].post
  description: The published operation has no operationId and is tagged "Requests". Assign a stable operationId
    derived from method and path, and retag to the service.
  update:
    operationId: postV1VehiclesAddhold
    tags:
    - Automotive Hub Operations
- target: $.paths['/v1/vehicles/releaseHold'].post
  description: The published operation has no operationId and is tagged "Requests". Assign a stable operationId
    derived from method and path, and retag to the service.
  update:
    operationId: postV1VehiclesReleasehold
    tags:
    - Automotive Hub Operations
- target: $.paths['/v1/gate-pass/ramp/{aarRampCode}/vehicle/{vin}'].get
  description: The published operation has no operationId and is tagged "Requests". Assign a stable operationId
    derived from method and path, and retag to the service.
  update:
    operationId: getV1GatePassRampByAarRampCodeVehicleByVin
    tags:
    - Automotive Hub Operations
- target: $.paths['/v1/gate-pass/ramp/{aarRampCode}/gate-pass/{gatePassCode}'].get
  description: The published operation has no operationId and is tagged "Requests". Assign a stable operationId
    derived from method and path, and retag to the service.
  update:
    operationId: getV1GatePassRampByAarRampCodeGatePassByGatePassCode
    tags:
    - Automotive Hub Operations
- target: $.paths['/v1/exit-request'].post
  description: The published operation has no operationId and is tagged "Requests". Assign a stable operationId
    derived from method and path, and retag to the service.
  update:
    operationId: postV1ExitRequest
    tags:
    - Automotive Hub Operations
- target: $.paths['/v1/pre-outgate'].post
  description: The published operation has no operationId and is tagged "Requests". Assign a stable operationId
    derived from method and path, and retag to the service.
  update:
    operationId: postV1PreOutgate
    tags:
    - Automotive Hub Operations