diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-08-11 12:10:06 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-08-11 12:32:28 +0900 |
| commit | 729bd4e58ebfc1a46fa69f09179effe83b5b28cb (patch) | |
| tree | 83f34ff1d38dcdb0dc45076910867aad757028ee /openapi.yaml | |
| parent | c702d665a4ea3ea17005d4122fbd2a41180d5e6a (diff) | |
| download | iosdc-japan-2024-albatross-729bd4e58ebfc1a46fa69f09179effe83b5b28cb.tar.gz iosdc-japan-2024-albatross-729bd4e58ebfc1a46fa69f09179effe83b5b28cb.tar.zst iosdc-japan-2024-albatross-729bd4e58ebfc1a46fa69f09179effe83b5b28cb.zip | |
refactor: move openapi.yaml to openapi/
Diffstat (limited to 'openapi.yaml')
| -rw-r--r-- | openapi.yaml | 551 |
1 files changed, 0 insertions, 551 deletions
diff --git a/openapi.yaml b/openapi.yaml deleted file mode 100644 index 54f9f3c..0000000 --- a/openapi.yaml +++ /dev/null @@ -1,551 +0,0 @@ -openapi: 3.0.0 -info: - title: Albatross internal web API - version: 0.1.0 -paths: - /login: - post: - operationId: postLogin - summary: User login - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - username: - type: string - example: "john" - password: - type: string - example: "password123" - registration_token: - type: string - example: "xxxxxxxxxxxxxxxx" - required: - - username - - password - responses: - '200': - description: Successfully authenticated - content: - application/json: - schema: - type: object - properties: - token: - type: string - example: "xxxxx.xxxxx.xxxxx" - required: - - token - '401': - $ref: '#/components/responses/Unauthorized' - /token: - get: - operationId: getToken - summary: Get a short-lived access token - parameters: - - $ref: '#/components/parameters/header_authorization' - responses: - '200': - description: Successfully authenticated - content: - application/json: - schema: - type: object - properties: - token: - type: string - example: "xxxxx.xxxxx.xxxxx" - required: - - token - '401': - $ref: '#/components/responses/Unauthorized' - /games: - get: - operationId: getGames - summary: List games - parameters: - - $ref: '#/components/parameters/header_authorization' - responses: - '200': - description: List of games - content: - application/json: - schema: - type: object - properties: - games: - type: array - items: - $ref: '#/components/schemas/Game' - required: - - games - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - /games/{game_id}: - get: - operationId: getGame - summary: Get a game - parameters: - - $ref: '#/components/parameters/header_authorization' - - $ref: '#/components/parameters/path_game_id' - responses: - '200': - description: A game - content: - application/json: - schema: - type: object - properties: - game: - $ref: '#/components/schemas/Game' - required: - - game - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' -components: - parameters: - header_authorization: - in: header - name: Authorization - schema: - type: string - required: true - path_game_id: - in: path - name: game_id - schema: - type: integer - required: true - responses: - BadRequest: - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - Unauthorized: - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - Forbidden: - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - NotFound: - description: Not found - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - schemas: - Error: - type: object - properties: - message: - type: string - example: "Invalid request" - required: - - message - User: - type: object - properties: - user_id: - type: integer - example: 123 - username: - type: string - example: "john" - display_name: - type: string - example: "John Doe" - icon_path: - type: string - example: "/images/john.jpg" - is_admin: - type: boolean - example: false - required: - - user_id - - username - - display_name - - is_admin - Game: - type: object - properties: - game_id: - type: integer - example: 1 - game_type: - type: string - example: "1v1" - enum: - - 1v1 - - multiplayer - state: - type: string - example: "closed" - enum: - - closed - - waiting_entries - - waiting_start - - prepare - - starting - - gaming - - finished - display_name: - type: string - example: "Game 1" - duration_seconds: - type: integer - example: 360 - started_at: - type: integer - example: 946684800 - problem: - $ref: '#/components/schemas/Problem' - players: - type: array - items: - $ref: '#/components/schemas/User' - verification_steps: - type: array - items: - $ref: '#/components/schemas/VerificationStep' - required: - - game_id - - game_type - - state - - display_name - - duration_seconds - - players - - verification_steps - VerificationStep: - type: object - properties: - testcase_id: - type: integer - nullable: true - example: 1 - label: - type: string - example: "Test case 1" - required: - - testcase_id - - label - Problem: - type: object - properties: - problem_id: - type: integer - example: 1 - title: - type: string - example: "Problem 1" - description: - type: string - example: "This is a problem" - required: - - problem_id - - title - - description - GamePlayerMessage: - oneOf: - - $ref: '#/components/schemas/GamePlayerMessageS2C' - - $ref: '#/components/schemas/GamePlayerMessageC2S' - GamePlayerMessageS2C: - oneOf: - - $ref: '#/components/schemas/GamePlayerMessageS2CPrepare' - - $ref: '#/components/schemas/GamePlayerMessageS2CStart' - - $ref: '#/components/schemas/GamePlayerMessageS2CExecResult' - GamePlayerMessageS2CPrepare: - type: object - properties: - type: - type: string - const: "player:s2c:prepare" - data: - $ref: '#/components/schemas/GamePlayerMessageS2CPreparePayload' - required: - - type - - data - GamePlayerMessageS2CPreparePayload: - type: object - properties: - problem: - $ref: '#/components/schemas/Problem' - required: - - problem - GamePlayerMessageS2CStart: - type: object - properties: - type: - type: string - const: "player:s2c:start" - data: - $ref: '#/components/schemas/GamePlayerMessageS2CStartPayload' - required: - - type - - data - GamePlayerMessageS2CStartPayload: - type: object - properties: - start_at: - type: integer - example: 946684800 - required: - - start_at - GamePlayerMessageS2CExecResult: - type: object - properties: - type: - type: string - const: "player:s2c:execresult" - data: - $ref: '#/components/schemas/GamePlayerMessageS2CExecResultPayload' - required: - - type - - data - GamePlayerMessageS2CExecResultPayload: - type: object - properties: - status: - type: string - example: "success" - enum: - - success - - failure - - timeout - - internal_error - - compile_error - - wrong_answer - score: - type: integer - nullable: true - example: 100 - required: - - status - - score - GamePlayerMessageC2S: - oneOf: - - $ref: '#/components/schemas/GamePlayerMessageC2SEntry' - - $ref: '#/components/schemas/GamePlayerMessageC2SReady' - - $ref: '#/components/schemas/GamePlayerMessageC2SCode' - - $ref: '#/components/schemas/GamePlayerMessageC2SSubmit' - GamePlayerMessageC2SEntry: - type: object - properties: - type: - type: string - const: "player:c2s:entry" - required: - - type - GamePlayerMessageC2SReady: - type: object - properties: - type: - type: string - const: "player:c2s:ready" - required: - - type - GamePlayerMessageC2SCode: - type: object - properties: - type: - type: string - const: "player:c2s:code" - data: - $ref: '#/components/schemas/GamePlayerMessageC2SCodePayload' - required: - - type - - data - GamePlayerMessageC2SCodePayload: - type: object - properties: - code: - type: string - example: "print('Hello, world!')" - required: - - code - GamePlayerMessageC2SSubmit: - type: object - properties: - type: - type: string - const: "player:c2s:submit" - data: - $ref: '#/components/schemas/GamePlayerMessageC2SSubmitPayload' - required: - - type - - data - GamePlayerMessageC2SSubmitPayload: - type: object - properties: - code: - type: string - example: "print('Hello, world!')" - required: - - code - GameWatcherMessage: - oneOf: - - $ref: '#/components/schemas/GameWatcherMessageS2C' - # - $ref: '#/components/schemas/GameWatcherMessageC2S' - GameWatcherMessageS2C: - oneOf: - - $ref: '#/components/schemas/GameWatcherMessageS2CStart' - - $ref: '#/components/schemas/GameWatcherMessageS2CCode' - - $ref: '#/components/schemas/GameWatcherMessageS2CSubmit' - - $ref: '#/components/schemas/GameWatcherMessageS2CExecResult' - - $ref: '#/components/schemas/GameWatcherMessageS2CSubmitResult' - GameWatcherMessageS2CStart: - type: object - properties: - type: - type: string - const: "watcher:s2c:start" - data: - $ref: '#/components/schemas/GameWatcherMessageS2CStartPayload' - required: - - type - - data - GameWatcherMessageS2CStartPayload: - type: object - properties: - start_at: - type: integer - example: 946684800 - required: - - start_at - GameWatcherMessageS2CCode: - type: object - properties: - type: - type: string - const: "watcher:s2c:code" - data: - $ref: '#/components/schemas/GameWatcherMessageS2CCodePayload' - required: - - type - - data - GameWatcherMessageS2CCodePayload: - type: object - properties: - player_id: - type: integer - example: 1 - code: - type: string - example: "print('Hello, world!')" - required: - - player_id - - code - GameWatcherMessageS2CSubmit: - type: object - properties: - type: - type: string - const: "watcher:s2c:submit" - data: - $ref: '#/components/schemas/GameWatcherMessageS2CSubmitPayload' - required: - - type - - data - GameWatcherMessageS2CSubmitPayload: - type: object - properties: - player_id: - type: integer - example: 1 - preliminary_score: - type: integer - example: 100 - required: - - player_id - - preliminary_score - GameWatcherMessageS2CExecResult: - type: object - properties: - type: - type: string - const: "watcher:s2c:execresult" - data: - $ref: '#/components/schemas/GameWatcherMessageS2CExecResultPayload' - required: - - type - - data - GameWatcherMessageS2CExecResultPayload: - type: object - properties: - player_id: - type: integer - example: 1 - testcase_id: - type: integer - nullable: true - example: 1 - status: - type: string - example: "success" - enum: - - success - - wrong_answer - - timeout - - runtime_error - - internal_error - - compile_error - stdout: - type: string - example: "Hello, world!" - stderr: - type: string - example: "" - required: - - player_id - - testcase_id - - status - - stdout - - stderr - GameWatcherMessageS2CSubmitResult: - type: object - properties: - type: - type: string - const: "watcher:s2c:submitresult" - data: - $ref: '#/components/schemas/GameWatcherMessageS2CSubmitResultPayload' - required: - - type - - data - GameWatcherMessageS2CSubmitResultPayload: - type: object - properties: - player_id: - type: integer - example: 1 - status: - type: string - example: "success" - enum: - - success - - wrong_answer - - timeout - - runtime_error - - internal_error - - compile_error - required: - - player_id - - status - # GameWatcherMessageC2S: - # oneOf: |
