2024-11-26 04:45:06 +00:00
|
|
|
openapi: 3.1.0
|
2024-11-26 01:22:45 +00:00
|
|
|
info:
|
2024-11-26 05:56:55 +00:00
|
|
|
title: StrafesNET Submissions - OpenAPI 3.1
|
|
|
|
description: Browse and manage map submissions in the staging pipeline.
|
2024-11-26 01:22:45 +00:00
|
|
|
version: 0.1.0
|
|
|
|
servers:
|
2024-11-26 05:56:55 +00:00
|
|
|
- url: https://submissions.strafes.net/v1
|
2024-11-26 01:22:45 +00:00
|
|
|
tags:
|
2024-11-26 05:56:55 +00:00
|
|
|
- name: Submissions
|
|
|
|
description: Submission operations
|
2024-12-04 03:29:59 +00:00
|
|
|
- name: Scripts
|
|
|
|
description: Script operations
|
2024-11-29 22:33:48 +00:00
|
|
|
security:
|
|
|
|
- cookieAuth: []
|
2024-11-26 01:22:45 +00:00
|
|
|
paths:
|
2024-11-26 05:56:55 +00:00
|
|
|
/submissions:
|
2024-11-26 01:22:45 +00:00
|
|
|
get:
|
2024-11-26 05:18:11 +00:00
|
|
|
summary: Get list of submissions
|
2024-11-26 05:56:55 +00:00
|
|
|
operationId: listSubmissions
|
2024-11-26 01:22:45 +00:00
|
|
|
tags:
|
2024-11-26 05:56:55 +00:00
|
|
|
- Submissions
|
2024-11-26 01:22:45 +00:00
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Pagination"
|
|
|
|
- name: filter
|
|
|
|
in: query
|
|
|
|
required: false
|
|
|
|
schema:
|
2024-11-26 05:56:55 +00:00
|
|
|
$ref: "#/components/schemas/SubmissionFilter"
|
2024-11-26 01:22:45 +00:00
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
2024-11-26 05:56:55 +00:00
|
|
|
$ref: "#/components/schemas/Submission"
|
2024-11-26 01:22:45 +00:00
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
2024-11-26 05:18:11 +00:00
|
|
|
post:
|
|
|
|
summary: Create new submission
|
2024-11-26 05:56:55 +00:00
|
|
|
operationId: createSubmission
|
2024-11-26 05:18:11 +00:00
|
|
|
tags:
|
2024-11-26 05:56:55 +00:00
|
|
|
- Submissions
|
2024-11-27 23:38:17 +00:00
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/SubmissionCreate'
|
2024-11-26 05:18:11 +00:00
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
2024-11-28 00:13:43 +00:00
|
|
|
$ref: "#/components/schemas/Id"
|
2024-11-26 05:18:11 +00:00
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
2024-11-26 05:56:55 +00:00
|
|
|
/submissions/{SubmissionID}:
|
2024-11-26 01:22:45 +00:00
|
|
|
get:
|
2024-11-26 04:45:06 +00:00
|
|
|
summary: Retrieve map with ID
|
2024-11-26 05:56:55 +00:00
|
|
|
operationId: getSubmission
|
2024-11-26 01:22:45 +00:00
|
|
|
tags:
|
2024-11-26 05:56:55 +00:00
|
|
|
- Submissions
|
2024-11-26 01:22:45 +00:00
|
|
|
parameters:
|
2024-11-26 05:56:55 +00:00
|
|
|
- name: SubmissionID
|
2024-11-26 01:22:45 +00:00
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
2024-11-26 05:56:55 +00:00
|
|
|
$ref: "#/components/schemas/Submission"
|
2024-11-26 01:22:45 +00:00
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
2024-11-26 05:57:19 +00:00
|
|
|
/submissions/{SubmissionID}/model:
|
|
|
|
patch:
|
|
|
|
summary: Update model following role restrictions
|
|
|
|
operationId: patchSubmissionModel
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
- name: ModelID
|
|
|
|
in: query
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
- name: VersionID
|
|
|
|
in: query
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
/submissions/{SubmissionID}/completed:
|
|
|
|
patch:
|
|
|
|
summary: Retrieve map with ID
|
|
|
|
operationId: patchSubmissionCompleted
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
2024-11-28 01:44:20 +00:00
|
|
|
/submissions/{SubmissionID}/status/submit:
|
2024-11-26 05:57:19 +00:00
|
|
|
patch:
|
2024-11-28 01:44:20 +00:00
|
|
|
summary: Role Submitter changes status from UnderConstruction|ChangesRequested -> Submitted
|
|
|
|
operationId: actionSubmissionSubmit
|
2024-11-26 05:57:19 +00:00
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
2024-11-28 01:44:30 +00:00
|
|
|
/submissions/{SubmissionID}/status/revoke:
|
|
|
|
patch:
|
|
|
|
summary: Role Submitter changes status from Submitted|ChangesRequested -> UnderConstruction
|
|
|
|
operationId: actionSubmissionRevoke
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
/submissions/{SubmissionID}/status/trigger-validate:
|
|
|
|
patch:
|
|
|
|
summary: Role Reviewer triggers validation and changes status from Submitted|Accepted -> Validating
|
|
|
|
operationId: actionSubmissionTriggerValidate
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
/submissions/{SubmissionID}/status/reject:
|
|
|
|
patch:
|
|
|
|
summary: Role Reviewer changes status from Submitted -> Rejected
|
|
|
|
operationId: actionSubmissionReject
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
/submissions/{SubmissionID}/status/request-changes:
|
|
|
|
patch:
|
|
|
|
summary: Role Reviewer changes status from Validated|Accepted|Submitted -> ChangesRequested
|
|
|
|
operationId: actionSubmissionRequestChanges
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
/submissions/{SubmissionID}/status/validate:
|
|
|
|
patch:
|
|
|
|
summary: Role Validator changes status from Validating -> Validated
|
|
|
|
operationId: actionSubmissionValidate
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
/submissions/{SubmissionID}/status/publish:
|
|
|
|
patch:
|
|
|
|
summary: Role Validator changes status from Publishing -> Published
|
|
|
|
operationId: actionSubmissionPublish
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
/submissions/{SubmissionID}/status/trigger-publish:
|
|
|
|
patch:
|
|
|
|
summary: Role Admin changes status from Validated -> Publishing
|
|
|
|
operationId: actionSubmissionTriggerPublish
|
|
|
|
tags:
|
|
|
|
- Submissions
|
|
|
|
parameters:
|
|
|
|
- name: SubmissionID
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
2024-12-04 03:29:59 +00:00
|
|
|
/scripts/replacements:
|
|
|
|
get:
|
|
|
|
summary: Get the replacements for the provided list of scripts
|
|
|
|
operationId: getReplacementScripts
|
|
|
|
tags:
|
|
|
|
- Scripts
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
"200":
|
|
|
|
description: Successful response
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
oneOf:
|
|
|
|
- type: null
|
|
|
|
- type: string
|
|
|
|
default:
|
|
|
|
description: General Error
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/Error"
|
2024-11-26 01:22:45 +00:00
|
|
|
components:
|
2024-11-29 22:33:48 +00:00
|
|
|
securitySchemes:
|
|
|
|
cookieAuth:
|
|
|
|
type: apiKey
|
|
|
|
in: cookie
|
|
|
|
name: SESSIONID
|
2024-11-26 01:22:45 +00:00
|
|
|
schemas:
|
2024-11-28 00:13:43 +00:00
|
|
|
Id:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
ID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
2024-11-26 01:22:45 +00:00
|
|
|
User:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
ID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
Username:
|
|
|
|
type: string
|
|
|
|
StateID:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
2024-11-26 05:56:55 +00:00
|
|
|
Submission:
|
2024-11-26 01:22:45 +00:00
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
ID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
DisplayName:
|
|
|
|
type: string
|
|
|
|
Creator:
|
|
|
|
type: string
|
|
|
|
GameID:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
|
|
|
Date:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
2024-11-26 22:42:22 +00:00
|
|
|
Submitter:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
AssetID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
AssetVersion:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
Completed:
|
|
|
|
type: boolean
|
|
|
|
SubmissionType:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
|
|
|
TargetAssetID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
StatusID:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
2024-11-26 05:56:55 +00:00
|
|
|
SubmissionFilter:
|
2024-11-26 01:22:45 +00:00
|
|
|
type: object
|
2024-11-26 03:06:12 +00:00
|
|
|
properties:
|
2024-11-26 01:22:45 +00:00
|
|
|
ID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
2024-11-26 04:45:06 +00:00
|
|
|
DisplayName:
|
|
|
|
type: string
|
|
|
|
Creator:
|
|
|
|
type: string
|
2024-11-26 01:22:45 +00:00
|
|
|
GameID:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
2024-11-26 04:45:06 +00:00
|
|
|
Date:
|
2024-11-26 01:22:45 +00:00
|
|
|
type: integer
|
|
|
|
format: int64
|
2024-11-27 23:38:17 +00:00
|
|
|
SubmissionCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
DisplayName:
|
|
|
|
type: string
|
|
|
|
Creator:
|
|
|
|
type: string
|
|
|
|
GameID:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
|
|
|
Submitter:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
AssetID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
AssetVersion:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
SubmissionType:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
|
|
|
TargetAssetID:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
2024-11-26 01:22:45 +00:00
|
|
|
Pagination:
|
|
|
|
type: object
|
|
|
|
required:
|
|
|
|
- Page
|
|
|
|
- Limit
|
|
|
|
properties:
|
|
|
|
Page:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
|
|
|
minimum: 1
|
|
|
|
Limit:
|
|
|
|
type: integer
|
|
|
|
format: int32
|
|
|
|
minimum: 1
|
|
|
|
maximum: 100
|
|
|
|
Error:
|
|
|
|
description: Represents error object
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
message:
|
|
|
|
type: string
|
|
|
|
required:
|
|
|
|
- code
|
2024-11-26 03:06:12 +00:00
|
|
|
- message
|