openapi: "3.0.0"
info:
  version: 1.0.0
  title: Swagger Petstore
  license:
    name: MIT
servers:
  - url: http://petstore.swagger.io/v1
paths:
  $ref: ./paths/_index.yaml
components:
  securitySchemes:
    oAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: 'https://api.example.com/auth/token'
  schemas:
    Pet:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string
        type:
          type: string
      discriminator:
        propertyName: type
        mapping:
          cat: components/schemas/Cat.yaml
          dog: '#/components/schemas/Dog'
      required:
        - id
        - name
        - type
    
    Dog:
      description: A representation of a dog
      allOf:
        - $ref: '#/components/schemas/Pet'
        - type: object
          properties:
            packSize:
              type: integer
              format: int32
              description: the size of the pack the dog is from
              default: 0
              minimum: 0
          required:
            - packSize
