mirror of
https://github.com/LukeHagar/openapi-types.git
synced 2025-12-06 04:20:29 +00:00
373 lines
9.4 KiB
TypeScript
373 lines
9.4 KiB
TypeScript
import type { Specification } from "../../2.0";
|
|
|
|
export const uber: Specification = {
|
|
swagger: "2.0",
|
|
info: {
|
|
title: "Uber API",
|
|
description: "Move your app forward with the Uber API",
|
|
version: "1.0.0",
|
|
},
|
|
host: "api.uber.com",
|
|
schemes: ["https"],
|
|
basePath: "/v1",
|
|
produces: ["application/json"],
|
|
paths: {
|
|
"/products": {
|
|
get: {
|
|
summary: "Product Types",
|
|
description:
|
|
"The Products endpoint returns information about the Uber products offered at a given location. The response includes the display name and other details about each product, and lists the products in the proper display order.",
|
|
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",
|
|
},
|
|
],
|
|
tags: ["Products"],
|
|
responses: {
|
|
200: {
|
|
description: "An array of products",
|
|
schema: {
|
|
type: "array",
|
|
items: {
|
|
$ref: "#/definitions/Product",
|
|
},
|
|
},
|
|
},
|
|
default: {
|
|
description: "Unexpected error",
|
|
schema: {
|
|
$ref: "#/definitions/Error",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"/estimates/price": {
|
|
get: {
|
|
summary: "Price Estimates",
|
|
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.<br><br>The response also includes low and high estimates, and the [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code for situations requiring currency conversion. When surge is active for a particular product, its surge_multiplier will be greater than 1, but the price estimate already factors in this multiplier.",
|
|
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: "end_latitude",
|
|
in: "query",
|
|
description: "Latitude component of end location.",
|
|
required: true,
|
|
type: "number",
|
|
format: "double",
|
|
},
|
|
{
|
|
name: "end_longitude",
|
|
in: "query",
|
|
description: "Longitude component of end location.",
|
|
required: true,
|
|
type: "number",
|
|
format: "double",
|
|
},
|
|
],
|
|
tags: ["Estimates"],
|
|
responses: {
|
|
200: {
|
|
description: "An array of price estimates by product",
|
|
schema: {
|
|
type: "array",
|
|
items: {
|
|
$ref: "#/definitions/PriceEstimate",
|
|
},
|
|
},
|
|
},
|
|
default: {
|
|
description: "Unexpected error",
|
|
schema: {
|
|
$ref: "#/definitions/Error",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"/estimates/time": {
|
|
get: {
|
|
summary: "Time Estimates",
|
|
description:
|
|
"The Time Estimates endpoint returns ETAs for all products offered at a given location, with the responses expressed as integers in seconds. We recommend that this endpoint be called every minute to provide the most accurate, up-to-date ETAs.",
|
|
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.",
|
|
},
|
|
],
|
|
tags: ["Estimates"],
|
|
responses: {
|
|
200: {
|
|
description: "An array of products",
|
|
schema: {
|
|
type: "array",
|
|
items: {
|
|
$ref: "#/definitions/Product",
|
|
},
|
|
},
|
|
},
|
|
default: {
|
|
description: "Unexpected error",
|
|
schema: {
|
|
$ref: "#/definitions/Error",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"/me": {
|
|
get: {
|
|
summary: "User Profile",
|
|
description:
|
|
"The User Profile endpoint returns information about the Uber user that has authorized with the application.",
|
|
tags: ["User"],
|
|
responses: {
|
|
200: {
|
|
description: "Profile information for a user",
|
|
schema: {
|
|
$ref: "#/definitions/Profile",
|
|
},
|
|
},
|
|
default: {
|
|
description: "Unexpected error",
|
|
schema: {
|
|
$ref: "#/definitions/Error",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"/history": {
|
|
get: {
|
|
summary: "User Activity",
|
|
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.<br><br>The history array in the response will have a maximum length based on the limit parameter. The response value count may exceed limit, therefore subsequent API requests may be necessary.",
|
|
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.",
|
|
},
|
|
],
|
|
tags: ["User"],
|
|
responses: {
|
|
200: {
|
|
description: "History information for the given user",
|
|
schema: {
|
|
$ref: "#/definitions/Activities",
|
|
},
|
|
},
|
|
default: {
|
|
description: "Unexpected error",
|
|
schema: {
|
|
$ref: "#/definitions/Error",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
definitions: {
|
|
Product: {
|
|
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.",
|
|
},
|
|
description: {
|
|
type: "string",
|
|
description: "Description of product.",
|
|
},
|
|
display_name: {
|
|
type: "string",
|
|
description: "Display name of product.",
|
|
},
|
|
capacity: {
|
|
type: "string",
|
|
description: "Capacity of product. For example, 4 people.",
|
|
},
|
|
image: {
|
|
type: "string",
|
|
description: "Image URL representing the product.",
|
|
},
|
|
},
|
|
},
|
|
PriceEstimate: {
|
|
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",
|
|
description: "Lower bound of the estimated price.",
|
|
},
|
|
high_estimate: {
|
|
type: "number",
|
|
description: "Upper bound of the estimated price.",
|
|
},
|
|
surge_multiplier: {
|
|
type: "number",
|
|
description:
|
|
"Expected surge multiplier. Surge is active if surge_multiplier is greater than 1. Price estimate already factors in the surge multiplier.",
|
|
},
|
|
},
|
|
},
|
|
Profile: {
|
|
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.",
|
|
},
|
|
},
|
|
},
|
|
Activity: {
|
|
properties: {
|
|
uuid: {
|
|
type: "string",
|
|
description: "Unique identifier for the activity",
|
|
},
|
|
},
|
|
},
|
|
Activities: {
|
|
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: "int32",
|
|
description: "Total number of items available.",
|
|
},
|
|
history: {
|
|
type: "array",
|
|
items: {
|
|
$ref: "#/definitions/Activity",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Error: {
|
|
properties: {
|
|
code: {
|
|
type: "integer",
|
|
format: "int32",
|
|
},
|
|
message: {
|
|
type: "string",
|
|
},
|
|
fields: {
|
|
type: "string",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|