openapi: 3.0.0
info:
  title: wf-lab
  version: '1.1'
servers:
  - url: http://wf-target:5000
components:
  schemas:
    Item:
      type: object
      properties:
        id: {type: integer, format: int64}
        name: {type: string}
        qty: {type: integer, format: int64}
  responses:
    HtmlError:
      description: Flask's default HTML error page
      content:
        text/html:
          schema: {type: string}
paths:
  /health:
    get:
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok: {type: boolean}
  /items:
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name: {type: string}
                qty: {type: integer, format: int64}
      responses:
        '201':
          description: created
          content:
            application/json:
              schema: {$ref: '#/components/schemas/Item'}
  /items/{item_id}:
    parameters:
      - in: path
        name: item_id
        required: true
        schema: {type: integer}
    get:
      responses:
        '200':
          description: found
          content:
            application/json:
              schema: {$ref: '#/components/schemas/Item'}
        '404': {$ref: '#/components/responses/HtmlError'}
    delete:
      responses:
        '204': {description: deleted}
        '403': {$ref: '#/components/responses/HtmlError'}
        '404': {$ref: '#/components/responses/HtmlError'}
  /items/{item_id}/export:
    parameters:
      - in: path
        name: item_id
        required: true
        schema: {type: integer}
    post:
      responses:
        '202':
          description: queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  queued: {type: boolean}
        '404': {$ref: '#/components/responses/HtmlError'}
