diff --git a/backend/environment.yml b/backend/environment.yml index 937f27691..9c6afbdb8 100644 --- a/backend/environment.yml +++ b/backend/environment.yml @@ -22,7 +22,7 @@ dependencies: - django-configurations==2.4 - django-countries==7.4.2 - django-import-export==3.0.2 - - django-sortedm2m==3.1.1 + - django-sortedm2m==4.0.0 - django-storages[google]==1.13.1 - django-structlog==4.0.1 - django_rest_passwordreset==1.3.0 diff --git a/backend/siarnaq/settings.py b/backend/siarnaq/settings.py index 8ff79c661..985270c91 100644 --- a/backend/siarnaq/settings.py +++ b/backend/siarnaq/settings.py @@ -205,6 +205,106 @@ class Base(Configuration): USE_TZ = True + LANGUAGES = [ + ("af", "Afrikaans"), + ("ar", "Arabic"), + ("ar-dz", "Algerian Arabic"), + ("ast", "Asturian"), + ("az", "Azerbaijani"), + ("bg", "Bulgarian"), + ("be", "Belarusian"), + ("bn", "Bengali"), + ("br", "Breton"), + ("bs", "Bosnian"), + ("ca", "Catalan"), + ("cs", "Czech"), + ("cy", "Welsh"), + ("da", "Danish"), + ("de", "German"), + ("dsb", "Lower Sorbian"), + ("el", "Greek"), + ("en", "English"), + ("en-au", "Australian English"), + ("en-gb", "British English"), + ("eo", "Esperanto"), + ("es", "Spanish"), + ("es-ar", "Argentinian Spanish"), + ("es-co", "Colombian Spanish"), + ("es-mx", "Mexican Spanish"), + ("es-ni", "Nicaraguan Spanish"), + ("es-ve", "Venezuelan Spanish"), + ("et", "Estonian"), + ("eu", "Basque"), + ("fa", "Persian"), + ("fi", "Finnish"), + ("fr", "French"), + ("fy", "Frisian"), + ("ga", "Irish"), + ("gd", "Scottish Gaelic"), + ("gl", "Galician"), + ("he", "Hebrew"), + ("hi", "Hindi"), + ("hr", "Croatian"), + ("hsb", "Upper Sorbian"), + ("hu", "Hungarian"), + ("hy", "Armenian"), + ("ia", "Interlingua"), + ("id", "Indonesian"), + ("ig", "Igbo"), + ("io", "Ido"), + ("is", "Icelandic"), + ("it", "Italian"), + ("ja", "Japanese"), + ("ka", "Georgian"), + ("kab", "Kabyle"), + ("kk", "Kazakh"), + ("km", "Khmer"), + ("kn", "Kannada"), + ("ko", "Korean"), + ("ky", "Kyrgyz"), + ("lb", "Luxembourgish"), + ("lt", "Lithuanian"), + ("lv", "Latvian"), + ("mk", "Macedonian"), + ("ml", "Malayalam"), + ("mn", "Mongolian"), + ("mr", "Marathi"), + ("ms", "Malay"), + ("my", "Burmese"), + ("nb", "Norwegian Bokmål"), + ("ne", "Nepali"), + ("nl", "Dutch"), + ("nn", "Norwegian Nynorsk"), + ("os", "Ossetic"), + ("pa", "Punjabi"), + ("pl", "Polish"), + ("pt", "Portuguese"), + ("pt-br", "Brazilian Portuguese"), + ("ro", "Romanian"), + ("ru", "Russian"), + ("sk", "Slovak"), + ("sl", "Slovenian"), + ("sq", "Albanian"), + ("sr", "Serbian"), + ("sr-latn", "Serbian Latin"), + ("sv", "Swedish"), + ("sw", "Swahili"), + ("ta", "Tamil"), + ("te", "Telugu"), + ("tg", "Tajik"), + ("th", "Thai"), + ("tk", "Turkmen"), + ("tr", "Turkish"), + ("tt", "Tatar"), + ("udm", "Udmurt"), + ("uk", "Ukrainian"), + ("ur", "Urdu"), + ("uz", "Uzbek"), + ("vi", "Vietnamese"), + ("zh-hans", "Simplified Chinese"), + ("zh-hant", "Traditional Chinese"), + ] + # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.0/howto/static-files/ diff --git a/environment-dev.yml b/environment-dev.yml index fa54415d4..729e73b62 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -34,7 +34,7 @@ dependencies: - django-configurations==2.4 - django-countries==7.4.2 - django-import-export==3.0.2 - - django-sortedm2m==3.1.1 + - django-sortedm2m==4.0.0 - django-storages[google]==1.13.1 - django-structlog==4.0.1 - django_rest_passwordreset==1.3.0 diff --git a/frontend/.prettierignore b/frontend/.prettierignore index 103a0ecb8..efe1d828d 100644 --- a/frontend/.prettierignore +++ b/frontend/.prettierignore @@ -8,6 +8,7 @@ # auto-generated types/models src/api/_autogen +schema.yml /coverage diff --git a/frontend/schema.yml b/frontend/schema.yml index 3e62cda38..d2e0d4c54 100644 --- a/frontend/schema.yml +++ b/frontend/schema.yml @@ -1,6 +1,6 @@ openapi: 3.0.3 info: - title: "" + title: '' version: 0.0.0 paths: /api/compete/{episode_id}/match/: @@ -8,138 +8,138 @@ paths: operationId: compete_match_list description: A viewset for viewing and retrieving Matches. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedMatchList" - description: "" + $ref: '#/components/schemas/PaginatedMatchList' + description: '' /api/compete/{episode_id}/match/{id}/: get: operationId: compete_match_retrieve description: A viewset for viewing and retrieving Matches. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/Match" - description: "" + $ref: '#/components/schemas/Match' + description: '' /api/compete/{episode_id}/match/{id}/publish_public_bracket/: post: operationId: compete_match_publish_public_bracket_create description: Publish the result of a tournament match to the public bracket. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': description: No response body /api/compete/{episode_id}/match/{id}/rating_update/: post: operationId: compete_match_rating_update_create description: Try to finalize the rating of this match. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': description: No response body /api/compete/{episode_id}/match/{id}/report/: post: operationId: compete_match_report_create description: Report the outcome of this match on Saturn. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete requestBody: content: application/json: schema: - $ref: "#/components/schemas/MatchReportRequest" + $ref: '#/components/schemas/MatchReportRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/MatchReportRequest" + $ref: '#/components/schemas/MatchReportRequest' multipart/form-data: schema: - $ref: "#/components/schemas/MatchReportRequest" + $ref: '#/components/schemas/MatchReportRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Report has been received - "409": + '409': description: This match was already finalized /api/compete/{episode_id}/match/historical_rating/: get: @@ -178,100 +178,99 @@ paths: - The function returns an empty list if no valid team is found. - Historical ratings are ordered by match creation date. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: team_id - schema: - type: integer - description: Optional teamID to filter for. Defaults to your own team. + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: team_id + schema: + type: integer + description: Optional teamID to filter for. Defaults to your own team. tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No ranked matches found. - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/HistoricalRating" - description: "" - "400": + $ref: '#/components/schemas/HistoricalRating' + description: '' + '400': description: Could not find requested team. /api/compete/{episode_id}/match/historical_rating_topN/: get: operationId: compete_match_historical_rating_topN_list - description: - List the historical top N rankings, N should be <= 10 and defaults + description: List the historical top N rankings, N should be <= 10 and defaults to 10 parameters: - - in: query - name: N - schema: - type: integer - description: number of top teams to get ratings for, defaults to 10 - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: query + name: N + schema: + type: integer + description: number of top teams to get ratings for, defaults to 10 + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No ranked matches found. - "200": + '200': content: application/json: schema: type: array items: - $ref: "#/components/schemas/HistoricalRating" - description: "" - "400": - description: "Invalid parameter: N must be less than or equal to 10" + $ref: '#/components/schemas/HistoricalRating' + description: '' + '400': + description: 'Invalid parameter: N must be less than or equal to 10' /api/compete/{episode_id}/match/scrimmage/: get: operationId: compete_match_scrimmage_list description: List all scrimmages that a particular team participated in. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - in: query - name: team_id - schema: - type: integer - description: A team to filter for. Defaults to your own team. + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - in: query + name: team_id + schema: + type: integer + description: A team to filter for. Defaults to your own team. tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedMatchList" - description: "" + $ref: '#/components/schemas/PaginatedMatchList' + description: '' /api/compete/{episode_id}/match/scrimmaging_record/: get: operationId: compete_match_scrimmaging_record_retrieve @@ -291,29 +290,29 @@ paths: - 400 Bad Request: If no team_id is provided and the user is not associated with a team, or if the provided team_id is invalid. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: team_id - schema: - type: integer - description: A team to filter for. Defaults to your own team. + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: team_id + schema: + type: integer + description: A team to filter for. Defaults to your own team. tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/ScrimmageRecord" - description: "" - "400": + $ref: '#/components/schemas/ScrimmageRecord' + description: '' + '400': description: No team found with the given ID. /api/compete/{episode_id}/match/tournament/: get: @@ -323,236 +322,236 @@ paths: Passing the external_id_private of a tournament allows match lookup for the tournament, even if it's private. Client uses the external_id_private parameter parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: external_id_private - schema: - type: string - description: A private id to filter for. - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - in: query - name: round_id - schema: - type: integer - description: A tournament round to filter for. - - in: query - name: team_id - schema: - type: integer - description: A team to filter for. - - in: query - name: tournament_id - schema: - type: string - description: A tournament to filter for. + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: external_id_private + schema: + type: string + description: A private id to filter for. + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - in: query + name: round_id + schema: + type: integer + description: A tournament round to filter for. + - in: query + name: team_id + schema: + type: integer + description: A team to filter for. + - in: query + name: tournament_id + schema: + type: string + description: A tournament to filter for. tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedMatchList" - description: "" + $ref: '#/components/schemas/PaginatedMatchList' + description: '' /api/compete/{episode_id}/request/: post: operationId: compete_request_create description: A viewset for creating and responding to Scrimmage Requests. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - compete + - compete requestBody: content: application/json: schema: - $ref: "#/components/schemas/ScrimmageRequestRequest" + $ref: '#/components/schemas/ScrimmageRequestRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/ScrimmageRequestRequest" + $ref: '#/components/schemas/ScrimmageRequestRequest' multipart/form-data: schema: - $ref: "#/components/schemas/ScrimmageRequestRequest" + $ref: '#/components/schemas/ScrimmageRequestRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "201": + '201': content: application/json: schema: - $ref: "#/components/schemas/ScrimmageRequest" - description: "" + $ref: '#/components/schemas/ScrimmageRequest' + description: '' /api/compete/{episode_id}/request/{id}/: delete: operationId: compete_request_destroy description: Cancel a scrimmage request. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No response body /api/compete/{episode_id}/request/{id}/accept/: post: operationId: compete_request_accept_create description: Accept a scrimmage request. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Scrimmage request has been accepted /api/compete/{episode_id}/request/{id}/reject/: post: operationId: compete_request_reject_create description: Reject a scrimmage request. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Scrimmage request has been rejected /api/compete/{episode_id}/request/inbox/: get: operationId: compete_request_inbox_list description: Get all pending scrimmage requests received. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedScrimmageRequestList" - description: "" + $ref: '#/components/schemas/PaginatedScrimmageRequestList' + description: '' /api/compete/{episode_id}/request/outbox/: get: operationId: compete_request_outbox_list description: Get all pending scrimmage requests sent. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedScrimmageRequestList" - description: "" + $ref: '#/components/schemas/PaginatedScrimmageRequestList' + description: '' /api/compete/{episode_id}/submission/: get: operationId: compete_submission_list description: A viewset for creating and retrieving Submissions. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedSubmissionList" - description: "" + $ref: '#/components/schemas/PaginatedSubmissionList' + description: '' post: operationId: compete_submission_create description: |- @@ -560,14 +559,14 @@ paths: database, saves the source code to the storage bucket on Google cloud, and enqueues the submission for compilation on Saturn. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - compete + - compete requestBody: content: multipart/form-data: @@ -582,235 +581,235 @@ paths: type: string format: binary security: - - jwtAuth: [] + - jwtAuth: [] responses: - "201": + '201': content: application/json: schema: - $ref: "#/components/schemas/Submission" - description: "" + $ref: '#/components/schemas/Submission' + description: '' /api/compete/{episode_id}/submission/{id}/: get: operationId: compete_submission_retrieve description: A viewset for creating and retrieving Submissions. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/Submission" - description: "" + $ref: '#/components/schemas/Submission' + description: '' /api/compete/{episode_id}/submission/{id}/download/: get: operationId: compete_submission_download_retrieve description: Download the source code associated with a submission. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/SubmissionDownload" - description: "" + $ref: '#/components/schemas/SubmissionDownload' + description: '' /api/compete/{episode_id}/submission/{id}/report/: post: operationId: compete_submission_report_create description: Report the outcome of this submission on Saturn. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - compete + - compete requestBody: content: application/json: schema: - $ref: "#/components/schemas/SubmissionReportRequest" + $ref: '#/components/schemas/SubmissionReportRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/SubmissionReportRequest" + $ref: '#/components/schemas/SubmissionReportRequest' multipart/form-data: schema: - $ref: "#/components/schemas/SubmissionReportRequest" + $ref: '#/components/schemas/SubmissionReportRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Report has been received - "409": + '409': description: This submission was already finalized /api/compete/{episode_id}/submission/tournament/: get: operationId: compete_submission_tournament_list description: Retrieve the submissions used in tournaments by the current team.. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - compete + - compete security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: type: array items: - $ref: "#/components/schemas/TournamentSubmission" - description: "" + $ref: '#/components/schemas/TournamentSubmission' + description: '' /api/episode/{episode_id}/map/: get: operationId: episode_map_list description: A viewset for retrieving Maps. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: type: array items: - $ref: "#/components/schemas/GameMap" - description: "" + $ref: '#/components/schemas/GameMap' + description: '' /api/episode/{episode_id}/map/{id}/: get: operationId: episode_map_retrieve description: A viewset for retrieving Maps. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/GameMap" - description: "" + $ref: '#/components/schemas/GameMap' + description: '' /api/episode/{episode_id}/tournament/: get: operationId: episode_tournament_list description: A viewset for retrieving Tournaments. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedTournamentList" - description: "" + $ref: '#/components/schemas/PaginatedTournamentList' + description: '' /api/episode/{episode_id}/tournament/{id}/: get: operationId: episode_tournament_retrieve description: A viewset for retrieving Tournaments. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/Tournament" - description: "" + $ref: '#/components/schemas/Tournament' + description: '' /api/episode/{episode_id}/tournament/{id}/initialize/: post: operationId: episode_tournament_initialize_create @@ -818,91 +817,91 @@ paths: Seed the tournament with eligible teams in order of decreasing rating, populate the brackets in the bracket service, and create TournamentRounds. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Tournament has been initialized /api/episode/{episode_id}/tournament/{tournament}/round/: get: operationId: episode_tournament_round_list description: A viewset for retrieving tournament rounds. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - in: path - name: tournament - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - in: path + name: tournament + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedTournamentRoundList" - description: "" + $ref: '#/components/schemas/PaginatedTournamentRoundList' + description: '' /api/episode/{episode_id}/tournament/{tournament}/round/{id}/: get: operationId: episode_tournament_round_retrieve description: A viewset for retrieving tournament rounds. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true - - in: path - name: tournament - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true + - in: path + name: tournament + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/TournamentRound" - description: "" + $ref: '#/components/schemas/TournamentRound' + description: '' /api/episode/{episode_id}/tournament/{tournament}/round/{id}/enqueue/: post: operationId: episode_tournament_round_enqueue_create @@ -910,229 +909,228 @@ paths: Enqueue the given round of the tournament. Fails if this round is already in progress. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: episode_id - schema: - type: string - description: An episode to filter for. - - in: path - name: id - schema: - type: string - required: true - - in: query - name: id - schema: - type: string - description: A tournament round to filter for. - - in: query - name: maps - schema: - type: array - items: - type: integer - description: List of map IDs to use in this round. - required: true - - in: path - name: tournament - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: tournament - schema: - type: string - description: A tournament to filter for. + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: episode_id + schema: + type: string + description: An episode to filter for. + - in: path + name: id + schema: + type: string + required: true + - in: query + name: id + schema: + type: string + description: A tournament round to filter for. + - in: query + name: maps + schema: + type: array + items: + type: integer + description: List of map IDs to use in this round. + required: true + - in: path + name: tournament + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: tournament + schema: + type: string + description: A tournament to filter for. tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Tournament round has been enqueued - "400": + '400': description: Tournament round could not be enqueued - "409": + '409': description: Tournament round is already in progress /api/episode/{episode_id}/tournament/{tournament}/round/{id}/release/: post: operationId: episode_tournament_round_release_create description: Release the results of this round to the public bracket service. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: episode_id - schema: - type: string - description: An episode to filter for. - - in: path - name: id - schema: - type: string - required: true - - in: query - name: id - schema: - type: string - description: A tournament round to filter for. - - in: path - name: tournament - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: tournament - schema: - type: string - description: A tournament to filter for. + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: episode_id + schema: + type: string + description: An episode to filter for. + - in: path + name: id + schema: + type: string + required: true + - in: query + name: id + schema: + type: string + description: A tournament round to filter for. + - in: path + name: tournament + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: tournament + schema: + type: string + description: A tournament to filter for. tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Tournament round has been released to public bracket service /api/episode/{episode_id}/tournament/{tournament}/round/{id}/requeue/: post: operationId: episode_tournament_round_requeue_create description: Re-queue every unsuccessful match in this round on Saturn. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true - - in: path - name: tournament - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true + - in: path + name: tournament + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Tournament round has been requeued - "400": + '400': description: No failed matches to requeue /api/episode/{episode_id}/tournament/next/: get: operationId: episode_tournament_next_retrieve - description: - Retrieve the next upcoming tournament, as ordered by submission + description: Retrieve the next upcoming tournament, as ordered by submission freeze time. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - episode + - episode security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/Tournament" - description: "" + $ref: '#/components/schemas/Tournament' + description: '' /api/episode/e/: get: operationId: episode_e_list description: A viewset for retrieving Episodes. parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer tags: - - episode + - episode security: - - jwtAuth: [] - - {} + - jwtAuth: [] + - {} responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedEpisodeList" - description: "" + $ref: '#/components/schemas/PaginatedEpisodeList' + description: '' /api/episode/e/{id}/: get: operationId: episode_e_retrieve description: A viewset for retrieving Episodes. parameters: - - in: path - name: id - schema: - type: string - required: true + - in: path + name: id + schema: + type: string + required: true tags: - - episode + - episode security: - - jwtAuth: [] - - {} + - jwtAuth: [] + - {} responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/Episode" - description: "" + $ref: '#/components/schemas/Episode' + description: '' /api/episode/e/{id}/autoscrim/: post: operationId: episode_e_autoscrim_create description: Trigger a round of autoscrimmages. parameters: - - in: path - name: id - schema: - type: string - required: true + - in: path + name: id + schema: + type: string + required: true tags: - - episode + - episode requestBody: content: application/json: schema: - $ref: "#/components/schemas/AutoscrimRequest" + $ref: '#/components/schemas/AutoscrimRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/AutoscrimRequest" + $ref: '#/components/schemas/AutoscrimRequest' multipart/form-data: schema: - $ref: "#/components/schemas/AutoscrimRequest" + $ref: '#/components/schemas/AutoscrimRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: Created successfully /api/specs/: get: @@ -1143,122 +1141,122 @@ paths: - YAML: application/vnd.oai.openapi - JSON: application/vnd.oai.openapi+json parameters: - - in: query - name: format - schema: - type: string - enum: - - json - - yaml - - in: query - name: lang - schema: - type: string - enum: - - af - - ar - - ar-dz - - ast - - az - - be - - bg - - bn - - br - - bs - - ca - - cs - - cy - - da - - de - - dsb - - el - - en - - en-au - - en-gb - - eo - - es - - es-ar - - es-co - - es-mx - - es-ni - - es-ve - - et - - eu - - fa - - fi - - fr - - fy - - ga - - gd - - gl - - he - - hi - - hr - - hsb - - hu - - hy - - ia - - id - - ig - - io - - is - - it - - ja - - ka - - kab - - kk - - km - - kn - - ko - - ky - - lb - - lt - - lv - - mk - - ml - - mn - - mr - - ms - - my - - nb - - ne - - nl - - nn - - os - - pa - - pl - - pt - - pt-br - - ro - - ru - - sk - - sl - - sq - - sr - - sr-latn - - sv - - sw - - ta - - te - - tg - - th - - tk - - tr - - tt - - udm - - uk - - ur - - uz - - vi - - zh-hans - - zh-hant - tags: - - specs + - in: query + name: format + schema: + type: string + enum: + - json + - yaml + - in: query + name: lang + schema: + type: string + enum: + - af + - ar + - ar-dz + - ast + - az + - be + - bg + - bn + - br + - bs + - ca + - cs + - cy + - da + - de + - dsb + - el + - en + - en-au + - en-gb + - eo + - es + - es-ar + - es-co + - es-mx + - es-ni + - es-ve + - et + - eu + - fa + - fi + - fr + - fy + - ga + - gd + - gl + - he + - hi + - hr + - hsb + - hu + - hy + - ia + - id + - ig + - io + - is + - it + - ja + - ka + - kab + - kk + - km + - kn + - ko + - ky + - lb + - lt + - lv + - mk + - ml + - mn + - mr + - ms + - my + - nb + - ne + - nl + - nn + - os + - pa + - pl + - pt + - pt-br + - ro + - ru + - sk + - sl + - sq + - sr + - sr-latn + - sv + - sw + - ta + - te + - tg + - th + - tk + - tr + - tt + - udm + - uk + - ur + - uz + - vi + - zh-hans + - zh-hant + tags: + - specs security: - - jwtAuth: [] - - {} + - jwtAuth: [] + - {} responses: - "200": + '200': content: application/vnd.oai.openapi: schema: @@ -1276,162 +1274,162 @@ paths: schema: type: object additionalProperties: {} - description: "" + description: '' /api/team/{episode_id}/requirement/: get: operationId: team_requirement_list description: A viewset for retrieving and checking class requirements. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer tags: - - team + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedClassRequirementList" - description: "" + $ref: '#/components/schemas/PaginatedClassRequirementList' + description: '' /api/team/{episode_id}/requirement/{id}/: get: operationId: team_requirement_retrieve description: A viewset for retrieving and checking class requirements. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - team + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/ClassRequirement" - description: "" + $ref: '#/components/schemas/ClassRequirement' + description: '' /api/team/{episode_id}/requirement/{id}/check/: get: operationId: team_requirement_check_retrieve description: A viewset for retrieving and checking class requirements. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - team + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserPassed" - description: "" + $ref: '#/components/schemas/UserPassed' + description: '' /api/team/{episode_id}/requirement/{id}/compute/: get: operationId: team_requirement_compute_retrieve description: A viewset for retrieving and checking class requirements. parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: path - name: id - schema: - type: string - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: path + name: id + schema: + type: string + required: true tags: - - team + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserPassed" - description: "" + $ref: '#/components/schemas/UserPassed' + description: '' /api/team/{episode_id}/requirement/report/: get: operationId: team_requirement_report_retrieve description: Retrieve or update team strategy report parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - team + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No response body put: operationId: team_requirement_report_update description: Retrieve or update team strategy report parameters: - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true tags: - - team + - team requestBody: content: application/json: schema: - $ref: "#/components/schemas/TeamReportRequest" + $ref: '#/components/schemas/TeamReportRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/TeamReportRequest" + $ref: '#/components/schemas/TeamReportRequest' multipart/form-data: schema: - $ref: "#/components/schemas/TeamReportRequest" + $ref: '#/components/schemas/TeamReportRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No response body /api/team/{episode_id}/t/: get: @@ -1441,53 +1439,53 @@ paths: When creating a team, add the logged in user as the sole member. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: + - in: query + name: eligible_for + schema: + type: array + items: type: integer - - name: search - required: false - in: query - description: A search term. - schema: - type: string + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string tags: - - team + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PaginatedTeamPublicList" - description: "" + $ref: '#/components/schemas/PaginatedTeamPublicList' + description: '' post: operationId: team_t_create description: |- @@ -1495,47 +1493,47 @@ paths: When creating a team, add the logged in user as the sole member. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - tags: - - team + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + tags: + - team requestBody: content: application/json: schema: - $ref: "#/components/schemas/TeamCreateRequest" + $ref: '#/components/schemas/TeamCreateRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/TeamCreateRequest" + $ref: '#/components/schemas/TeamCreateRequest' multipart/form-data: schema: - $ref: "#/components/schemas/TeamCreateRequest" + $ref: '#/components/schemas/TeamCreateRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "201": + '201': content: application/json: schema: - $ref: "#/components/schemas/TeamCreate" - description: "" + $ref: '#/components/schemas/TeamCreate' + description: '' /api/team/{episode_id}/t/{id}/: get: operationId: team_t_retrieve @@ -1544,65 +1542,65 @@ paths: When creating a team, add the logged in user as the sole member. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - - in: path - name: id - schema: - type: string - required: true + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + - in: path + name: id + schema: + type: string + required: true tags: - - team + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/TeamPublic" - description: "" + $ref: '#/components/schemas/TeamPublic' + description: '' /api/team/{episode_id}/t/avatar/: post: operationId: team_t_avatar_create description: Update uploaded avatar. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - tags: - - team + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + tags: + - team requestBody: content: multipart/form-data: @@ -1613,9 +1611,9 @@ paths: type: string format: binary security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No response body /api/team/{episode_id}/t/join/: post: @@ -1625,195 +1623,195 @@ paths: When creating a team, add the logged in user as the sole member. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - tags: - - team + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + tags: + - team requestBody: content: application/json: schema: - $ref: "#/components/schemas/TeamJoinRequest" + $ref: '#/components/schemas/TeamJoinRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/TeamJoinRequest" + $ref: '#/components/schemas/TeamJoinRequest' multipart/form-data: schema: - $ref: "#/components/schemas/TeamJoinRequest" + $ref: '#/components/schemas/TeamJoinRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No response body /api/team/{episode_id}/t/leave/: post: operationId: team_t_leave_create description: Leave a team. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - tags: - - team + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + tags: + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': description: No response body /api/team/{episode_id}/t/me/: get: operationId: team_t_me_retrieve description: Retrieve or update information about the current team. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - tags: - - team + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + tags: + - team security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/TeamPrivate" - description: "" + $ref: '#/components/schemas/TeamPrivate' + description: '' put: operationId: team_t_me_update description: Retrieve or update information about the current team. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - tags: - - team + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + tags: + - team requestBody: content: application/json: schema: - $ref: "#/components/schemas/TeamPrivateRequest" + $ref: '#/components/schemas/TeamPrivateRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/TeamPrivateRequest" + $ref: '#/components/schemas/TeamPrivateRequest' multipart/form-data: schema: - $ref: "#/components/schemas/TeamPrivateRequest" + $ref: '#/components/schemas/TeamPrivateRequest' security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/TeamPrivate" - description: "" + $ref: '#/components/schemas/TeamPrivate' + description: '' patch: operationId: team_t_me_partial_update description: Retrieve or update information about the current team. parameters: - - in: query - name: eligible_for - schema: - type: array - items: - type: integer - description: Filter teams by a set of eligibility criteria ID - - in: path - name: episode_id - schema: - type: string - pattern: ^[^\/.]+$ - required: true - - in: query - name: has_active_submission - schema: - type: boolean - description: Filter teams by active submission status - tags: - - team + - in: query + name: eligible_for + schema: + type: array + items: + type: integer + description: Filter teams by a set of eligibility criteria ID + - in: path + name: episode_id + schema: + type: string + pattern: ^[^\/.]+$ + required: true + - in: query + name: has_active_submission + schema: + type: boolean + description: Filter teams by active submission status + tags: + - team requestBody: content: application/json: schema: - $ref: "#/components/schemas/PatchedTeamPrivateRequest" + $ref: '#/components/schemas/PatchedTeamPrivateRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/PatchedTeamPrivateRequest" + $ref: '#/components/schemas/PatchedTeamPrivateRequest' multipart/form-data: schema: - $ref: "#/components/schemas/PatchedTeamPrivateRequest" + $ref: '#/components/schemas/PatchedTeamPrivateRequest' security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/TeamPrivate" - description: "" + $ref: '#/components/schemas/TeamPrivate' + description: '' /api/token/: post: operationId: token_create @@ -1821,26 +1819,26 @@ paths: Takes a set of user credentials and returns an access and refresh JSON web token pair to prove the authentication of those credentials. tags: - - token + - token requestBody: content: application/json: schema: - $ref: "#/components/schemas/TokenObtainPairRequest" + $ref: '#/components/schemas/TokenObtainPairRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/TokenObtainPairRequest" + $ref: '#/components/schemas/TokenObtainPairRequest' multipart/form-data: schema: - $ref: "#/components/schemas/TokenObtainPairRequest" + $ref: '#/components/schemas/TokenObtainPairRequest' required: true responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/TokenObtainPair" - description: "" + $ref: '#/components/schemas/TokenObtainPair' + description: '' /api/token/refresh/: post: operationId: token_refresh_create @@ -1848,26 +1846,26 @@ paths: Takes a refresh type JSON web token and returns an access type JSON web token if the refresh token is valid. tags: - - token + - token requestBody: content: application/json: schema: - $ref: "#/components/schemas/TokenRefreshRequest" + $ref: '#/components/schemas/TokenRefreshRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/TokenRefreshRequest" + $ref: '#/components/schemas/TokenRefreshRequest' multipart/form-data: schema: - $ref: "#/components/schemas/TokenRefreshRequest" + $ref: '#/components/schemas/TokenRefreshRequest' required: true responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/TokenRefresh" - description: "" + $ref: '#/components/schemas/TokenRefresh' + description: '' /api/token/verify/: post: operationId: token_verify_create @@ -1875,21 +1873,21 @@ paths: Takes a token and indicates if it is valid. This view provides no information about a token's fitness for a particular use. tags: - - token + - token requestBody: content: application/json: schema: - $ref: "#/components/schemas/TokenVerifyRequest" + $ref: '#/components/schemas/TokenVerifyRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/TokenVerifyRequest" + $ref: '#/components/schemas/TokenVerifyRequest' multipart/form-data: schema: - $ref: "#/components/schemas/TokenVerifyRequest" + $ref: '#/components/schemas/TokenVerifyRequest' required: true responses: - "200": + '200': description: No response body /api/user/password_reset/: post: @@ -1899,160 +1897,159 @@ paths: Sends a signal reset_password_token_created when a reset token was created tags: - - user + - user requestBody: content: application/json: schema: - $ref: "#/components/schemas/EmailRequest" + $ref: '#/components/schemas/EmailRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/EmailRequest" + $ref: '#/components/schemas/EmailRequest' multipart/form-data: schema: - $ref: "#/components/schemas/EmailRequest" + $ref: '#/components/schemas/EmailRequest' required: true responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/Email" - description: "" + $ref: '#/components/schemas/Email' + description: '' /api/user/password_reset/confirm/: post: operationId: user_password_reset_confirm_create - description: - An Api View which provides a method to reset a password based on + description: An Api View which provides a method to reset a password based on a unique token tags: - - user + - user requestBody: content: application/json: schema: - $ref: "#/components/schemas/PasswordTokenRequest" + $ref: '#/components/schemas/PasswordTokenRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/PasswordTokenRequest" + $ref: '#/components/schemas/PasswordTokenRequest' multipart/form-data: schema: - $ref: "#/components/schemas/PasswordTokenRequest" + $ref: '#/components/schemas/PasswordTokenRequest' required: true responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/PasswordToken" - description: "" + $ref: '#/components/schemas/PasswordToken' + description: '' /api/user/password_reset/validate_token/: post: operationId: user_password_reset_validate_token_create description: An Api View which provides a method to verify that a token is valid tags: - - user + - user requestBody: content: application/json: schema: - $ref: "#/components/schemas/ResetTokenRequest" + $ref: '#/components/schemas/ResetTokenRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/ResetTokenRequest" + $ref: '#/components/schemas/ResetTokenRequest' multipart/form-data: schema: - $ref: "#/components/schemas/ResetTokenRequest" + $ref: '#/components/schemas/ResetTokenRequest' required: true responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/ResetToken" - description: "" + $ref: '#/components/schemas/ResetToken' + description: '' /api/user/u/: post: operationId: user_u_create description: A viewset for retrieving and updating all user info. tags: - - user + - user requestBody: content: application/json: schema: - $ref: "#/components/schemas/UserCreateRequest" + $ref: '#/components/schemas/UserCreateRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/UserCreateRequest" + $ref: '#/components/schemas/UserCreateRequest' multipart/form-data: schema: - $ref: "#/components/schemas/UserCreateRequest" + $ref: '#/components/schemas/UserCreateRequest' required: true security: - - jwtAuth: [] - - {} + - jwtAuth: [] + - {} responses: - "201": + '201': content: application/json: schema: - $ref: "#/components/schemas/UserCreate" - description: "" + $ref: '#/components/schemas/UserCreate' + description: '' /api/user/u/{id}/: get: operationId: user_u_retrieve description: A viewset for retrieving and updating all user info. parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this user. - required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true tags: - - user + - user security: - - jwtAuth: [] - - {} + - jwtAuth: [] + - {} responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserPublic" - description: "" + $ref: '#/components/schemas/UserPublic' + description: '' /api/user/u/{id}/teams/: get: operationId: user_u_teams_retrieve description: Retrieve all teams associated with a user. parameters: - - in: path - name: id - schema: - type: integer - description: A unique integer value identifying this user. - required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true tags: - - user + - user security: - - jwtAuth: [] - - {} + - jwtAuth: [] + - {} responses: - "200": + '200': content: application/json: schema: type: object additionalProperties: - $ref: "#/components/schemas/TeamPublic" - description: "" + $ref: '#/components/schemas/TeamPublic' + description: '' /api/user/u/avatar/: post: operationId: user_u_avatar_create description: Update uploaded avatar. tags: - - user + - user requestBody: content: multipart/form-data: @@ -2063,96 +2060,96 @@ paths: type: string format: binary security: - - jwtAuth: [] + - jwtAuth: [] responses: - "204": + '204': description: No response body /api/user/u/me/: get: operationId: user_u_me_retrieve description: Retrieve or update information about the logged-in user. tags: - - user + - user security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserPrivate" - description: "" + $ref: '#/components/schemas/UserPrivate' + description: '' put: operationId: user_u_me_update description: Retrieve or update information about the logged-in user. tags: - - user + - user requestBody: content: application/json: schema: - $ref: "#/components/schemas/UserPrivateRequest" + $ref: '#/components/schemas/UserPrivateRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/UserPrivateRequest" + $ref: '#/components/schemas/UserPrivateRequest' multipart/form-data: schema: - $ref: "#/components/schemas/UserPrivateRequest" + $ref: '#/components/schemas/UserPrivateRequest' required: true security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserPrivate" - description: "" + $ref: '#/components/schemas/UserPrivate' + description: '' patch: operationId: user_u_me_partial_update description: Retrieve or update information about the logged-in user. tags: - - user + - user requestBody: content: application/json: schema: - $ref: "#/components/schemas/PatchedUserPrivateRequest" + $ref: '#/components/schemas/PatchedUserPrivateRequest' application/x-www-form-urlencoded: schema: - $ref: "#/components/schemas/PatchedUserPrivateRequest" + $ref: '#/components/schemas/PatchedUserPrivateRequest' multipart/form-data: schema: - $ref: "#/components/schemas/PatchedUserPrivateRequest" + $ref: '#/components/schemas/PatchedUserPrivateRequest' security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserPrivate" - description: "" + $ref: '#/components/schemas/UserPrivate' + description: '' /api/user/u/resume/: get: operationId: user_u_resume_retrieve description: Retrieve or update the uploaded resume. tags: - - user + - user security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserResume" - description: "" + $ref: '#/components/schemas/UserResume' + description: '' put: operationId: user_u_resume_update description: Retrieve or update the uploaded resume. tags: - - user + - user requestBody: content: multipart/form-data: @@ -2163,14 +2160,14 @@ paths: type: string format: binary security: - - jwtAuth: [] + - jwtAuth: [] responses: - "200": + '200': content: application/json: schema: - $ref: "#/components/schemas/UserResume" - description: "" + $ref: '#/components/schemas/UserResume' + description: '' components: schemas: AutoscrimRequest: @@ -2180,7 +2177,7 @@ components: type: integer minimum: 1 required: - - best_of + - best_of ClassRequirement: type: object properties: @@ -2194,264 +2191,265 @@ components: type: integer min_score: type: integer - maximum: 32767 + maximum: 9223372036854775807 minimum: 0 + format: int64 required: - - episode - - maps - - min_score - - reference_player + - episode + - maps + - min_score + - reference_player CountryEnum: enum: - - AF - - AX - - AL - - DZ - - AS - - AD - - AO - - AI - - AQ - - AG - - AR - - AM - - AW - - AU - - AT - - AZ - - BS - - BH - - BD - - BB - - BY - - BE - - BZ - - BJ - - BM - - BT - - BO - - BQ - - BA - - BW - - BV - - BR - - IO - - BN - - BG - - BF - - BI - - CV - - KH - - CM - - CA - - KY - - CF - - TD - - CL - - CN - - CX - - CC - - CO - - KM - - CG - - CD - - CK - - CR - - CI - - HR - - CU - - CW - - CY - - CZ - - DK - - DJ - - DM - - DO - - EC - - EG - - SV - - GQ - - ER - - EE - - SZ - - ET - - FK - - FO - - FJ - - FI - - FR - - GF - - PF - - TF - - GA - - GM - - GE - - DE - - GH - - GI - - GR - - GL - - GD - - GP - - GU - - GT - - GG - - GN - - GW - - GY - - HT - - HM - - VA - - HN - - HK - - HU - - IS - - IN - - ID - - IR - - IQ - - IE - - IM - - IL - - IT - - JM - - JP - - JE - - JO - - KZ - - KE - - KI - - KW - - KG - - LA - - LV - - LB - - LS - - LR - - LY - - LI - - LT - - LU - - MO - - MG - - MW - - MY - - MV - - ML - - MT - - MH - - MQ - - MR - - MU - - YT - - MX - - FM - - MD - - MC - - MN - - ME - - MS - - MA - - MZ - - MM - - NA - - NR - - NP - - NL - - NC - - NZ - - NI - - NE - - NG - - NU - - NF - - KP - - MK - - MP - - "NO" - - OM - - PK - - PW - - PS - - PA - - PG - - PY - - PE - - PH - - PN - - PL - - PT - - PR - - QA - - RE - - RO - - RU - - RW - - BL - - SH - - KN - - LC - - MF - - PM - - VC - - WS - - SM - - ST - - SA - - SN - - RS - - SC - - SL - - SG - - SX - - SK - - SI - - SB - - SO - - ZA - - GS - - KR - - SS - - ES - - LK - - SD - - SR - - SJ - - SE - - CH - - SY - - TW - - TJ - - TZ - - TH - - TL - - TG - - TK - - TO - - TT - - TN - - TR - - TM - - TC - - TV - - UG - - UA - - AE - - GB - - UM - - US - - UY - - UZ - - VU - - VE - - VN - - VG - - VI - - WF - - EH - - YE - - ZM - - ZW + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - 'NO' + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW type: string EligibilityCriterion: type: object @@ -2469,10 +2467,10 @@ components: type: string readOnly: true required: - - description - - icon - - id - - title + - description + - icon + - id + - title Email: type: object properties: @@ -2480,7 +2478,7 @@ components: type: string format: email required: - - email + - email EmailRequest: type: object properties: @@ -2489,7 +2487,7 @@ components: format: email minLength: 1 required: - - email + - email Episode: type: object properties: @@ -2509,7 +2507,7 @@ components: type: string format: date-time language: - $ref: "#/components/schemas/LanguageEnum" + $ref: '#/components/schemas/LanguageEnum' scaffold: type: string format: uri @@ -2529,18 +2527,18 @@ components: eligibility_criteria: type: array items: - $ref: "#/components/schemas/EligibilityCriterion" + $ref: '#/components/schemas/EligibilityCriterion' frozen: type: boolean readOnly: true required: - - eligibility_criteria - - frozen - - game_archive - - game_release - - language - - name_long - - name_short + - eligibility_criteria + - frozen + - game_archive + - game_release + - language + - name_long + - name_short GameMap: type: object properties: @@ -2558,17 +2556,17 @@ components: type: boolean readOnly: true required: - - episode - - id - - is_public - - name + - episode + - id + - is_public + - name GenderEnum: enum: - - F - - M - - N - - "*" - - "?" + - F + - M + - N + - '*' + - '?' type: string HistoricalRating: type: object @@ -2576,14 +2574,14 @@ components: team_id: type: integer team_rating: - $ref: "#/components/schemas/TeamRating" + $ref: '#/components/schemas/TeamRating' required: - - team_id + - team_id LanguageEnum: enum: - - java8 - - java21 - - py3 + - java8 + - java21 + - py3 type: string Match: type: object @@ -2593,19 +2591,19 @@ components: readOnly: true status: allOf: - - $ref: "#/components/schemas/StatusBccEnum" + - $ref: '#/components/schemas/StatusBccEnum' readOnly: true episode: type: string readOnly: true tournament_round: allOf: - - $ref: "#/components/schemas/TournamentRound" + - $ref: '#/components/schemas/TournamentRound' nullable: true participants: type: array items: - $ref: "#/components/schemas/MatchParticipant" + $ref: '#/components/schemas/MatchParticipant' nullable: true maps: type: array @@ -2628,15 +2626,15 @@ components: readOnly: true nullable: true required: - - alternate_order - - created - - episode - - id - - is_ranked - - maps - - participants - - replay_url - - status + - alternate_order + - created + - episode + - id + - is_ranked + - maps + - participants + - replay_url + - status MatchParticipant: type: object properties: @@ -2668,14 +2666,14 @@ components: format: double readOnly: true required: - - match - - old_rating - - player_index - - rating - - score - - submission - - team - - teamname + - match + - old_rating + - player_index + - rating + - score + - submission + - team + - teamname MatchRating: type: object properties: @@ -2686,20 +2684,20 @@ components: type: string format: date-time required: - - rating - - timestamp + - rating + - timestamp MatchReportRequest: type: object properties: invocation: - $ref: "#/components/schemas/SaturnInvocationRequest" + $ref: '#/components/schemas/SaturnInvocationRequest' scores: type: array items: type: integer minimum: 0 required: - - invocation + - invocation PaginatedClassRequirementList: type: object properties: @@ -2719,7 +2717,7 @@ components: results: type: array items: - $ref: "#/components/schemas/ClassRequirement" + $ref: '#/components/schemas/ClassRequirement' PaginatedEpisodeList: type: object properties: @@ -2739,7 +2737,7 @@ components: results: type: array items: - $ref: "#/components/schemas/Episode" + $ref: '#/components/schemas/Episode' PaginatedMatchList: type: object properties: @@ -2759,7 +2757,7 @@ components: results: type: array items: - $ref: "#/components/schemas/Match" + $ref: '#/components/schemas/Match' PaginatedScrimmageRequestList: type: object properties: @@ -2779,7 +2777,7 @@ components: results: type: array items: - $ref: "#/components/schemas/ScrimmageRequest" + $ref: '#/components/schemas/ScrimmageRequest' PaginatedSubmissionList: type: object properties: @@ -2799,7 +2797,7 @@ components: results: type: array items: - $ref: "#/components/schemas/Submission" + $ref: '#/components/schemas/Submission' PaginatedTeamPublicList: type: object properties: @@ -2819,7 +2817,7 @@ components: results: type: array items: - $ref: "#/components/schemas/TeamPublic" + $ref: '#/components/schemas/TeamPublic' PaginatedTournamentList: type: object properties: @@ -2839,7 +2837,7 @@ components: results: type: array items: - $ref: "#/components/schemas/Tournament" + $ref: '#/components/schemas/Tournament' PaginatedTournamentRoundList: type: object properties: @@ -2859,7 +2857,7 @@ components: results: type: array items: - $ref: "#/components/schemas/TournamentRound" + $ref: '#/components/schemas/TournamentRound' PasswordToken: type: object properties: @@ -2868,8 +2866,8 @@ components: token: type: string required: - - password - - token + - password + - token PasswordTokenRequest: type: object properties: @@ -2880,18 +2878,18 @@ components: type: string minLength: 1 required: - - password - - token + - password + - token PatchedTeamPrivateRequest: type: object properties: profile: - $ref: "#/components/schemas/TeamProfilePrivateRequest" + $ref: '#/components/schemas/TeamProfilePrivateRequest' PatchedUserPrivateRequest: type: object properties: profile: - $ref: "#/components/schemas/UserProfilePrivateRequest" + $ref: '#/components/schemas/UserProfilePrivateRequest' email: type: string format: email @@ -2908,15 +2906,15 @@ components: maxLength: 30 PlayerOrderEnum: enum: - - + - - "-" - - "?" + - + + - '-' + - '?' type: string ReleaseStatusEnum: enum: - - 0 - - 1 - - 2 + - 0 + - 1 + - 2 type: integer ResetToken: type: object @@ -2924,7 +2922,7 @@ components: token: type: string required: - - token + - token ResetTokenRequest: type: object properties: @@ -2932,34 +2930,34 @@ components: type: string minLength: 1 required: - - token + - token SaturnInvocationRequest: type: object properties: status: - $ref: "#/components/schemas/StatusBccEnum" + $ref: '#/components/schemas/StatusBccEnum' logs: type: string interrupted: type: boolean required: - - status + - status ScrimmageRecord: type: object properties: team_id: type: integer Ranked: - $ref: "#/components/schemas/ScrimmageRecordVariant" + $ref: '#/components/schemas/ScrimmageRecordVariant' Unranked: - $ref: "#/components/schemas/ScrimmageRecordVariant" + $ref: '#/components/schemas/ScrimmageRecordVariant' All: - $ref: "#/components/schemas/ScrimmageRecordVariant" + $ref: '#/components/schemas/ScrimmageRecordVariant' required: - - All - - Ranked - - Unranked - - team_id + - All + - Ranked + - Unranked + - team_id ScrimmageRecordVariant: type: object properties: @@ -2970,9 +2968,9 @@ components: ties: type: integer required: - - losses - - ties - - wins + - losses + - ties + - wins ScrimmageRequest: type: object properties: @@ -2988,7 +2986,7 @@ components: readOnly: true status: allOf: - - $ref: "#/components/schemas/ScrimmageStatusEnum" + - $ref: '#/components/schemas/ScrimmageStatusEnum' readOnly: true is_ranked: type: boolean @@ -3012,31 +3010,31 @@ components: format: double readOnly: true player_order: - $ref: "#/components/schemas/PlayerOrderEnum" + $ref: '#/components/schemas/PlayerOrderEnum' maps: type: array items: type: string readOnly: true required: - - created - - episode - - id - - is_ranked - - maps - - player_order - - requested_by - - requested_by_name - - requested_by_rating - - requested_to - - requested_to_name - - requested_to_rating - - status + - created + - episode + - id + - is_ranked + - maps + - player_order + - requested_by + - requested_by_name + - requested_by_rating + - requested_to + - requested_to_name + - requested_to_rating + - status ScrimmageRequestAcceptRejectEnum: enum: - - A - - R - - M + - A + - R + - M type: string ScrimmageRequestRequest: type: object @@ -3046,7 +3044,7 @@ components: requested_to: type: integer player_order: - $ref: "#/components/schemas/PlayerOrderEnum" + $ref: '#/components/schemas/PlayerOrderEnum' map_names: type: array items: @@ -3055,37 +3053,37 @@ components: writeOnly: true maxItems: 10 required: - - is_ranked - - map_names - - player_order - - requested_to + - is_ranked + - map_names + - player_order + - requested_to ScrimmageStatusEnum: enum: - - P - - Y - - N + - P + - Y + - N type: string Status526Enum: enum: - - R - - X - - S - - O + - R + - X + - S + - O type: string StatusBccEnum: enum: - - NEW - - QUE - - RUN - - TRY - - OK! - - ERR - - CAN + - NEW + - QUE + - RUN + - TRY + - OK! + - ERR + - CAN type: string StyleEnum: enum: - - SE - - DE + - SE + - DE type: string Submission: type: object @@ -3095,7 +3093,7 @@ components: readOnly: true status: allOf: - - $ref: "#/components/schemas/StatusBccEnum" + - $ref: '#/components/schemas/StatusBccEnum' readOnly: true logs: type: string @@ -3129,16 +3127,16 @@ components: type: string maxLength: 128 required: - - accepted - - created - - episode - - id - - logs - - status - - team - - teamname - - user - - username + - accepted + - created + - episode + - id + - logs + - status + - team + - teamname + - user + - username SubmissionDownload: type: object properties: @@ -3153,18 +3151,18 @@ components: type: string readOnly: true required: - - ready - - reason - - url + - ready + - reason + - url SubmissionReportRequest: type: object properties: invocation: - $ref: "#/components/schemas/SaturnInvocationRequest" + $ref: '#/components/schemas/SaturnInvocationRequest' accepted: type: boolean required: - - invocation + - invocation TeamCreate: type: object properties: @@ -3172,7 +3170,7 @@ components: type: integer readOnly: true profile: - $ref: "#/components/schemas/TeamProfilePrivate" + $ref: '#/components/schemas/TeamProfilePrivate' episode: type: string name: @@ -3182,7 +3180,7 @@ components: members: type: array items: - $ref: "#/components/schemas/UserPublic" + $ref: '#/components/schemas/UserPublic' readOnly: true join_key: type: string @@ -3190,19 +3188,19 @@ components: pattern: ^[-a-zA-Z0-9_]+$ status: allOf: - - $ref: "#/components/schemas/Status526Enum" + - $ref: '#/components/schemas/Status526Enum' readOnly: true required: - - id - - join_key - - members - - name - - status + - id + - join_key + - members + - name + - status TeamCreateRequest: type: object properties: profile: - $ref: "#/components/schemas/TeamProfilePrivateRequest" + $ref: '#/components/schemas/TeamProfilePrivateRequest' episode: type: string minLength: 1 @@ -3212,7 +3210,7 @@ components: pattern: ^[ -~]*$ maxLength: 32 required: - - name + - name TeamJoinRequest: type: object properties: @@ -3223,8 +3221,8 @@ components: type: string minLength: 1 required: - - join_key - - name + - join_key + - name TeamPrivate: type: object properties: @@ -3232,7 +3230,7 @@ components: type: integer readOnly: true profile: - $ref: "#/components/schemas/TeamProfilePrivate" + $ref: '#/components/schemas/TeamProfilePrivate' episode: type: string readOnly: true @@ -3242,7 +3240,7 @@ components: members: type: array items: - $ref: "#/components/schemas/UserPublic" + $ref: '#/components/schemas/UserPublic' readOnly: true join_key: type: string @@ -3250,20 +3248,20 @@ components: pattern: ^[-a-zA-Z0-9_]+$ status: allOf: - - $ref: "#/components/schemas/Status526Enum" + - $ref: '#/components/schemas/Status526Enum' readOnly: true required: - - episode - - id - - join_key - - members - - name - - status + - episode + - id + - join_key + - members + - name + - status TeamPrivateRequest: type: object properties: profile: - $ref: "#/components/schemas/TeamProfilePrivateRequest" + $ref: '#/components/schemas/TeamProfilePrivateRequest' TeamProfilePrivate: type: object properties: @@ -3288,18 +3286,18 @@ components: format: double readOnly: true auto_accept_reject_ranked: - $ref: "#/components/schemas/ScrimmageRequestAcceptRejectEnum" + $ref: '#/components/schemas/ScrimmageRequestAcceptRejectEnum' auto_accept_reject_unranked: - $ref: "#/components/schemas/ScrimmageRequestAcceptRejectEnum" + $ref: '#/components/schemas/ScrimmageRequestAcceptRejectEnum' eligible_for: type: array items: type: integer required: - - avatar_url - - has_avatar - - has_report - - rating + - avatar_url + - has_avatar + - has_report + - rating TeamProfilePrivateRequest: type: object properties: @@ -3311,9 +3309,9 @@ components: type: string maxLength: 1024 auto_accept_reject_ranked: - $ref: "#/components/schemas/ScrimmageRequestAcceptRejectEnum" + $ref: '#/components/schemas/ScrimmageRequestAcceptRejectEnum' auto_accept_reject_unranked: - $ref: "#/components/schemas/ScrimmageRequestAcceptRejectEnum" + $ref: '#/components/schemas/ScrimmageRequestAcceptRejectEnum' eligible_for: type: array items: @@ -3339,17 +3337,17 @@ components: format: double readOnly: true auto_accept_reject_ranked: - $ref: "#/components/schemas/ScrimmageRequestAcceptRejectEnum" + $ref: '#/components/schemas/ScrimmageRequestAcceptRejectEnum' auto_accept_reject_unranked: - $ref: "#/components/schemas/ScrimmageRequestAcceptRejectEnum" + $ref: '#/components/schemas/ScrimmageRequestAcceptRejectEnum' eligible_for: type: array items: type: integer required: - - avatar_url - - has_avatar - - rating + - avatar_url + - has_avatar + - rating TeamPublic: type: object properties: @@ -3357,7 +3355,7 @@ components: type: integer readOnly: true profile: - $ref: "#/components/schemas/TeamProfilePublic" + $ref: '#/components/schemas/TeamProfilePublic' episode: type: string readOnly: true @@ -3368,34 +3366,34 @@ components: members: type: array items: - $ref: "#/components/schemas/UserPublic" + $ref: '#/components/schemas/UserPublic' readOnly: true status: allOf: - - $ref: "#/components/schemas/Status526Enum" + - $ref: '#/components/schemas/Status526Enum' readOnly: true has_active_submission: type: string readOnly: true required: - - episode - - has_active_submission - - id - - members - - name - - status + - episode + - has_active_submission + - id + - members + - name + - status TeamRating: type: object properties: team: - $ref: "#/components/schemas/TeamPublic" + $ref: '#/components/schemas/TeamPublic' rating_history: type: array items: - $ref: "#/components/schemas/MatchRating" + $ref: '#/components/schemas/MatchRating' required: - - rating_history - - team + - rating_history + - team TeamReportRequest: type: object properties: @@ -3404,7 +3402,7 @@ components: format: binary writeOnly: true required: - - report + - report TokenObtainPair: type: object properties: @@ -3415,8 +3413,8 @@ components: type: string readOnly: true required: - - access - - refresh + - access + - refresh TokenObtainPairRequest: type: object properties: @@ -3429,8 +3427,8 @@ components: writeOnly: true minLength: 1 required: - - password - - username + - password + - username TokenRefresh: type: object properties: @@ -3438,7 +3436,7 @@ components: type: string readOnly: true required: - - access + - access TokenRefreshRequest: type: object properties: @@ -3447,7 +3445,7 @@ components: writeOnly: true minLength: 1 required: - - refresh + - refresh TokenVerifyRequest: type: object properties: @@ -3456,7 +3454,7 @@ components: writeOnly: true minLength: 1 required: - - token + - token Tournament: type: object properties: @@ -3472,7 +3470,7 @@ components: episode: type: string style: - $ref: "#/components/schemas/StyleEnum" + $ref: '#/components/schemas/StyleEnum' display_date: type: string format: date @@ -3498,16 +3496,16 @@ components: type: boolean readOnly: true required: - - display_date - - episode - - is_eligible - - is_public - - name_long - - name_short - - require_resume - - style - - submission_freeze - - submission_unfreeze + - display_date + - episode + - is_eligible + - is_public + - name_long + - name_short + - require_resume + - style + - submission_freeze + - submission_unfreeze TournamentRound: type: object properties: @@ -3518,8 +3516,9 @@ components: type: string external_id: type: integer - maximum: 32767 - minimum: -32768 + maximum: 9223372036854775807 + minimum: -9223372036854775808 + format: int64 nullable: true name: type: string @@ -3530,20 +3529,21 @@ components: type: integer release_status: allOf: - - $ref: "#/components/schemas/ReleaseStatusEnum" - minimum: -2147483648 - maximum: 2147483647 + - $ref: '#/components/schemas/ReleaseStatusEnum' + minimum: -9223372036854775808 + maximum: 9223372036854775807 display_order: type: integer - maximum: 32767 + maximum: 9223372036854775807 minimum: 0 + format: int64 in_progress: type: boolean required: - - display_order - - id - - name - - tournament + - display_order + - id + - name + - tournament TournamentSubmission: type: object properties: @@ -3552,7 +3552,7 @@ components: readOnly: true status: allOf: - - $ref: "#/components/schemas/StatusBccEnum" + - $ref: '#/components/schemas/StatusBccEnum' readOnly: true logs: type: string @@ -3589,19 +3589,19 @@ components: type: string readOnly: true required: - - accepted - - created - - description - - episode - - id - - logs - - package - - status - - team - - teamname - - tournament - - user - - username + - accepted + - created + - description + - episode + - id + - logs + - package + - status + - team + - teamname + - tournament + - user + - username UserCreate: type: object properties: @@ -3609,11 +3609,10 @@ components: type: integer readOnly: true profile: - $ref: "#/components/schemas/UserProfilePrivate" + $ref: '#/components/schemas/UserProfilePrivate' username: type: string - description: - Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 @@ -3634,22 +3633,21 @@ components: title: Staff status description: Designates whether the user can log into this admin site. required: - - email - - first_name - - id - - is_staff - - last_name - - username + - email + - first_name + - id + - is_staff + - last_name + - username UserCreateRequest: type: object properties: profile: - $ref: "#/components/schemas/UserProfilePrivateRequest" + $ref: '#/components/schemas/UserProfilePrivateRequest' username: type: string minLength: 1 - description: - Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 @@ -3672,11 +3670,11 @@ components: minLength: 1 maxLength: 30 required: - - email - - first_name - - last_name - - password - - username + - email + - first_name + - last_name + - password + - username UserPassed: type: object properties: @@ -3690,10 +3688,10 @@ components: passed: type: boolean required: - - email - - id - - passed - - username + - email + - id + - passed + - username UserPrivate: type: object properties: @@ -3701,12 +3699,11 @@ components: type: integer readOnly: true profile: - $ref: "#/components/schemas/UserProfilePrivate" + $ref: '#/components/schemas/UserProfilePrivate' username: type: string readOnly: true - description: - Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. email: type: string @@ -3725,17 +3722,17 @@ components: title: Staff status description: Designates whether the user can log into this admin site. required: - - email - - first_name - - id - - is_staff - - last_name - - username + - email + - first_name + - id + - is_staff + - last_name + - username UserPrivateRequest: type: object properties: profile: - $ref: "#/components/schemas/UserProfilePrivateRequest" + $ref: '#/components/schemas/UserProfilePrivateRequest' email: type: string format: email @@ -3751,14 +3748,14 @@ components: minLength: 1 maxLength: 30 required: - - email - - first_name - - last_name + - email + - first_name + - last_name UserProfilePrivate: type: object properties: gender: - $ref: "#/components/schemas/GenderEnum" + $ref: '#/components/schemas/GenderEnum' gender_details: type: string maxLength: 32 @@ -3782,18 +3779,18 @@ components: type: boolean readOnly: true country: - $ref: "#/components/schemas/CountryEnum" + $ref: '#/components/schemas/CountryEnum' required: - - avatar_url - - country - - gender - - has_avatar - - has_resume + - avatar_url + - country + - gender + - has_avatar + - has_resume UserProfilePrivateRequest: type: object properties: gender: - $ref: "#/components/schemas/GenderEnum" + $ref: '#/components/schemas/GenderEnum' gender_details: type: string maxLength: 32 @@ -3808,10 +3805,10 @@ components: maxLength: 16 pattern: ^[-a-zA-Z0-9_]+$ country: - $ref: "#/components/schemas/CountryEnum" + $ref: '#/components/schemas/CountryEnum' required: - - country - - gender + - country + - gender UserProfilePublic: type: object properties: @@ -3828,8 +3825,8 @@ components: type: boolean readOnly: true required: - - avatar_url - - has_avatar + - avatar_url + - has_avatar UserProfilePublicRequest: type: object properties: @@ -3846,11 +3843,10 @@ components: type: integer readOnly: true profile: - $ref: "#/components/schemas/UserProfilePublic" + $ref: '#/components/schemas/UserProfilePublic' username: type: string - description: - Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 @@ -3860,24 +3856,23 @@ components: title: Staff status description: Designates whether the user can log into this admin site. required: - - id - - is_staff - - username + - id + - is_staff + - username UserPublicRequest: type: object properties: profile: - $ref: "#/components/schemas/UserProfilePublicRequest" + $ref: '#/components/schemas/UserProfilePublicRequest' username: type: string minLength: 1 - description: - Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 required: - - username + - username UserResume: type: object properties: @@ -3892,9 +3887,9 @@ components: type: string readOnly: true required: - - ready - - reason - - url + - ready + - reason + - url securitySchemes: jwtAuth: type: http