openapi: 3.1.0 info: title: StrafesNET Submissions - OpenAPI 3.1 description: Browse and manage map submissions in the staging pipeline. version: 0.1.0 servers: - url: https://submissions.strafes.net/v1 tags: - name: Submissions description: Submission operations - name: Scripts description: Script operations security: - cookieAuth: [] paths: /submissions: get: summary: Get list of submissions operationId: listSubmissions tags: - Submissions parameters: - name: page in: query required: true schema: $ref: "#/components/schemas/Pagination" - name: filter in: query required: false schema: $ref: "#/components/schemas/SubmissionFilter" responses: "200": description: Successful response content: application/json: schema: type: array items: $ref: "#/components/schemas/Submission" default: description: General Error content: application/json: schema: $ref: "#/components/schemas/Error" post: summary: Create new submission operationId: createSubmission tags: - Submissions requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmissionCreate' responses: "200": description: Successful response content: application/json: schema: $ref: "#/components/schemas/Id" default: description: General Error content: application/json: schema: $ref: "#/components/schemas/Error" /submissions/{SubmissionID}: get: summary: Retrieve map with ID operationId: getSubmission tags: - Submissions parameters: - name: SubmissionID in: path required: true schema: type: integer format: int64 responses: "200": description: Successful response content: application/json: schema: $ref: "#/components/schemas/Submission" default: description: General Error content: application/json: schema: $ref: "#/components/schemas/Error" /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" /submissions/{SubmissionID}/status/submit: patch: summary: Role Submitter changes status from UnderConstruction|ChangesRequested -> Submitted operationId: actionSubmissionSubmit 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/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" /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" components: securitySchemes: cookieAuth: type: apiKey in: cookie name: SESSIONID schemas: Id: type: object properties: ID: type: integer format: int64 User: type: object properties: ID: type: integer format: int64 Username: type: string StateID: type: integer format: int32 Submission: type: object properties: ID: type: integer format: int64 DisplayName: type: string Creator: type: string GameID: type: integer format: int32 Date: type: integer format: int64 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 SubmissionFilter: type: object properties: ID: type: integer format: int64 DisplayName: type: string Creator: type: string GameID: type: integer format: int32 Date: type: integer format: int64 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 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 - message