UNPKG

@readme/oas-examples

Version:

A collection of example OpenAPI 3.x and Swagger 2.0 documents.

871 lines (870 loc) 27 kB
{ "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" } } } }