birbmap/input.yml

168 lines
4.1 KiB
YAML
Raw Normal View History

2020-11-08 18:51:19 +01:00
openapi: 3.0.3
info:
title: Input Service
description: This is the input interface of the Birbnetes system.
contact:
email: tormakristof@tormakristof.eu
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 1.1.3
servers:
- url: https://birb.k8s.kmlabz.com
tags:
- name: input
description: Input Service interaction
paths:
/sample:
get:
tags:
- input
summary: Get all stored input queries
operationId: getall
responses:
200:
description: Array of input objects
content:
application/json:
schema:
$ref: '#/components/schemas/InputResponse'
404:
description: No object matching filter
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
post:
tags:
- input
summary: uploads a sample into the system
operationId: uploadFile
requestBody:
content:
multipart/form-data:
schema:
required:
- description
- file
properties:
description:
type: object
description: Metadata json
properties:
deviceid:
type: string
date:
type: string
format: date
file:
type: string
description: Wave file to upload
format: binary
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
400:
description: JSON parse error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
415:
description: Media type error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
417:
description: JSON invalid schema
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
469:
description: No file found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
470:
description: Description missing
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/sample/{tagID}:
get:
tags:
- input
summary: Get input object by ID
operationId: getInput
parameters:
- name: tagID
in: path
description: ID of input object file
required: true
schema:
type: string
format: uuid
responses:
200:
description: input object
content:
application/json:
schema:
$ref: '#/components/schemas/InputSingeResponse'
404:
description: Tag not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
components:
schemas:
InputSingeResponse:
required:
- message
- status
type: object
properties:
status:
type: string
message:
$ref: '#/components/schemas/InputObject'
InputResponse:
type: array
items:
$ref: '#/components/schemas/InputObject'
InputObject:
required:
- date
- device_id
- tag
type: object
properties:
tag:
type: string
format: uuid
date:
type: string
format: date
device_id:
type: integer
ApiResponse:
required:
- message
- status
type: object
properties:
status:
type: string
message:
type: string