openapi: 3.0.0 info: title: PVV Ozai description: PVV Ozai version: 1.0.0 servers: - url: https://ozai.pvv.ntnu.no paths: /game: post: summary: Create a game description: Creates a game operationId: createGame parameters: - name: playerNames in: query description: Unique list of players to join the game. (Length of 2-4) required: true schema: $ref: '#/components/schemas/NewGameOptionsNew' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/GameResponse' '400': description: Invalid input /game/{gameId}: get: summary: see the game description: retunrs the game state. 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 game that needs to be updated required: true schema: type: integer format: int64 - name: playerName in: header description: name of player/bot required: true schema: type: string - name: move in: query description: Mov schema: $ref: '#/components/schemas/Move' responses: '400': description: Invalid input components: schemas: GameState: type: object properties: playerNames: type: array items: type: string currentPlayerName: type: string currentPlayerId: 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: description: internal playerid (is this player 1 or 2) type: integer format: int32 market: type: boolean factory: type: integer format: int32 color: $ref: '#/components/schemas/Color' patternLine: type: integer format: int32 PlayerName: type: string NewGameOptionsNew: type: object properties: player_names: type: array items: $ref: '#/components/schemas/PlayerName' GameResponse: type: object properties: gameId: type: integer