Files
neko-rooms/OpenApi.yml
T
2021-07-25 14:52:21 +02:00

389 lines
8.7 KiB
YAML

openapi: 3.0.0
info:
title: Neko Rooms
version: 1.0.0
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/m1k1o/neko-rooms/1.0.0
tags:
- name: config
description: config endpoints
- name: rooms
description: room endpoints
paths:
/api/config/rooms:
get:
tags:
- config
summary: Get rooms config
operationId: roomsConfig
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RoomsConfig'
'500':
description: Internal server error
/api/rooms:
get:
tags:
- rooms
summary: List all rooms
operationId: roomsList
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RoomEntry'
'500':
description: Internal server error
post:
tags:
- rooms
summary: Create new room
operationId: roomCreate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RoomSettings'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RoomEntry'
'400':
description: Bad request
'500':
description: Internal server error
/api/rooms/{roomId}:
get:
tags:
- rooms
summary: Get room entry
operationId: roomGet
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RoomEntry'
'400':
description: Bad request
'500':
description: Internal server error
delete:
tags:
- rooms
summary: Remove room
operationId: roomRemove
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'204':
description: OK
'500':
description: Internal server error
/api/rooms/{roomId}/settings:
get:
tags:
- rooms
summary: Get room settings
operationId: roomSettings
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RoomSettings'
'400':
description: Bad request
'500':
description: Internal server error
/api/rooms/{roomId}/stats:
get:
tags:
- rooms
summary: Get room statistics
operationId: roomStats
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RoomStats'
'500':
description: Internal server error
/api/rooms/{roomId}/stop:
post:
tags:
- rooms
summary: Stop room
operationId: roomStop
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'204':
description: OK
'500':
description: Internal server error
/api/rooms/{roomId}/start:
post:
tags:
- rooms
summary: Start room
operationId: roomStart
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'204':
description: OK
'500':
description: Internal server error
/api/rooms/{roomId}/restart:
post:
tags:
- rooms
summary: Restart room
operationId: roomRestart
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'204':
description: OK
'500':
description: Internal server error
/api/rooms/{roomId}/recreate:
post:
tags:
- rooms
summary: Recreate room
operationId: roomRecreate
parameters:
- in: path
name: roomId
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RoomEntry'
'500':
description: Internal server error
components:
schemas:
RoomsConfig:
type: object
properties:
connections:
type: number
example: 100
neko_images:
type: array
items:
type: string
example: m1k1o/neko:latest
RoomEntry:
type: object
properties:
id:
type: string
example: bc04dace10
url:
type: string
example: http://neko-rooms.server.lan/foobar/
name:
type: string
example: foobar
neko_image:
type: string
example: m1k1o/neko:latest
max_connections:
type: number
example: 10
running:
type: boolean
example: true
status:
type: string
example: Up 2 seconds
created:
type: string
format: datetime
example: "2021-03-07T21:56:34Z"
RoomMount:
type: object
properties:
type:
type: string
enum: [ private, template, public ]
example: private
host_path:
type: string
example: /profile
container_path:
type: string
example: /home/neko/.config/chromium
RoomSettings:
type: object
properties:
name:
type: string
example: foobar
neko_image:
type: string
example: m1k1o/neko:latest
max_connections:
type: number
example: 10
user_pass:
type: string
example: neko
admin_pass:
type: string
example: admin
broadcast_pipeline:
type: string
screen:
type: string
example: 1920x1080@60
video_codec:
type: string
example: VP8
video_bitrate:
type: number
example: 3072
video_pipeline:
type: string
video_max_fps:
type: number
example: 25
audio_codec:
type: string
example: OPUS
audio_bitrate:
type: number
example: 128
audio_pipeline:
type: string
envs:
type: object
additionalProperties:
type: string
example:
CUSTOM_ENV: custom value
mounts:
type: array
items:
$ref: '#/components/schemas/RoomMount'
policies:
$ref: '#/components/schemas/Policies'
RoomStats:
type: object
properties:
connections:
type: number
example: 3
host:
type: string
example: foobar
members:
type: array
items:
$ref: '#/components/schemas/RoomMember'
RoomMember:
type: object
properties:
id:
type: string
example: foobar
displayname:
type: string
example: Foo Bar
admin:
type: boolean
example: true
muted:
type: boolean
example: false
Policies:
type: object
properties:
extensions:
type: array
items:
$ref: '#/components/schemas/Extension'
developer_tools:
type: boolean
example: true
persistent_data:
type: boolean
example: false
Extension:
type: object
properties:
id:
type: string
example: uBlock0@raymondhill.net
url:
type: string
example: https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi