Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- openapi: 3.0.0-RC1
- servers:
- - url: http://petstore.swagger.io/v2
- - url: https://development.gigantic-server.com/v1
- description: Development server
- - url: https://{username}.gigantic-server.com:{port}/{basePath}
- x-server: server extension
- description: The production API server
- variables:
- username:
- # note! no enum here means it is an open value
- default: demo
- description: this value is assigned by the service provider, in this example `gigantic-server.com`
- port:
- enum:
- - 8443
- - 443
- default: 8443
- basePath:
- # open meaning there is the opportunity to use special base paths as assigned by the provider, default is `v2`
- default: v2
- description: testing overwriting
- enum:
- - 2222
- - 333
- x-origin:
- - url: http://petstore.swagger.io/v2/swagger.json
- format: swagger
- version: '2.0'
- converter:
- url: https://github.com/mermade/swagger2openapi
- version: 1.2.1
- x-api-title: pet store test api
- security:
- - api_key: []
- - tokenAuth: []
- info:
- description: 'This is a sample server Petstore'
- version: 1.0.0
- title: Sample Pet Store App
- termsOfService: http://swagger.io/terms/
- x-info: info extension
- contact:
- name: API Support
- url: http://www.example.com/support
- email: support@example.com
- x-contact: contact extension
- license:
- name: Apache 2.0
- url: http://www.apache.org/licenses/LICENSE-2.0.html
- x-license: license extension
- version: 1.0.1
- tags:
- - name: pet
- description: Everything about your Pets
- externalDocs:
- description: Find out more
- url: http://swagger.io
- - name: store
- description: Access to Petstore orders
- - name: user
- description: Operations about user
- externalDocs:
- description: Find out more about our store
- url: http://swagger.io
- paths:
- "/pathItemRef":
- "$ref": 'http://localhost:${dynamicPort}/remote/path'
- "/pathItemRef2":
- "$ref": '#/paths/~1pet'
- "/pet":
- summary: summary
- description: description
- post:
- externalDocs:
- description: Find out more
- url: http://swagger.io
- tags:
- - pet
- summary: Add a new pet to the store
- description: ''
- operationId: addPet
- parameters: []
- responses:
- '405':
- description: Invalid input
- headers:
- X-Rate-Limit:
- description: calls per hour allowed by the user
- schema:
- title: header schema
- type: integer
- format: int32
- X-Expires-After:
- description: date in UTC when token expires
- schema:
- type: string
- format: date-time
- security:
- - petstore_auth:
- - write:pets
- - read:pets
- requestBody:
- "$ref": "#/components/requestBodies/requestBody1"
- description: user to add to the system
- required: true
- content:
- 'application/json':
- schema:
- $ref: '#/components/schemas/User'
- examples:
- user:
- summary: User Example
- externalValue: 'http://foo.bar/examples/user-example.json'
- 'application/xml':
- schema:
- $ref: '#/components/schemas/User'
- examples:
- user:
- summary: User Example in XML
- externalValue: 'http://foo.bar/examples/user-example.xml'
- 'text/plain':
- examples:
- user:
- summary: User example in text plain format
- externalValue: 'http://foo.bar/examples/user-example.txt'
- '*/*':
- examples:
- user:
- summary: User example in other format
- externalValue: 'http://foo.bar/examples/user-example.whatever'
- servers:
- - url: http://petstore.swagger.io/v2
- parameters:
- - name: status
- in: query
- description: Status values that need to be considered for filter
- required: true
- schema:
- type: array
- items:
- type: string
- enum:
- - available
- - pending
- - sold
- default: available
- - "$ref": "#/components/parameters/skipParam"
- put:
- tags:
- - pet
- summary: Update an existing pet
- description: ''
- operationId: updatePet
- parameters: []
- responses:
- '400':
- description: A complex object array response
- content:
- application/json:
- schema:
- type: array
- items:
- $ref: '#/components/schemas/VeryComplexType'
- '404':
- description: Pet not found
- '405':
- description: Validation exception
- security:
- - petstore_auth:
- - write:pets
- - read:pets
- requestBody:
- "$ref": "#/components/requestBodies/requestBody1"
- "/pet/findByStatus":
- get:
- tags:
- - pet
- summary: Finds Pets by status
- description: Multiple status values can be provided with comma separated strings
- operationId: findPetsByStatus
- parameters:
- - name: status
- in: query
- description: Status values that need to be considered for filter
- required: true
- example: "example"
- schema:
- title: title test
- format: int64
- minimum: 1
- maximum: 10
- allOf:
- - $ref: '#/components/schemas/Pet'
- - type: object
- properties:
- huntingSkill:
- type: string
- description: The measured skill for hunting
- enum:
- - clueless
- - lazy
- - adventurous
- - aggressive
- xml:
- namespace: http://example.com/schema/sample
- prefix: sample
- enum:
- - available
- - pending
- - sold
- type: object
- properties:
- id:
- type: integer
- format: int64
- name:
- type: string
- xml:
- namespace: http://inside/properties/schema
- prefix: inside properties schema
- required:
- - name
- - pet
- example:
- name: Puma
- id: 1
- externalDocs:
- description: External Docs Inside Schema
- url: http://swagger.io inside Schema
- items:
- type: string
- enum:
- - available
- - pending
- - sold
- default: available
- content:
- 'application/json':
- schema:
- type: array
- items:
- type: string
- example: example string
- examples:
- list:
- summary: List of Names
- value:
- - Bob
- - Diane
- - Mary
- - Bill
- empty:
- summary: Empty
- value: {}
- encoding:
- historyMetadata:
- # require XML Content-Type in utf-8 encoding
- contentType: application/xml; charset=utf-8
- profileImage:
- # only accept png/jpeg
- contentType: image/png, image/jpeg
- headers:
- X-Rate-Limit:
- description: calls per hour allowed by the user
- schema:
- type: integer
- format: int32
- 'application/xml':
- examples:
- list:
- summary: List of names
- value: "<Users><User name='Bob'/><User name='Diane'/><User name='Mary'/><User name='Bill'/></Users>"
- empty:
- summary: Empty list
- value: "<Users/>"
- 'text/plain':
- examples:
- list:
- summary: List of names
- value: "Bob,Diane,Mary,Bill"
- empty:
- summary: Empty
- value: ""
- responses:
- '200':
- description: successful operation
- content:
- application/xml:
- schema:
- type: array
- items:
- "$ref": "#/components/schemas/Pet"
- application/json:
- schema:
- type: array
- items:
- "$ref": "#/components/schemas/Pet"
- '400':
- description: Invalid status value
- security:
- - petstore_auth:
- - write:pets
- - read:pets
- requestBody:
- description: pet store to add to the system
- required: true
- content:
- multipart/mixed:
- schema:
- type: object
- properties:
- id:
- # default is text/plain
- type: string
- format: uuid
- "$ref": "#/components/schemas/Pet"
- address:
- # default is application/json
- type: object
- properties: {}
- historyMetadata:
- # need to declare XML format!
- description: metadata in XML format
- type: object
- properties: {}
- profileImage:
- # default is application/octet-stream, need to declare an image type only!
- type: string
- format: binary
- encoding:
- historyMetadata:
- # require XML Content-Type in utf-8 encoding
- contentType: application/xml; charset=utf-8
- profileImage:
- # only accept png/jpeg
- contentType: image/png, image/jpeg
- headers:
- X-Rate-Limit:
- description: calls per hour allowed by the user
- schema:
- type: integer
- format: int32
- X-Expires-After:
- description: date in UTC when token expires
- schema:
- type: string
- format: date-time
- callbacks:
- mainHook:
- '$request.body#/url':
- post:
- responses:
- '200':
- description: webhook successfully processed operation
- "/pet/findByTags":
- get:
- tags:
- - pet
- summary: Finds Pets by tags
- description: Muliple tags can be provided with comma separated strings. Use
- tag1, tag2, tag3 for testing.
- operationId: findPetsByTags
- parameters:
- - name: tags
- in: query
- description: Tags to filter by
- required: true
- schema:
- type: array
- items:
- type: string
- responses:
- '200':
- description: successful operation
- content:
- application/xml:
- schema:
- type: array
- items:
- "$ref": "#/components/schemas/Pet"
- application/json:
- schema:
- type: array
- items:
- "$ref": "#/components/schemas/Pet"
- '400':
- description: Invalid tag value
- callbacks:
- mainHook:
- '$ref': "#/components/callbacks/failed"
- security:
- - petstore_auth:
- - write:pets
- - read:pets
- deprecated: true
- "/pet/{petId}":
- get:
- tags:
- - pet
- summary: Find pet by ID
- description: Returns a single pet
- operationId: getPetById
- parameters:
- - name: petId
- in: path
- description: ID of pet to return
- required: true
- schema:
- type: integer
- format: int64
- responses:
- '200':
- description: successful operation
- content:
- application/xml:
- schema:
- "$ref": "#/components/schemas/Pet"
- application/json:
- schema:
- "$ref": "#/components/schemas/Pet"
- callbacks:
- mainHook:
- '$request.body#/url':
- post:
- responses:
- '200':
- description: successful operation
- content:
- application/xml:
- schema:
- "$ref": "#/components/schemas/Pet"
- security:
- - api_key: []
- post:
- tags:
- - pet
- summary: Updates a pet in the store with form data
- description: ''
- operationId: updatePetWithForm
- parameters:
- - name: petId
- in: path
- description: ID of pet that needs to be updated
- required: true
- schema:
- type: integer
- format: int64
- responses:
- '405':
- description: Invalid input
- security:
- - petstore_auth:
- - write:pets
- - read:pets
- requestBody:
- content:
- application/x-www-form-urlencoded:
- schema:
- type: object
- properties:
- name:
- description: Updated name of the pet
- type: string
- required: false
- status:
- description: Updated status of the pet
- type: string
- required: false
- delete:
- tags:
- - pet
- summary: Deletes a pet
- description: ''
- operationId: deletePet
- parameters:
- - name: api_key
- in: header
- required: false
- schema:
- type: string
- - name: petId
- in: path
- description: Pet id to delete
- required: true
- schema:
- type: integer
- format: int64
- responses:
- '400':
- description: Invalid ID supplied
- '404':
- description: Pet not found
- security:
- - petstore_auth:
- - write:pets
- - read:pets
- "/pet/{petId}/uploadImage":
- post:
- tags:
- - pet
- summary: uploads an image
- description: ''
- operationId: uploadFile
- parameters:
- - name: petId
- in: path
- description: ID of pet to update
- required: true
- schema:
- type: integer
- format: int64
- responses:
- '200':
- description: successful operation
- content:
- application/json:
- schema:
- "$ref": "#/components/schemas/ApiResponse"
- security:
- - petstore_auth:
- - write:pets
- - read:pets
- requestBody:
- content:
- application/octet-stream:
- schema:
- type: string
- format: binary
- "/store/inventory":
- get:
- tags:
- - store
- summary: Returns pet inventories by status
- description: Returns a map of status codes to quantities
- operationId: getInventory
- parameters: []
- responses:
- '200':
- description: successful operation
- content:
- application/json:
- schema:
- type: object
- additionalProperties:
- type: integer
- format: int32
- security:
- - api_key: []
- "/store/order":
- post:
- tags:
- - store
- summary: Place an order for a pet
- description: ''
- operationId: placeOrder
- parameters: []
- responses:
- '200':
- description: successful operation
- content:
- application/xml:
- schema:
- "$ref": "#/components/schemas/Order"
- application/json:
- schema:
- "$ref": "#/components/schemas/Order"
- '400':
- description: Invalid Order
- requestBody:
- content:
- application/json:
- description: order placed for purchasing the pet
- schema:
- "$ref": "#/components/schemas/Order"
- "/store/order/{orderId}":
- get:
- tags:
- - store
- summary: Find purchase order by ID
- description: For valid response try integer IDs with value >= 1 and <= 10. Other
- values will generated exceptions
- operationId: getOrderById
- parameters:
- - name: orderId
- in: path
- description: ID of pet that needs to be fetched
- required: true
- schema:
- type: integer
- format: int64
- minimum: 1
- maximum: 10
- responses:
- '200':
- description: successful operation
- content:
- application/xml:
- schema:
- "$ref": "#/components/schemas/Order"
- application/json:
- schema:
- "$ref": "#/components/schemas/Order"
- '400':
- description: Invalid ID supplied
- '404':
- description: Order not found
- delete:
- tags:
- - store
- summary: Delete purchase order by ID
- description: For valid response try integer IDs with positive integer value.
- Negative or non-integer values will generate API errors
- operationId: deleteOrder
- parameters:
- - name: orderId
- in: path
- description: ID of the order that needs to be deleted
- required: true
- schema:
- type: integer
- format: int64
- minimum: 1
- responses:
- '400':
- description: Invalid ID supplied
- '404':
- description: Order not found
- "/user":
- post:
- tags:
- - user
- summary: Create user
- description: This can only be done by the logged in user.
- operationId: createUser
- parameters: []
- responses:
- default:
- description: successful operation
- requestBody:
- content:
- application/json:
- description: Created user object
- schema:
- "$ref": "#/components/schemas/User"
- "/user/createWithArray":
- post:
- tags:
- - user
- summary: Creates list of users with given input array
- description: ''
- operationId: createUsersWithArrayInput
- parameters: []
- responses:
- default:
- description: successful operation
- requestBody:
- "$ref": "#/components/requestBodies/requestBody2"
- "/user/createWithList":
- post:
- tags:
- - user
- summary: Creates list of users with given input array
- description: ''
- operationId: createUsersWithListInput
- parameters: []
- responses:
- default:
- description: successful operation
- requestBody:
- "$ref": "#/components/requestBodies/requestBody2"
- "/user/login":
- get:
- tags:
- - user
- summary: Logs user into the system
- description: ''
- operationId: loginUser
- parameters:
- - name: username
- in: query
- description: The user name for login
- required: true
- schema:
- type: string
- - name: password
- in: query
- description: The password for login in clear text
- required: true
- schema:
- type: string
- format: password
- responses:
- '200':
- description: successful operation
- headers:
- X-Rate-Limit:
- description: calls per hour allowed by the user
- schema:
- type: integer
- format: int32
- X-Expires-After:
- description: date in UTC when token expires
- schema:
- type: string
- format: date-time
- content:
- application/xml:
- schema:
- type: string
- application/json:
- schema:
- type: string
- '400':
- description: Invalid username/password supplied
- "/user/logout":
- get:
- tags:
- - user
- summary: Logs out current logged in user session
- description: ''
- operationId: logoutUser
- parameters: []
- responses:
- default:
- description: successful operation
- "/user/{username}":
- get:
- tags:
- - user
- summary: Get user by user name
- description: ''
- operationId: getUserByName
- parameters:
- - name: username
- in: path
- description: 'The name that needs to be fetched. Use user1 for testing. '
- required: true
- schema:
- type: string
- responses:
- '200':
- description: successful operation
- content:
- application/xml:
- schema:
- "$ref": "#/components/schemas/User"
- application/json:
- schema:
- "$ref": "#/components/schemas/User"
- '400':
- description: Invalid username supplied
- '404':
- description: User not found
- put:
- tags:
- - user
- summary: Updated user
- description: This can only be done by the logged in user.
- operationId: updateUser
- parameters:
- - name: username
- in: path
- description: name that need to be updated
- required: true
- schema:
- type: string
- responses:
- '400':
- description: Invalid user supplied
- '404':
- description: User not found
- requestBody:
- content:
- application/json:
- description: Updated user object
- schema:
- "$ref": "#/components/schemas/User"
- delete:
- tags:
- - user
- summary: Delete user
- description: This can only be done by the logged in user.
- operationId: deleteUser
- parameters:
- - name: username
- in: path
- description: The name that needs to be deleted
- required: true
- schema:
- type: string
- responses:
- '400':
- description: Invalid username supplied
- '404':
- description: User not found
- externalDocs:
- description: Find out more about Swagger
- url: http://swagger.io
- components:
- schemas:
- RemoteSchema:
- "$ref": "http://localhost:${dynamicPort}/remote/schema#/components/schemas/RemoteSchema"
- VeryComplexType:
- type: integer
- format: int32
- ExtendedErrorModel:
- allOf:
- - type: object
- required:
- - rootCause
- properties:
- rootCause:
- type: string
- "$ref": "#/components/schemas/Category"
- Order:
- type: object
- not:
- type: integer
- format: int32
- additionalProperties:
- type: integer
- properties:
- id:
- type: integer
- format: int64
- petId:
- type: integer
- format: int64
- quantity:
- type: integer
- format: int32
- shipDate:
- type: string
- format: date-time
- status:
- type: string
- description: Order Status
- enum:
- - placed
- - approved
- - delivered
- complete:
- type: boolean
- default: false
- xml:
- name: Order
- OrderRef:
- type: object
- not:
- type: integer
- format: int32
- "$ref": "#/components/schemas/Category"
- additionalProperties:
- type: integer
- "$ref": "http://localhost:${dynamicPort}/remote/schema#/components/schemas/User"
- properties:
- id:
- type: integer
- format: int64
- petId:
- type: integer
- format: int64
- quantity:
- type: integer
- format: int32
- shipDate:
- type: string
- format: date-time
- status:
- type: string
- description: Order Status
- enum:
- - placed
- - approved
- - delivered
- complete:
- type: boolean
- default: false
- xml:
- name: Order
- Category:
- type: object
- properties:
- id:
- type: integer
- format: int64
- name:
- type: string
- xml:
- name: Category
- User:
- type: object
- properties:
- id:
- type: integer
- format: int64
- username:
- type: string
- firstName:
- type: string
- lastName:
- type: string
- email:
- type: string
- password:
- type: string
- phone:
- type: string
- userStatus:
- type: integer
- format: int32
- description: User Status
- xml:
- name: User
- Tag:
- type: object
- properties:
- id:
- type: integer
- format: int64
- name:
- type: string
- xml:
- name: Tag
- Pet:
- type: object
- required:
- - name
- - photoUrls
- properties:
- id:
- type: integer
- format: int64
- category:
- "$ref": "#/components/schemas/Category"
- user:
- type: string
- example: doggie
- "$ref": "http://localhost:${dynamicPort}/remote/schema#/components/schemas/User"
- photoUrls:
- type: array
- xml:
- name: photoUrl
- wrapped: true
- items:
- type: string
- tags:
- type: array
- xml:
- name: tag
- wrapped: true
- items:
- "$ref": "http://localhost:${dynamicPort}/remote/schema#/components/schemas/ExampleSchema"
- status:
- type: string
- description: pet status in the store
- enum:
- - available
- - pending
- - sold
- xml:
- name: Pet
- ApiResponse:
- type: object
- required:
- - name
- - photoUrls
- properties:
- code:
- type: integer
- format: int32
- type:
- type: string
- message:
- type: string
- responses:
- Found:
- description: Entity not found.
- "$ref": "http://localhost:${dynamicPort}/remote/response#/responses/RemoteResponse"
- NotFound:
- description: Entity not found.
- IllegalInput:
- description: Illegal input for operation.
- headers:
- X-Ref-Limit-Limit:
- "$ref": "#/components/headers/X-Rate-Limit-Reset"
- links:
- address:
- "$ref": "#/components/links/unsubscribe"
- GeneralError:
- description: General Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ExtendedErrorModel'
- parameters:
- contentParameter:
- in: query
- name: coordinates
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ExtendedErrorModel'
- examples:
- cat:
- summary: An example of a cat
- value:
- name: Fluffy
- petType: Cat
- color: White
- gender: male
- breed: Persian
- refParam:
- "$ref": "#/components/parameters/limitParam"
- remoteParameter:
- "$ref": "http://localhost:${dynamicPort}/remote/parameter"
- newParam:
- name: skip
- in: query
- description: number of items to skip
- required: true
- schema:
- type: integer
- format: int32
- "$ref": "#/components/schemas/Tag"
- skipParam:
- name: skip
- in: query
- description: number of items to skip
- required: true
- schema:
- type: integer
- format: int32
- limitParam:
- name: limit
- in: query
- description: max records to return
- required: true
- schema:
- type: integer
- format: int32
- examples:
- referenceCat:
- "$ref": "http://localhost:${dynamicPort}/remote/example"
- cat:
- summary: An example of a cat
- value:
- name: Fluffy
- petType: Cat
- color: White
- gender: male
- breed: Persian
- dog:
- summary: An example of a dog with a cat's name
- value:
- name: Puma
- petType: Dog
- color: Black
- gender: Female
- breed: Mixed
- frog:
- $ref: "#/components/examples/cat"
- requestBodies:
- reference:
- "$ref": "http://localhost:${dynamicPort}/remote/requestBody#/requestBodies/remote_requestBody"
- requestBody1:
- description: request body in components
- content:
- application/json:
- description: Pet object that needs to be added to the store
- schema:
- "$ref": "#/components/schemas/Pet"
- application/xml:
- description: Pet object that needs to be added to the store
- schema:
- "$ref": "#/components/schemas/Pet"
- requestBody2:
- content:
- application/json:
- description: List of user object
- schema:
- type: array
- items:
- "$ref": "#/components/schemas/User"
- requestBody3:
- "$ref": "#/components/requestBodies/requestBody2"
- securitySchemes:
- reference:
- "$ref": "#/components/securitySchemes/api_key"
- remote_reference:
- "$ref": 'http://localhost:${dynamicPort}/remote/security/petstore_remote'
- petstore_auth:
- type: oauth2
- flows:
- implicit:
- authorizationUrl: http://petstore.swagger.io/oauth/dialog
- scopes:
- write:pets: modify pets in your account
- read:pets: read your pets
- api_key:
- type: apiKey
- name: api_key
- in: header
- headers:
- X-Ref-Limit-Limit:
- "$ref": "#/components/headers/X-Rate-Limit-Reset"
- X-Rate-Limit-Limit:
- description: The number of allowed requests in the current period
- schema:
- type: integer
- example: "This is a header example"
- X-Rate-Limit-Remaining:
- description: The number of remaining requests in the current period
- schema:
- type: integer
- "$ref": "http://localhost:${dynamicPort}/remote/schema#/components/schemas/User"
- X-Rate-Limit-Reset:
- description: The number of seconds left in the current period
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ExtendedErrorModel'
- examples:
- - $ref: "#/components/examples/dog"
- links:
- referenced:
- "$ref": "#/components/links/unsubscribe"
- unsubscribe:
- operationId: cancelHookCallback
- parameters:
- id: $response.body#/hookId
- x-link: link extension
- subscribe:
- "$ref": "http://localhost:${dynamicPort}/remote/link"
- callbacks:
- remoteCallback:
- "$ref": "http://localhost:${dynamicPort}/remote/callback"
- referenced:
- "$ref": "#/components/callbacks/failed"
- heartbeat:
- '$request.query.heartbeat-url':
- post:
- requestBody:
- $ref: '#/components/requestBodies/requestBody3'
- responses:
- '200':
- description: Consumer acknowledged the callback
- failed:
- '$response.body#/failedUrl':
- post:
- requestBody:
- $ref: '#/components/requestBodies/requestBody3'
- responses:
- '200':
- description: Consumer acknowledged the callback failed
- success:
- '$response.body#/successUrl':
- post:
- requestBody:
- $ref: '#/components/requestBodies/requestBody1'
- responses:
- '200':
- description: Consumer acknowledged the callback
- x-component:
- - url: http://component.swagger.io/v2/swagger.json
- format: OAS
- version: '3.0'
- converter:
- url: https://github.com/mermade/oas3
- version: 1.2.3
- x-api-title: pet store test api in components
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement