-
Notifications
You must be signed in to change notification settings - Fork 14
/
swagger.yaml
346 lines (345 loc) · 9.84 KB
/
swagger.yaml
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
# this is an example of the Uber API (taken from https://github.com/OAI/OpenAPI-Specification and then customized)
swagger: '2.0'
info:
title: Uber API
description: Move your app forward with the Uber API
version: 1.0.0
schemes:
- https
basePath: /
tags:
- name: uber
paths:
/products:
get:
operationId: products
tags:
- uber
description: |
The Products endpoint returns information about the Uber products offered at a given location.
parameters:
- name: latitude
in: query
description: Latitude component of location.
required: true
type: number
format: double
- name: longitude
in: query
description: Longitude component of location.
required: true
type: number
format: double
produces:
- application/json
responses:
200:
description: An array of products
schema:
$ref: '#/definitions/ProductMap'
default:
description: Unexpected error
/estimates/price/{start_latitude}/{start_longitude}/{end_latitude}/{end_longitude}:
get:
operationId: estimates_price
tags:
- uber
description: |
The Price Estimates endpoint returns an estimated price range for each product offered at a given
location. The price estimate is provided as a formatted string with the full price range and the localized
currency symbol.
parameters:
- name: start_latitude
in: path
description: Latitude component of start location.
required: true
type: number
format: double
- name: start_longitude
in: path
description: Longitude component of start location.
required: true
type: number
format: double
- name: end_latitude
in: path
description: Latitude component of end location.
required: true
type: number
format: double
- name: end_longitude
in: path
description: Longitude component of end location.
required: true
type: number
format: double
- name: max_lines
in: query
description: A maximum number of lines in the produced json.
required: false
type: integer
format: int32
produces:
- application/json
responses:
200:
description: An array of price estimates by product
schema:
$ref: '#/definitions/PriceEstimateArray'
default:
description: Unexpected error
/estimates/time:
get:
operationId: estimates_time
tags:
- uber
description: The Time Estimates endpoint returns ETAs for all products.
parameters:
- name: start_latitude
in: query
description: Latitude component of start location.
required: true
type: number
format: double
- name: start_longitude
in: query
description: Longitude component of start location.
required: true
type: number
format: double
- name: customer_uuid
in: query
type: string
format: uuid
description: Unique customer identifier to be used for experience customization.
- name: product_id
in: query
type: string
description: Unique identifier representing a specific product for a given latitude & longitude.
produces:
- application/json
responses:
200:
description: An array of products
schema:
$ref: '#/definitions/ProductMap'
default:
description: Unexpected error
/me:
patch:
operationId: update_me
tags:
- uber
description: Update an User Profile.
consumes:
- application/json
produces:
- application/json
parameters:
- name: update_user
in: body
description: profile of a user to update
required: true
schema:
$ref: '#/definitions/Profile'
responses:
200:
description: Previous profile information for a user
schema:
$ref: '#/definitions/Profile'
default:
description: Unexpected error
/upload_infos:
patch:
operationId: upload_infos
tags:
- uber
description: Upload information about an User.
consumes:
- multipart/form-data
parameters:
- name: user_id
in: formData
description: identifies a user.
required: true
type: string
- name: profile_picture
in: formData
description: contains the user image encoded in JPEG as a multi-value field.
required: true
type: file
- name: birthday
in: formData
description: is the user's birth date.
type: string
required: false
responses:
200:
description: Confirms that the information was uploaded.
default:
description: Unexpected error
/history:
get:
operationId: history
tags:
- uber
description: |
The User Activity endpoint returns data about a user's lifetime activity with Uber. The response will
include pickup locations and times, dropoff locations and times, the distance of past requests, and
information about which products were requested.
parameters:
- name: offset
in: query
type: integer
format: int32
description: Offset the list of returned results by this amount. Default is zero.
- name: limit
in: query
type: integer
format: int32
description: Number of items to retrieve. Default is 5, maximum is 100.
responses:
200:
description: History information for the given user
schema:
$ref: '#/definitions/Activities'
default:
description: Unexpected error
definitions:
Product:
type : object
properties:
product_id:
type: string
description: |
Unique identifier representing a specific product for a given latitude & longitude.
For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles.
desc:
type: string
description: Description of product.
display_name:
type: string
description: Display name of product.
capacity:
type: integer
format: int32
description: Capacity of product. For example, 4 people.
image:
type: string
description: Image URL representing the product.
required:
- product_id
- desc
- display_name
- capacity
- image
ProductList:
type : object
properties:
products:
description: Contains the list of products
type: array
items:
$ref: "#/definitions/Product"
required:
- products
ProductMap:
type : object
additionalProperties:
$ref: "#/definitions/Product"
PriceEstimate:
type : object
properties:
product_id:
type: string
description: |
Unique identifier representing a specific product for a given latitude & longitude. For example,
uberX in San Francisco will have a different product_id than uberX in Los Angeles
currency_code:
type: string
description: "[ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code."
display_name:
type: string
description: Display name of product.
estimate:
type: string
description: |
Formatted string of estimate in local currency of the start location.
Estimate could be a range, a single number (flat rate) or "Metered" for TAXI.
low_estimate:
type: number
format: double
description: Lower bound of the estimated price.
high_estimate:
type: number
format: double
description: Upper bound of the estimated price.
surge_multiplier:
type: number
format: double
description: |
Expected surge multiplier. Surge is active if surge_multiplier is greater than 1.
Price estimate already factors in the surge multiplier.
required:
- product_id
- currency_code
- display_name
- estimate
PriceEstimateArray:
type : array
items:
$ref: "#/definitions/Product"
Profile:
type : object
properties:
first_name:
type: string
description: First name of the Uber user.
last_name:
type: string
description: Last name of the Uber user.
email:
type: string
description: Email address of the Uber user
picture:
type: string
description: Image URL of the Uber user.
promo_code:
type: string
description: Promo code of the Uber user.
required:
- last_name
- email
- picture
Activity:
type : object
properties:
uuid:
type: string
description: Unique identifier for the activity
required:
- uuid
Activities:
type : object
properties:
offset:
type: integer
format: int32
description: Position in pagination.
limit:
type: integer
format: int32
description: Number of items to retrieve (100 max).
count:
type: integer
format: int64
description: Total number of items available.
history:
type: array
items:
$ref: '#/definitions/Activity'
required:
- offset
- limit
- count
- history