summaryrefslogtreecommitdiff
path: root/schema.yml
blob: 87746aa466b7c312a1f3bb91519ce7d4c46bca7e (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
122
123
124
125
126
127
128
129
130
# 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
      example:
        "174.5": true
        DApza: true
        DBpbzfa: true
        PBpza: true
    wagons:
      type: array
      items:
        type: object
        properties:
          type:
            type: string
            example: DBpbzfa
            description: wagon or locomotive type
          number:
            type: integer
            example: 1
            description: wagon number