-
Notifications
You must be signed in to change notification settings - Fork 0
/
carpool-api-refined-en.yml
396 lines (389 loc) · 12.2 KB
/
carpool-api-refined-en.yml
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
openapi: 3.0.1
info:
title: ""
description: ""
version: 0.0.1
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
paths:
/carpoolJourneys:
get:
tags:
- carpoolJourneys
summary: Give carpooling journeys
description: |
Give carpooling journeys matching the request parameters.
parameters:
- name: departureLat
in: query
description: WGS84 latitude of the requested departure.
required: true
schema:
type: number
format: double
- name: departureLng
in: query
description: WGS84 longitude of the requested departure.
required: true
schema:
type: number
format: double
- name: arrivalLat
in: query
description: WGS84 latitude of the requested arrival.
required: true
schema:
type: number
format: double
- name: arrivalLng
in: query
description: WGS84 longitude of the requested departure.
required: true
schema:
type: number
format: double
- name: date
in: query
description: |-
Requested departure datetime as a UNIX UTC timestamp. If not
specified, request time is considered the expected departure datetime.
schema:
type: integer
- name: departureRadius
in: query
description: |-
Departure search radius in kilometers. Defaults to 1.0 kilometer.
schema:
type: number
format: float
default: 1.0
- name: arrivalRadius
in: query
description: |-
Arrival search radius in kilometers. Defaults to 1.0 kilometer.
schema:
type: number
format: float
default: 1.0
- name: timeDelta
in: query
description: |-
Maximum delta in seconds between the requested 'date' and the
`driverDepartureDate` of the returned journeys.
Defaults to 900 seconds.
schema:
type: integer
default: 900
- name: count
in: query
description: |-
Maximum number of journeys returned.
Defaults to all journey matching request.
schema:
type: integer
responses:
200:
description: Ok. Request processed successfully.
content:
application/json:
schema:
title: CarpoolJourneys
type: array
items:
$ref: '#/components/schemas/CarpoolJourney'
400:
description: Bad Request. See error message.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: |-
Explain why the request couldn't be processed.
401:
description: Unauthorized. You must authenticate.
429:
description: Too Many Requests. Please slow down.
headers:
Retry-After:
description: |-
How long to wait before making a new request (in seconds).
schema:
type: integer
500:
description: Internal Server Error. Please try again later.
/status:
get:
tags:
- status
summary: Give health status of the webservice.
responses:
200:
description: Ok. Webservice is available.
429:
description: Too Many Requests. Please slow down.
headers:
Retry-After:
description: |-
How long to wait before making a new request (in seconds).
schema:
type: integer
500:
description: Internal Server Error. Please try again later.
components:
schemas:
CarpoolJourney:
title: CarpoolJourney
required:
- id
- driver
- duration
- passengerPickupDate
- passengerPickupLat
- passengerPickupLng
- passengerDropLat
- passengerDropLng
- type
- webUrl
type: object
properties:
id:
type: "string"
description: Unique identifier of the journey.
passengerPickupDate:
type: number
description: |-
Passenger pickup datetime as a UNIX UTC timestamp in seconds.
format: long
passengerPickupLat:
type: "number"
format: "double"
description: Latitude of the passenger pick-up point.
passengerPickupLng:
type: "number"
format: "double"
description: Longitude of the passenger pick-up point.
passengerDropLat:
type: "number"
format: "double"
description: Latitude of the passenger drop-off point.
passengerDropLng:
type: "number"
format: "double"
description: Longitude of the passenger drop-off point.
passengerPickupAddress:
type: string
description: String representing the pickup-up address.
passengerDropAddress:
type: string
description: String representing the drop-off address.
duration:
type: integer
description: Carpooling duration in seconds.
webUrl:
type: string
description: URL of the journey on the webservice provider platform.
type:
type: string
description: |-
Type of journey. A dynamic journey is happening in real time.
enum:
- PLANNED
- DYNAMIC
- LINE
distance:
type: "integer"
description: Carpooling distance in meters.
driverDepartureDate:
type: number
description: |-
Driver departure datetime as a UNIX UTC timestamp in seconds.
format: long
driverDepartureLat:
type: "number"
format: "double"
description: Latitude of the departure.
driverDepartureLng:
type: "number"
format: "double"
description: Longitude of the departure.
driverArrivalLat:
type: "number"
format: "double"
description: Latitude of the arrival.
driverArrivalLng:
type: "number"
format: "double"
description: Longitude of the arrival.
driverDepartureAddress:
type: string
description: String representing the departure address of the driver.
driverArrivalAddress:
type: string
description: String representing the arrival address of the driver.
departureToPickupWalkingTime:
type: integer
description: |-
Walking time from the requested departure location
to the pick-up location.
dropoffToArrivalWalkingTime:
type: integer
description: |-
Walking time to the requested arrival location
from the drop-off location.
departureToPickupWalkingDistance:
type: integer
description: |-
Walking distance from the requested departure location
to the pick-up location.
dropoffToArrivalWalkingDistance:
type: integer
description: |-
Walking distance to the requested arrival location
from the drop-off location.
journeyPolyline:
type: string
description: |-
Carpooling journey itinerary as a
[Google Encoded Polyline](https://developers.google.com/maps/documentation/utilities/polylinealgorithm).
departureToPickupWalkingPolyline:
type: string
description: |-
Walking
[Google Encoded Polyline](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)
from the requested departure location to the pick-up location.
dropoffToArrivalWalkingPolyline:
type: string
description: |-
Walking
[Google Encoded Polyline](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)
to the requested arrival location from the drop-off location.
availableSeats:
type: integer
description: If a driver journey, available seats.
price:
$ref: '#/components/schemas/Price'
driver:
$ref: '#/components/schemas/Driver'
preferences:
$ref: '#/components/schemas/Preferences'
car:
$ref: '#/components/schemas/Car'
deepLink:
$ref: '#/components/schemas/DeepLink'
Price:
type: object
properties:
type:
type: string
description: |-
Either « FREE », « PAYING » or « UNKNOWN ». « UNKNOWN » is given
when it should be « PAYING » but we cannot set the price yet.
enum:
- FREE
- PAYING
- UNKNOWN
amount:
type: number
description: Carpooling passenger cost in euros.
format: float
currency:
type: string
description: ISO 4217 code representing the currency of the price.
Driver:
type: object
required:
- id
- alias
properties:
id:
type: string
description: User's unique identifier.
alias:
type: string
description: User's alias.
firstName:
type: string
description: User's first name.
lastName:
type: string
description: User's last name.
grade:
type: integer
minimum: 1
maximum: 5
description: User's grade from 1 to 5.
picture:
type: string
description: User's profile picture absolute URL.
gender:
type: string
description: User's gender. 'O' stands for 'Other'.
enum:
- F
- M
- O
Preferences:
type: object
properties:
smoking:
type: boolean
description: |-
If driver journey, specifies if the driver allows smoking in the car.
animals:
type: boolean
description: |-
If driver journey, specifies if the driver allows animals in the car.
music:
type: boolean
description: |-
If driver journey, specifies if the driver enjoys music in the car.
isTalker:
type: boolean
description: |-
If driver journey, specifies if the driver enjoys talking with passengers.
luggageSize:
type: integer
minimum: 1
maximum: 5
description: |-
If driver journey, specifies the size of allowed luggages.
From very small (1) to very big (5).
Car:
type: object
properties:
model:
type: string
description: Model of the car.
brand:
type: string
description: Brand of the car.
DeepLink:
type: object
description: Platform specific deep-link configurations.
properties:
android:
type: object
properties:
uri:
type: string
description: |-
URI compliant with Android conventions to open the webservice
provider mobile app on the screen presenting the specific journey
(see [this guide](https://blog.branch.io/technical-guide-to-deep-linking-on-android-chrome-intents/) for more details).
storeUrl:
type: string
description: |-
URL of the webservice provider mobile app on the PlayStore
in case the app is not yet installed on the device.
ios:
type: object
properties:
universalLink:
type: string
description: |-
URI compliant with iOS conventions to open the webservice
provider mobile app on the screen presenting the specific journey.