---
openapi: 3.0.3
info:
  title: Path Level server declarations
  description: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#serverVariableObject
  version: 1.0.0
servers:
  - url: https://{name}.example.com:{port}/{basePath}
    variables:
      name:
        default: demo
      port:
        default: '443'
      basePath:
        default: v2
  - url: http://{name}.local/{basePath}
    variables:
      name:
        default: demo
      basePath:
        default: v1
  - url: https://{name}.readme.io:{port}/{basePath}
    variables:
      name:
        default: demo
      port:
        default: '3000'
        enum:
          - '3000'
          - '5000'
      basePath:
        description: path description
        default: v1
paths:
  '/relative-path-server':
    servers:
      - url: '/v2'
    get:
      summary: Relative path-level server
      tags:
        - Path
      responses:
        '200':
          description: OK
  '/relative-operation-server':
    get:
      summary: Relative operation-level server
      tags:
        - Operation
      servers:
        - url: '/v3'
      responses:
        '200':
          description: OK
  '/operation-server-variables':
    get:
      summary: Operation-level server variables
      tags:
        - Operation
      servers:
        - url: https://operation.example.com/{version}
          variables:
            version:
              default: v3
      responses:
        '200':
          description: OK
  '/path-item-ref-server':
    '$ref': '#/paths/~1path-item-server-source'
  '/path-item-server-source':
    servers:
      - url: https://path-item-ref.example.com
    get:
      summary: Path item ref server source
      tags:
        - Path
      responses:
        '200':
          description: OK
  '/empty-operation-servers':
    servers:
      - url: https://empty-operation-path.example.com
    get:
      summary: Empty operation-level servers
      tags:
        - Operation
      servers: []
      responses:
        '200':
          description: OK
  '/empty-path-item-servers':
    servers: []
    get:
      summary: Empty path-level servers
      tags:
        - Path
      responses:
        '200':
          description: OK
