imports:
  submission: submission.yml
  problemV2: v2/problem.yml

types:
  Test:
    union:
      and: boolean
      or: boolean

service:
  auth: false
  base-path: /admin
  endpoints:
    updateTestSubmissionStatus:
      path: /store-test-submission-status/{submissionId}
      path-parameters:
        submissionId: submission.SubmissionId
      request:
        body:
          type: submission.TestSubmissionStatus
      method: POST

    sendTestSubmissionUpdate:
      path: /store-test-submission-status-v2/{submissionId}
      path-parameters:
        submissionId: submission.SubmissionId
      request:
        body:
          type: submission.TestSubmissionUpdate
      method: POST

    updateWorkspaceSubmissionStatus:
      path: /store-workspace-submission-status/{submissionId}
      path-parameters:
        submissionId: submission.SubmissionId
      request:
        body:
          type: submission.WorkspaceSubmissionStatus
      method: POST

    sendWorkspaceSubmissionUpdate:
      path: /store-workspace-submission-status-v2/{submissionId}
      path-parameters:
        submissionId: submission.SubmissionId
      request:
        body:
          type: submission.WorkspaceSubmissionUpdate
      method: POST

    storeTracedTestCase:
      path: /store-test-trace/submission/{submissionId}/testCase/{testCaseId}
      path-parameters:
        submissionId: submission.SubmissionId
        testCaseId: string
      request:
        name: StoreTracedTestCaseRequest
        body:
          properties:
            result: submission.TestCaseResultWithStdout
            traceResponses: list<submission.TraceResponse>
      method: POST

    storeTracedTestCaseV2:
      path: /store-test-trace-v2/submission/{submissionId}/testCase/{testCaseId}
      path-parameters:
        submissionId: submission.SubmissionId
        testCaseId: problemV2.TestCaseId
      request:
        body:
          type: list<submission.TraceResponseV2>
      method: POST

    storeTracedWorkspace:
      path: /store-workspace-trace/submission/{submissionId}
      path-parameters:
        submissionId: submission.SubmissionId
      request:
        name: StoreTracedWorkspaceRequest
        body:
          properties:
            workspaceRunDetails: submission.WorkspaceRunDetails
            traceResponses: list<submission.TraceResponse>
      method: POST

    storeTracedWorkspaceV2:
      path: /store-workspace-trace-v2/submission/{submissionId}
      path-parameters:
        submissionId: submission.SubmissionId
      request:
        body:
          type: list<submission.TraceResponseV2>
      method: POST
