@readme/oas-examples
Version:
A collection of example OpenAPI 3.x and Swagger 2.0 documents.
598 lines (597 loc) • 19.1 kB
YAML
openapi: 3.0.3
info:
title: Polymorphism support
description: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#schema-object
version: 1.0.0
servers:
- url: https://httpbin.org
paths:
'/pets':
patch:
summary: oneOf request with a nested allOf
requestBody:
content:
application/json:
schema:
oneOf:
- '$ref': '#/components/schemas/Cat'
- '$ref': '#/components/schemas/Dog'
discriminator:
propertyName: pet_type
responses:
'200':
description: Updated
'/anything/all-of-object':
post:
summary: allOf with listed objects
requestBody:
content:
application/json:
schema:
type: object
allOf:
- title: First type of object
type: object
properties:
a:
type: string
b:
type: string
- title: Second type of object
type: object
properties:
c:
type: string
d:
type: string
responses:
'200':
description: OK
'/anything/any-of-object':
post:
summary: anyOf object
requestBody:
content:
application/json:
schema:
anyOf:
- title: First type of object
type: object
properties:
a:
type: string
b:
type: string
- title: Second type of object
type: object
properties:
c:
type: string
d:
type: string
responses:
'200':
description: OK
'/anything/any-of-primitive':
post:
summary: anyOf primitive
requestBody:
content:
application/json:
schema:
anyOf:
- title: First type of primitive
type: string
- title: Second type of primitive
type: integer
responses:
'200':
description: OK
'/any-of-with-type':
post:
summary: anyOf With Type
description: AnyOf's with a top level type parameter should not render that
type outside of their options
requestBody:
content:
application/json:
schema:
type: object
properties:
event:
type: string
anyOf:
- title: First type of primitive
type: string
- title: Second type of primitive
type: string
responses:
'204':
description: Provides no response body
'/anything/one-of-object':
post:
summary: oneOf object
requestBody:
content:
application/json:
schema:
oneOf:
- title: First type of object
type: object
properties:
a:
type: string
b:
type: string
- title: Second type of object
type: object
properties:
c:
type: string
d:
type: string
responses:
'200':
description: OK
'/anything/one-of-primitive':
post:
summary: oneOf primitive
requestBody:
content:
application/json:
schema:
oneOf:
- title: First type of primitive
type: string
- title: Second type of primitive
type: integer
responses:
'200':
description: OK
'/anything/one-of-object-ref':
post:
summary: oneOf object with $ref pointers
requestBody:
content:
application/json:
schema:
oneOf:
- '$ref': '#/components/schemas/object1'
- '$ref': '#/components/schemas/object2'
responses:
'200':
description: OK
'/one-of-complex':
post:
summary: oneOf object with a complex schema
requestBody:
required: true
content:
application/json:
schema:
type: object
oneOf:
- title: Andalucia
type: object
properties:
listing_id:
type: integer
regulatory_body:
type: string
registration:
type: object
properties:
permit_number:
type: string
registration_ownership:
type: string
enum:
- OWNER
- PROPERTY_MANAGER
email:
type: string
full_name:
type: string
identification_number:
type: string
required:
- permit_number
- registration_ownership
- email
- full_name
- identification_number
exemption:
type: object
properties:
reason:
type: string
enum:
- LISTING_TYPE_NOT_INCLUDED
- LISTING_NOT_TOURIST_ACCOMMODATION
registration_ownership:
type: string
enum:
- OWNER
- PROPERTY_MANAGER
email:
type: string
full_name:
type: string
identification_number:
type: string
required:
- reason
- registration_ownership
- email
- full_name
- identification_number
required:
- listing_id
- regulatory_body
- title: Baltimore
type: object
properties:
listing_id:
type: integer
regulatory_body:
type: string
registration:
type: object
properties:
permit_number:
type: string
expiration_date:
type: string
full_name:
type: string
email:
type: string
listing_address:
type: string
attestation_existing_registration:
type: boolean
required:
- permit_number
- expiration_date
- full_name
- email
- listing_address
- attestation_existing_registration
exemption:
type: object
properties:
exemption_reason:
type: string
enum:
- hotel_motel
full_name:
type: string
email:
type: string
attestation_exemption_claim:
type: boolean
required:
- exemption_reason
- full_name
- email
- attestation_exemption_claim
required:
- listing_id
- regulatory_body
- title: Boston
type: object
properties:
listing_id:
type: integer
regulatory_body:
type: string
registration:
type: object
properties:
permit_number:
type: string
email:
type: string
full_name:
type: string
listing_address:
type: string
attestation:
type: boolean
required:
- permit_number
- email
- full_name
- listing_address
- attestation
exemption:
type: object
properties:
exemption_reason:
type: string
enum:
- hotel_motel
- bed_breakfast_lodging
- institutional_business
- hospitals
listing_address:
type: string
attestation:
type: boolean
required:
- exemption_reason
- listing_address
- attestation
required:
- listing_id
- regulatory_body
- title: Catalonia
type: object
properties:
listing_id:
type: integer
regulatory_body:
type: string
registration:
type: object
properties:
permit_number:
type: string
registration_ownership:
type: string
email:
type: string
full_name:
type: string
identification_number:
type: string
required:
- permit_number
- registration_ownership
- email
- full_name
- identification_number
exemption:
type: object
properties:
reason:
type: string
enum:
- listing_not_full_building
- listing_is_shared_room
- other_exemption_reason
registration_ownership:
type: string
enum:
- OWNER
- PROPERTY_MANAGER
email:
type: string
full_name:
type: string
identification_number:
type: string
required:
- reason
- registration_ownership
- email
- full_name
- identification_number
required:
- listing_id
- regulatory_body
- title: Chicago
type: object
properties:
listing_id:
type: integer
regulatory_body:
type: string
registration:
type: object
properties:
permit_number:
type: string
required:
- permit_number
required:
- listing_id
- regulatory_body
- registration
- title: Cuba
type: object
properties:
listing_id:
type: integer
regulatory_body:
type: string
affiliation:
type: object
properties:
attestation_entrepreneur:
type: boolean
listing_address:
type: string
required:
- attestation_entrepreneur
- listing_address
required:
- listing_id
- regulatory_body
- affiliation
- title: Denmark
type: object
properties:
listing_id:
type: integer
regulatory_body:
type: string
categorization:
type: object
properties:
listing_type:
type: string
enum:
- primary_residence
- houseboat
- tent
- tree_house
- hotel_or_hostel
- serviced_apartment
- trailer
- mobile_home
- summer_house
data_reporting_status:
type: string
enum:
- private_activity
- business_activity
data_reporting_bbr:
type: string
attestation:
type: boolean
attestation_conditional:
type: boolean
required:
- listing_type
required:
- listing_id
- regulatory_body
- categorization
responses:
'200':
description: OK
'/anything/nested-one-of-object-ref':
post:
summary: nested oneOf object with $ref pointers
requestBody:
content:
application/json:
schema:
type: object
properties:
config:
oneOf:
- '$ref': '#/components/schemas/object1'
- '$ref': '#/components/schemas/object2'
additionalProperties: false
responses:
'200':
description: OK
'/anything/nested-one-of-ref':
post:
requestBody:
'$ref': '#/components/requestBodies/nested-one-of-ref'
responses:
'200':
description: OK
'/anything/nested-one-of-object-with-nested-one-of':
post:
requestBody:
content:
application/json:
schema:
type: object
properties:
config:
oneOf:
- '$ref': '#/components/schemas/object1'
- '$ref': '#/components/schemas/object2'
- oneOf:
- '$ref': '#/components/schemas/Cat'
- '$ref': '#/components/schemas/Dog'
discriminator:
propertyName: pet_type
additionalProperties: false
responses:
'200':
description: OK
'/one-of-with-type':
post:
summary: One Of With Type
description: OneOf's with a top level type parameter should not render that
type outside of their options
requestBody:
content:
application/json:
schema:
type: object
properties:
event:
type: string
oneOf:
- description: oneof one
- description: oneof two
responses:
'204':
description: Provides no response body
components:
requestBodies:
nested-one-of-ref:
required: true
content:
application/json:
schema:
type: object
properties:
config:
oneOf:
- '$ref': '#/components/schemas/string1'
- '$ref': '#/components/schemas/string2'
additionalProperties: false
schemas:
Pet:
type: object
required:
- pet_type
properties:
pet_type:
type: string
discriminator:
propertyName: pet_type
Dog:
title: Woof
allOf:
- '$ref': '#/components/schemas/Pet'
- type: object
properties:
bark:
type: boolean
breed:
type: string
enum:
- Dingo
- Husky
- Retriever
- Shepherd
Cat:
title: Meow
type: object
allOf:
- '$ref': '#/components/schemas/Pet'
- type: object
properties:
hunts:
type: boolean
age:
type: integer
object1:
title: First type of object
type: object
properties:
a:
type: string
b:
type: string
object2:
title: Second type of object
type: object
properties:
c:
type: string
d:
type: string
string1:
type: string
string2:
type: string