openapi-core/tests/integration/data/v3.0/petstore.yaml

378 lines
8.5 KiB
YAML
Raw Normal View History

2017-09-21 11:51:37 +00:00
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
2020-02-03 19:23:09 +00:00
description: Swagger Petstore API specification
termsOfService: Fair use
contact:
name: Author
url: http://petstore.swagger.io
email: email@petstore.swagger.io
2017-09-21 11:51:37 +00:00
license:
name: MIT
2020-02-03 19:23:09 +00:00
url: https://opensource.org/licenses/MIT
security:
- api_key: []
- {}
2017-09-21 11:51:37 +00:00
servers:
2017-09-25 11:22:55 +00:00
- url: http://petstore.swagger.io/{version}
variables:
version:
enum:
- v1
- v2
default: v1
2017-09-21 11:51:37 +00:00
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: page
in: query
schema:
type: integer
format: int32
default: 1
2017-09-21 11:51:37 +00:00
- name: limit
in: query
description: How many items to return at one time (max 100)
required: true
schema:
type: integer
format: int32
2017-10-17 13:02:21 +00:00
nullable: true
2017-10-19 11:28:28 +00:00
- name: search
in: query
description: Search query
schema:
type: string
default: ""
allowEmptyValue: true
2017-09-21 11:51:37 +00:00
- name: ids
in: query
description: Filter pets with Ids
schema:
type: array
items:
type: integer
format: int32
2017-11-14 16:05:03 +00:00
- name: tags
in: query
description: Filter pets with tags
schema:
type: array
items:
$ref: "#/components/schemas/Tag"
explode: false
2017-09-21 11:51:37 +00:00
responses:
'200':
2019-03-22 01:51:47 +00:00
$ref: "#/components/responses/PetsResponse"
2017-09-21 11:51:37 +00:00
post:
summary: Create a pet
2019-10-21 22:16:24 +00:00
description: Creates new pet entry
externalDocs:
url: https://example.com
description: Find more info here
2019-10-22 17:21:40 +00:00
servers:
- url: https://development.gigantic-server.com/v1
description: Development server
- url: https://staging.gigantic-server.com/v1
description: Staging server
2017-09-21 11:51:37 +00:00
operationId: createPets
tags:
- pets
2018-07-09 11:10:05 +00:00
parameters:
- name: api_key
in: header
schema:
2019-02-26 16:49:25 +00:00
type: string
format: byte
2018-07-09 11:10:05 +00:00
required: true
- name: user
in: cookie
schema:
type: integer
format: int32
required: true
2017-09-21 11:51:37 +00:00
requestBody:
2017-11-02 16:05:25 +00:00
required: true
2017-09-21 11:51:37 +00:00
content:
application/json:
schema:
$ref: '#/components/schemas/PetCreate'
example:
name: "Pet"
wings: []
2017-09-21 11:51:37 +00:00
responses:
'201':
description: Null response
default:
2018-04-04 10:26:21 +00:00
$ref: "#/components/responses/ErrorResponse"
2017-09-21 11:51:37 +00:00
/pets/{petId}:
get:
summary: Info for a specific pet
operationId: showPetById
tags:
- pets
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
schema:
type: integer
format: int64
2020-02-04 11:06:26 +00:00
security:
- petstore_auth:
- write:pets
- read:pets
2017-09-21 11:51:37 +00:00
responses:
'200':
description: Expected response to a valid request
content:
application/json:
schema:
2017-11-06 16:50:00 +00:00
$ref: "#/components/schemas/PetData"
example: |
{
"data": []
}
2018-05-30 13:46:54 +00:00
image/*:
schema:
type: string
format: binary
2017-09-21 11:51:37 +00:00
default:
2017-11-06 14:57:08 +00:00
$ref: "#/components/responses/ErrorResponse"
2018-04-23 18:50:29 +00:00
/tags:
get:
summary: List all tags
operationId: listTags
tags:
- tags
responses:
'200':
description: Expected response to a valid request
content:
application/json:
schema:
$ref: "#/components/schemas/TagList"
example:
- dogs
- cats
2018-04-23 18:50:29 +00:00
default:
$ref: "#/components/responses/ErrorResponse"
2018-05-25 15:32:09 +00:00
post:
summary: Create new tag
operationId: createTag
tags:
- tags
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TagCreate'
responses:
'200':
description: Null response
default:
$ref: "#/components/responses/ErrorResponse"
2017-09-21 11:51:37 +00:00
components:
schemas:
2018-08-02 18:30:51 +00:00
Utctime:
oneOf:
- type: string
enum: [always, now]
- type: string
format: date-time
Address:
type: object
x-model: Address
required:
- city
properties:
street:
type: string
city:
type: string
2017-10-17 13:46:09 +00:00
Tag:
type: string
enum:
2017-11-14 13:36:05 +00:00
- cats
- dogs
- birds
2017-10-17 13:46:09 +00:00
Position:
type: integer
enum:
- 1
- 2
- 3
2017-09-21 11:51:37 +00:00
Pet:
type: object
x-model: Pet
allOf:
- $ref: "#/components/schemas/PetCreate"
2017-09-21 11:51:37 +00:00
required:
- id
properties:
id:
type: integer
format: int64
PetCreate:
2018-08-02 18:30:51 +00:00
type: object
x-model: PetCreate
allOf:
- $ref: "#/components/schemas/PetCreatePartOne"
- $ref: "#/components/schemas/PetCreatePartTwo"
2018-05-25 15:32:09 +00:00
oneOf:
- $ref: "#/components/schemas/Cat"
- $ref: "#/components/schemas/Bird"
PetCreatePartOne:
type: object
x-model: PetCreatePartOne
2017-09-21 11:51:37 +00:00
required:
- name
properties:
name:
type: string
tag:
2017-11-14 13:36:05 +00:00
$ref: "#/components/schemas/Tag"
address:
$ref: "#/components/schemas/Address"
PetCreatePartTwo:
type: object
x-model: PetCreatePartTwo
properties:
2017-10-17 13:46:09 +00:00
position:
$ref: "#/components/schemas/Position"
2018-02-28 12:01:05 +00:00
healthy:
type: boolean
2018-05-25 15:32:09 +00:00
Bird:
type: object
x-model: Bird
required:
- wings
properties:
wings:
$ref: "#/components/schemas/Wings"
Wings:
type: object
x-model: Wings
required:
- healthy
properties:
healthy:
type: boolean
Cat:
type: object
x-model: Cat
required:
- ears
properties:
ears:
$ref: "#/components/schemas/Ears"
Ears:
type: object
x-model: Ears
required:
- healthy
properties:
healthy:
type: boolean
2017-09-21 11:51:37 +00:00
Pets:
2017-11-06 16:50:00 +00:00
type: array
items:
$ref: "#/components/schemas/Pet"
PetsData:
2017-11-06 13:32:31 +00:00
type: object
x-model: PetsData
2017-11-06 16:50:00 +00:00
required:
- data
properties:
data:
$ref: "#/components/schemas/Pets"
PetData:
type: object
x-model: PetData
2017-11-06 16:50:00 +00:00
required:
- data
2017-11-06 13:32:31 +00:00
properties:
data:
2017-11-06 16:50:00 +00:00
$ref: "#/components/schemas/Pet"
2018-05-25 15:32:09 +00:00
TagCreate:
type: object
x-model: TagCreate
2018-05-25 15:32:09 +00:00
required:
- name
properties:
2018-08-02 18:30:51 +00:00
created:
$ref: "#/components/schemas/Utctime"
2018-05-25 15:32:09 +00:00
name:
type: string
additionalProperties: false
2018-04-23 18:50:29 +00:00
TagList:
type: array
items:
$ref: "#/components/schemas/Tag"
2017-09-21 11:51:37 +00:00
Error:
type: object
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
2017-11-06 14:57:08 +00:00
type: string
2018-04-04 10:26:21 +00:00
ExtendedError:
2021-02-09 21:37:36 +00:00
type: object
x-model: ExtendedError
2018-04-04 10:26:21 +00:00
allOf:
- $ref: "#/components/schemas/Error"
- type: object
required:
- rootCause
properties:
2019-02-26 10:37:49 +00:00
correlationId:
type: string
format: uuid
2018-04-04 10:26:21 +00:00
rootCause:
type: string
2018-07-28 20:57:49 +00:00
suberror:
$ref: "#/components/schemas/ExtendedError"
2018-05-30 10:15:17 +00:00
additionalProperties:
2019-09-03 00:38:19 +00:00
oneOf:
- type: string
- type: integer
format: int32
2017-11-06 14:57:08 +00:00
responses:
2019-03-22 01:51:47 +00:00
ErrorResponse:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ExtendedError"
PetsResponse:
description: An paged array of pets
headers:
x-next:
description: A link to the next page of responses
schema:
type: string
content:
application/json:
schema:
$ref: "#/components/schemas/PetsData"
securitySchemes:
api_key:
type: apiKey
name: api_key
in: query
petstore_auth:
2020-02-04 11:06:26 +00:00
type: http
scheme: basic