#@ def response(model):
default:
  description: error
  content:
    application/json:
      schema:
        $ref: "#/components/schemas/ErrorResponse"
4XX:
  description: error
  content:
    application/json:
      schema:
        $ref: "#/components/schemas/ErrorResponse"
"200":
  description: successful operation
  content:
    application/json:
      schema:
        type: object
        properties:
          usage:
            default: null
            anyOf:
              - $ref: '#/components/schemas/Usage'
              - nullable: true
          time:
            type: number
            format: float
            description: Time spent to process this request
            example: 0.002
          status:
            type: string
            example: ok
          result: #@ model
#@ end

#@ def response_with_accepted(model):
default:
  description: error
  content:
    application/json:
      schema:
        $ref: "#/components/schemas/ErrorResponse"
4XX:
  description: error
  content:
    application/json:
      schema:
        $ref: "#/components/schemas/ErrorResponse"
"200":
  description: successful operation
  content:
    application/json:
      schema:
        type: object
        properties:
          time:
            type: number
            format: float
            description: Time spent to process this request
            example: 0.002
          status:
            type: string
            example: ok
          result: #@ model
"202":
  description: operation is accepted
  content:
    application/json:
      schema:
        type: object
        properties:
          time:
            type: number
            format: float
            description: Time spent to process this request
          status:
            type: string
#@ end

#@ def reference(model_name):
$ref: #@ "#/components/schemas/" + model_name
#@ end

#@ def type(type_name):
type: #@ type_name
#@ end

#@ def array(type_data):
type: array
items: #@ type_data
#@ end
