tao-test/app/vendor/league/openapi-psr7-validator/tests/stubs/uber.yaml

299 lines
10 KiB
YAML
Raw Normal View History

2022-08-29 20:14:13 +02:00
# extracted from "https://github.com/Mermade/openapi3-examples"
# this is an example of the Uber API
# as a demonstration of an API spec in YAML
openapi: "3.0.0"
info:
title: Uber API
description: Move your app forward with the Uber API
version: "1.0.0"
servers:
- url: https://api.uber.com/v1
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
schema:
type: number
format: double
- name: longitude
in: query
description: Longitude component of location.
required: true
schema:
type: number
format: double
security:
- apikey: []
tags:
- Products
responses:
200:
description: An array of products
content:
application/json:
schema:
$ref: "#/components/schemas/ProductList"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/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
schema:
type: number
format: double
- name: start_longitude
in: query
description: Longitude component of start location.
required: true
schema:
type: number
format: double
- name: end_latitude
in: query
description: Latitude component of end location.
required: true
schema:
type: number
format: double
- name: end_longitude
in: query
description: Longitude component of end location.
required: true
schema:
type: number
format: double
tags:
- Estimates
responses:
200:
description: An array of price estimates by product
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/PriceEstimate"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/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
schema:
type: number
format: double
- name: start_longitude
in: query
description: Longitude component of start location.
required: true
schema:
type: number
format: double
- name: customer_uuid
in: query
schema:
type: string
format: uuid
description: Unique customer identifier to be used for experience customization.
- name: product_id
in: query
schema:
type: string
description: Unique identifier representing a specific product for a given latitude & longitude.
tags:
- Estimates
responses:
200:
description: An array of products
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Product"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/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
content:
application/json:
schema:
$ref: "#/components/schemas/Profile"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/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
schema:
type: integer
format: int32
description: Offset the list of returned results by this amount. Default is zero.
- name: limit
in: query
schema:
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
content:
application/json:
schema:
$ref: "#/components/schemas/Activities"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
components:
securitySchemes:
apikey:
type: apiKey
name: server_token
in: query
schemas:
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: integer
description: Capacity of product. For example, 4 people.
image:
type: string
description: Image URL representing the product.
ProductList:
properties:
products:
description: Contains the list of products
type: array
items:
$ref: "#/components/schemas/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: "#/components/schemas/Activity"
Error:
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string