summaryrefslogtreecommitdiff
path: root/schema.yml
blob: c8da34b93ed4321792a662d57888d75d789b8e92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Copyright (C) 2020 Daniel Friesel
#
# SPDX-License-Identifier: CC0-1.0
openapi: 3.0.3
info:
  title: travelynx
  version: 0.0.0
  description: DB Zugbildungsplan to JSON
servers:
  - url: 'https://lib.finalrewind.org/dbdb'
paths:
  '/db_zugbildung_v0.json':
    get:
      summary: Retrieve train composition
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/traincomposition'
components:
  schemas:
    traincomposition:
      type: object
      properties:
        deprecated:
          type: boolean
          example: false
          description: if true, this JSON export version is no longer supported and will be removed in the future
        source:
          type: string
          example: "2021_ZpAR_Wi_Endstück.pdf"
          description: PDF file used to generate this JSON export
        valid:
          type: string
          example: "2020-12-13/2021-06-12"
          description: ISO 8601 interval describing when this train composition dataset is valid
        train:
          type: object
          description: dict mapping train numbers to train objects
          additionalProperties:
            $ref: '#/components/schemas/train'
    train:
      type: object
      properties:
        rawType:
          type: string
          example: ICE-W
          description: train type as specified in train composition PDF
        type:
          type: string
          example: ICE 3
          description: scheduled train type as estimated from rawType and wagon data
        shortType:
          type: string
          example: 3
          description: A short identifier useful to differentiate between train types such as ICE 3 / ICE 3 Redesign or IC1 / IC2
        name:
          type: string
          example: ICE International
          description: train name / line name / description as specified in PDF
        empty:
          type: boolean
          example: false
          description: true if this is an empty train without passenger service ("Leerfahrt")
        route:
          $ref: '#/components/schemas/route'
        cycle:
          $ref: '#/components/schemas/cycle'
        hasWagon:
          $ref: '#/components/schemas/hasWagon'
        wagons:
          $ref: '#/components/schemas/wagons'
    route:
      type: object
      properties:
        preStart:
          type: string
          example: Berlin-Rummelsburg (Triebzuganlage)
          description: station where the train is prepared / provisioned
        start:
          type: string
          example: Berlin-Gesundbrunnen (05:53)
          description: first station(s) with passenger service. may contain scheduled departure time.
        middle:
          type: array
          items:
            type: string
        end:
          type: string
          example: München (10:02)
          description: terminal station(s) with passenger service. may contain scheduled arrival time.
        postEnd:
          type: string
          description: station where the train is parked
    cycle:
      type: object
      properties:
        from:
          type: array
          items:
            type: string
        to:
          type: array
          items:
            type: string
    hasWagon:
      type: object
      additionalProperties:
        type: boolean
        description: true iff the wagon or locomotive type described by the key is scheduled for the train
    wagons:
      type: array
      items:
        type: object
        properties:
          type:
            type: string
          number:
            type: string