175 lines
3.9 KiB
YAML
175 lines
3.9 KiB
YAML
|
openapi: 3.1.0
|
||
|
info:
|
||
|
title: PVV Ozai
|
||
|
description: PVV Ozai
|
||
|
version: 1.0.0
|
||
|
servers:
|
||
|
- url: https://ozai.pvv.ntnu.no
|
||
|
paths:
|
||
|
/{gameId}:
|
||
|
get:
|
||
|
summary: Find pet by ID
|
||
|
description: Returns a single pet
|
||
|
operationId: getGameById
|
||
|
parameters:
|
||
|
- name: gameId
|
||
|
in: path
|
||
|
description: ID of game
|
||
|
required: true
|
||
|
schema:
|
||
|
type: integer
|
||
|
format: int64
|
||
|
responses:
|
||
|
'200':
|
||
|
description: successful operation
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/GameState'
|
||
|
application/xml:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/GameState'
|
||
|
'400':
|
||
|
description: Invalid ID supplied
|
||
|
'404':
|
||
|
description: Game not found
|
||
|
put:
|
||
|
summary: Submit move
|
||
|
description: ''
|
||
|
operationId: submitMove
|
||
|
parameters:
|
||
|
- name: gameId
|
||
|
in: path
|
||
|
description: ID of pet that needs to be updated
|
||
|
required: true
|
||
|
schema:
|
||
|
type: integer
|
||
|
format: int64
|
||
|
- name: move
|
||
|
in: query
|
||
|
description: Mov
|
||
|
schema:
|
||
|
type: string
|
||
|
- name: status
|
||
|
in: query
|
||
|
description: Status of pet that needs to be updated
|
||
|
schema:
|
||
|
type: string
|
||
|
responses:
|
||
|
'400':
|
||
|
description: Invalid input
|
||
|
components:
|
||
|
schemas:
|
||
|
GameState:
|
||
|
type: object
|
||
|
properties:
|
||
|
currentPlayer:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
bag:
|
||
|
$ref: '#/components/schemas/TileSet'
|
||
|
lid:
|
||
|
$ref: '#/components/schemas/TileSet'
|
||
|
factories:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/TileSet'
|
||
|
market:
|
||
|
$ref: '#/components/schemas/TileSetWithStart'
|
||
|
players:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Player'
|
||
|
TileSet:
|
||
|
type: object
|
||
|
properties:
|
||
|
blue:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
yellow:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
red:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
black:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
white:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
TileSetWithStart:
|
||
|
type: object
|
||
|
properties:
|
||
|
start:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
blue:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
yellow:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
red:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
black:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
white:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
Player:
|
||
|
type: object
|
||
|
properties:
|
||
|
points:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
patternLines:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/PatternLine'
|
||
|
wall:
|
||
|
$ref: '#/components/schemas/Wall'
|
||
|
floor:
|
||
|
$ref: '#/components/schemas/TileSetWithStart'
|
||
|
PatternLine:
|
||
|
type: object
|
||
|
properties:
|
||
|
color:
|
||
|
$ref: '#/components/schemas/Color'
|
||
|
number:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
Color:
|
||
|
enum: ["blue", "yellow", "red", "black", "white"]
|
||
|
Wall:
|
||
|
type: object
|
||
|
properties:
|
||
|
blue:
|
||
|
type: boolean
|
||
|
yellow:
|
||
|
type: boolean
|
||
|
red:
|
||
|
type: boolean
|
||
|
black:
|
||
|
type: boolean
|
||
|
white:
|
||
|
type: boolean
|
||
|
Move:
|
||
|
type: object
|
||
|
properties:
|
||
|
player:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
market:
|
||
|
type: boolean
|
||
|
factory:
|
||
|
type: integer
|
||
|
format: int32
|
||
|
color:
|
||
|
$ref: '#/components/schemas/Color'
|
||
|
patternLine:
|
||
|
type: integer
|
||
|
format: int32
|