From 654aa61dea7b49adb6436f9672e18b8630fd6e45 Mon Sep 17 00:00:00 2001 From: Deep Singhvi Date: Tue, 29 Oct 2024 11:48:41 -0400 Subject: [PATCH] fix(cli): conjure importer brings in endpoint level descriptions (#5034) --- .../__test__/__snapshots__/trace.json | 75 +++++++-- .../conjure-to-fern/src/ConjureImporter.ts | 4 + packages/cli/cli/versions.yml | 7 + .../type-declarations/convertExampleType.ts | 3 +- .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + seed/openapi/mixed-case/openapi.yml | 2 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + seed/postman/mixed-case/collection.json | 4 +- .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-case/tests/test_service.py | 2 + .../mixed-case/.mock/definition/service.yml | 3 + seed/ruby-model/mixed-case/lib/requests.rb | 132 ++++++++++++++++ .../mixed-case/lib/seed_mixed_case_client.rb | 46 +++++- .../seed_mixed_case_client/service/client.rb | 149 ++++++++++++++++++ .../ruby-model/mixed-case/lib/types_export.rb | 7 + .../mixed-case/seed_mixed_case_client.gemspec | 4 + .../mixed-case/.mock/definition/service.yml | 3 + .../.mock/definition/service.yml | 3 + .../.mock/definition/service.yml | 3 + .../.mock/definition/service.yml | 3 + .../.mock/definition/service.yml | 3 + .../apis/mixed-case/definition/service.yml | 3 + 34 files changed, 476 insertions(+), 25 deletions(-) create mode 100644 seed/ruby-model/mixed-case/lib/requests.rb create mode 100644 seed/ruby-model/mixed-case/lib/seed_mixed_case_client/service/client.rb create mode 100644 seed/ruby-model/mixed-case/lib/types_export.rb diff --git a/packages/cli/api-importers/conjure/conjure-to-fern-tests/__test__/__snapshots__/trace.json b/packages/cli/api-importers/conjure/conjure-to-fern-tests/__test__/__snapshots__/trace.json index c096670e508..a1778e15eaa 100644 --- a/packages/cli/api-importers/conjure/conjure-to-fern-tests/__test__/__snapshots__/trace.json +++ b/packages/cli/api-importers/conjure/conjure-to-fern-tests/__test__/__snapshots__/trace.json @@ -132,7 +132,7 @@ }, "ExecutionSesssionManagement/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /sessions\n endpoints:\n createExecutionSession:\n auth: true\n path: /create-session/{language}\n method: POST\n response: ExecutionSessionResponse\n path-parameters:\n language: commons.Language\n getExecutionSession:\n auth: true\n path: /{sessionId}\n method: GET\n response: optional\n path-parameters:\n sessionId: string\n stopExecutionSession:\n auth: true\n path: /stop/{sessionId}\n method: DELETE\n path-parameters:\n sessionId: string\n getExecutionSessionsState:\n auth: true\n path: /execution-sessions-state\n method: GET\n response: ExecutionSessionsState\ntypes:\n SubmissionId:\n type: string\n ShareId:\n type: string\n SubmissionRequest:\n union:\n initializeProblemRequest:\n type: InitializeProblemRequest\n key: initializeProblemRequest\n initializeWorkspaceRequest:\n type: commons.EmptyObject\n key: initializeWorkspaceRequest\n submitV2:\n type: SubmitRequestV2\n key: submitV2\n workspaceSubmit:\n type: WorkspaceSubmitRequest\n key: workspaceSubmit\n stop:\n type: StopRequest\n key: stop\n InitializeProblemRequest:\n properties:\n problemId: commons.ProblemId\n problemVersion: optional\n SubmitRequestV2:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n problemId: commons.ProblemId\n problemVersion: optional\n userId: optional\n WorkspaceSubmitRequest:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n userId: optional\n SubmissionFileInfo:\n properties:\n directory: string\n filename: string\n contents: string\n SubmissionTypeEnum:\n enum:\n - TEST\n StopRequest:\n properties:\n submissionId: SubmissionId\n SubmissionResponse:\n union:\n serverInitialized:\n type: commons.EmptyObject\n key: serverInitialized\n problemInitialized:\n type: commons.ProblemId\n key: problemInitialized\n workspaceInitialized:\n type: commons.EmptyObject\n key: workspaceInitialized\n serverErrored:\n type: ExceptionInfo\n key: serverErrored\n codeExecutionUpdate:\n type: CodeExecutionUpdate\n key: codeExecutionUpdate\n terminated:\n type: TerminatedResponse\n key: terminated\n CodeExecutionUpdate:\n union:\n buildingExecutor:\n type: BuildingExecutorResponse\n docs: >-\n Statuses if an executor for the session isn't ready (Before\n RunningResponse).\n key: buildingExecutor\n running:\n type: RunningResponse\n docs: Sent once a test submission is executing.\n key: running\n errored:\n type: ErroredResponse\n docs: Sent if a submission cannot be run (i.e. Compile Error).\n key: errored\n stopped:\n type: StoppedResponse\n docs: Sent if a submission is stopped.\n key: stopped\n graded:\n type: GradedResponse\n docs: Graded testcases without trace information.\n key: graded\n gradedV2:\n type: GradedResponseV2\n docs: Graded submission for v2 problems.\n key: gradedV2\n workspaceRan:\n type: WorkspaceRanResponse\n docs: Workspace run without trace information.\n key: workspaceRan\n recording:\n type: RecordingResponseNotification\n docs: Gives progress about what is being recorded.\n key: recording\n recorded:\n type: RecordedResponseNotification\n docs: Graded testcases with trace information.\n key: recorded\n invalidRequest:\n type: InvalidRequestResponse\n docs: Sent if an invalid request is sent for a submission.\n key: invalidRequest\n finished:\n type: FinishedResponse\n docs: Sent once a submission is graded and fully recorded.\n key: finished\n BuildingExecutorResponse:\n properties:\n submissionId: SubmissionId\n status: ExecutionSessionStatus\n RunningResponse:\n properties:\n submissionId: SubmissionId\n state: RunningSubmissionState\n RunningSubmissionState:\n enum:\n - QUEUEING_SUBMISSION\n - KILLING_HISTORICAL_SUBMISSIONS\n - WRITING_SUBMISSION_TO_FILE\n - COMPILING_SUBMISSION\n - RUNNING_SUBMISSION\n ErroredResponse:\n properties:\n submissionId: SubmissionId\n errorInfo: ErrorInfo\n ErrorInfo:\n union:\n compileError:\n type: CompileError\n key: compileError\n runtimeError:\n type: RuntimeError\n docs: >\n If the submission cannot be executed and throws a runtime error before\n getting to any of the testcases.\n key: runtimeError\n internalError:\n type: InternalError\n docs: |\n If the trace backend encounters an unexpected error.\n key: internalError\n CompileError:\n properties:\n message: string\n RuntimeError:\n properties:\n message: string\n InternalError:\n properties:\n exceptionInfo: ExceptionInfo\n StoppedResponse:\n properties:\n submissionId: SubmissionId\n WorkspaceRanResponse:\n properties:\n submissionId: SubmissionId\n runDetails: WorkspaceRunDetails\n WorkspaceRunDetails:\n properties:\n exceptionV2: optional\n exception: optional\n stdout: string\n GradedResponse:\n properties:\n submissionId: SubmissionId\n testCases: map\n GradedResponseV2:\n properties:\n submissionId: SubmissionId\n testCases: map\n TestCaseGrade:\n union:\n hidden:\n type: TestCaseHiddenGrade\n key: hidden\n nonHidden:\n type: TestCaseNonHiddenGrade\n key: nonHidden\n TestCaseHiddenGrade:\n properties:\n passed: boolean\n TestCaseNonHiddenGrade:\n properties:\n passed: boolean\n actualResult: optional\n exception: optional\n stdout: string\n RecordedResponseNotification:\n properties:\n submissionId: SubmissionId\n traceResponsesSize: integer\n testCaseId: optional\n RecordingResponseNotification:\n properties:\n submissionId: SubmissionId\n testCaseId: optional\n lineNumber: integer\n lightweightStackInfo: LightweightStackframeInformation\n tracedFile: optional\n LightweightStackframeInformation:\n properties:\n numStackFrames: integer\n topStackFrameMethodName: string\n TestCaseResultWithStdout:\n properties:\n result: TestCaseResult\n stdout: string\n TestCaseResult:\n properties:\n expectedResult: commons.VariableValue\n actualResult: ActualResult\n passed: boolean\n ActualResult:\n union:\n value:\n type: commons.VariableValue\n key: value\n exception:\n type: ExceptionInfo\n key: exception\n exceptionV2:\n type: ExceptionV2\n key: exceptionV2\n ExceptionV2:\n union:\n generic:\n type: ExceptionInfo\n key: generic\n timeout:\n type: commons.EmptyObject\n key: timeout\n ExceptionInfo:\n properties:\n exceptionType: string\n exceptionMessage: string\n exceptionStacktrace: string\n InvalidRequestResponse:\n properties:\n request: SubmissionRequest\n cause: InvalidRequestCause\n InvalidRequestCause:\n union:\n submissionIdNotFound:\n type: SubmissionIdNotFound\n docs: The submission request references a submission id that doesn't exist.\n key: submissionIdNotFound\n customTestCasesUnsupported:\n type: CustomTestCasesUnsupported\n key: customTestCasesUnsupported\n unexpectedLanguage:\n type: UnexpectedLanguageError\n docs: The submission request was routed to an incorrect language executor.\n key: unexpectedLanguage\n ExistingSubmissionExecuting:\n properties:\n submissionId: SubmissionId\n SubmissionIdNotFound:\n properties:\n missingSubmissionId: SubmissionId\n CustomTestCasesUnsupported:\n properties:\n problemId: commons.ProblemId\n submissionId: SubmissionId\n UnexpectedLanguageError:\n properties:\n expectedLanguage: commons.Language\n actualLanguage: commons.Language\n TerminatedResponse:\n properties: {}\n FinishedResponse:\n properties:\n submissionId: SubmissionId\n StdoutResponse:\n properties:\n submissionId: SubmissionId\n stdout: string\n StderrResponse:\n properties:\n submissionId: SubmissionId\n stderr: string\n TraceResponse:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TraceResponseV2:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n file: TracedFile\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TracedFile:\n properties:\n filename: string\n directory: string\n ExpressionLocation:\n properties:\n start: integer\n offset: integer\n StackInformation:\n properties:\n numStackFrames: integer\n topStackFrame: optional\n StackFrame:\n properties:\n methodName: string\n lineNumber: integer\n scopes: list\n Scope:\n properties:\n variables: map\n ExecutionSessionResponse:\n properties:\n sessionId: string\n executionSessionUrl: optional\n language: commons.Language\n status: ExecutionSessionStatus\n ExecutionSessionStatus:\n enum:\n - CREATING_CONTAINER\n - PROVISIONING_CONTAINER\n - PENDING_CONTAINER\n - RUNNING_CONTAINER\n - LIVE_CONTAINER\n - FAILED_TO_LAUNCH\n SubmissionStateV2:\n properties:\n timeSubmitted: datetime\n language: commons.Language\n submissionFiles: list\n submissionStatus: SubmissionStatusV2\n SubmissionStatusV2:\n union:\n test:\n type: TestSubmissionStatusV2\n key: test\n workspace:\n type: WorkspaceSubmissionStatusV2\n key: workspace\n TestSubmissionStatusV2:\n properties:\n updates: list\n problemId: commons.ProblemId\n problemVersion: integer\n problemInfo: problemV2.ProblemInfoV2\n WorkspaceSubmissionStatusV2:\n properties:\n updates: list\n TestSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: TestSubmissionUpdateInfo\n TestSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n gradedTestCase:\n type: GradedTestCaseUpdate\n key: gradedTestCase\n recordedTestCase:\n type: RecordedTestCaseUpdate\n key: recordedTestCase\n finished:\n type: commons.EmptyObject\n key: finished\n WorkspaceSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: WorkspaceSubmissionUpdateInfo\n WorkspaceSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n stopped:\n type: commons.EmptyObject\n key: stopped\n traced:\n type: commons.EmptyObject\n key: traced\n tracedV2:\n type: WorkspaceTracedUpdate\n key: tracedV2\n errored:\n type: ErrorInfo\n key: errored\n finished:\n type: commons.EmptyObject\n key: finished\n GradedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n grade: TestCaseGrade\n RecordedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n traceResponsesSize: integer\n WorkspaceTracedUpdate:\n properties:\n traceResponsesSize: integer\n SubmissionState:\n properties:\n timeSubmitted: optional\n submission: string\n language: commons.Language\n submissionTypeState: SubmissionTypeState\n SubmissionTypeState:\n union:\n test:\n type: TestSubmissionState\n key: test\n workspace:\n type: WorkspaceSubmissionState\n key: workspace\n WorkspaceSubmissionState:\n properties:\n status: WorkspaceSubmissionStatus\n WorkspaceSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n traced:\n type: WorkspaceRunDetails\n key: traced\n TestSubmissionState:\n properties:\n problemId: commons.ProblemId\n defaultTestCases: list\n customTestCases: list\n status: TestSubmissionStatus\n TestSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n testCaseIdToState:\n type: map\n key: testCaseIdToState\n SubmissionStatusForTestCase:\n union:\n graded:\n type: TestCaseResultWithStdout\n key: graded\n gradedV2:\n type: TestCaseGrade\n key: gradedV2\n traced:\n type: TracedTestCase\n key: traced\n TracedTestCase:\n properties:\n result: TestCaseResultWithStdout\n traceResponsesSize: integer\n TraceResponsesPage:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n TraceResponsesPageV2:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n GetTraceResponsesPageRequest:\n properties:\n offset:\n type: optional\n WorkspaceStarterFilesResponse:\n properties:\n files: map\n WorkspaceStarterFilesResponseV2:\n properties:\n filesByLanguage: map\n WorkspaceFiles:\n properties:\n mainFile: commons.FileInfo\n readOnlyFiles: list\n ExecutionSessionsState:\n properties:\n states: map\n numWarmingInstances: optional\n warmingSessionIds: list\n ExecutionSessionState:\n properties:\n lastTimeContacted: optional\n sessionId: string\n isWarmInstance: boolean\n awsTaskId: optional\n language: commons.Language\n status: ExecutionSessionStatus\nimports:\n commons: ../commons/__package__.yml\n problemV2: ../ProblemInfoServicV2/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /sessions\n endpoints:\n createExecutionSession:\n auth: true\n path: /create-session/{language}\n method: POST\n response: ExecutionSessionResponse\n docs: Returns sessionId and execution server URL for session. Spins up server.\n path-parameters:\n language: commons.Language\n getExecutionSession:\n auth: true\n path: /{sessionId}\n method: GET\n response: optional\n docs: >-\n Returns execution server URL for session. Returns empty if session isn't\n registered.\n path-parameters:\n sessionId: string\n stopExecutionSession:\n auth: true\n path: /stop/{sessionId}\n method: DELETE\n docs: Stops execution session.\n path-parameters:\n sessionId: string\n getExecutionSessionsState:\n auth: true\n path: /execution-sessions-state\n method: GET\n response: ExecutionSessionsState\ntypes:\n SubmissionId:\n type: string\n ShareId:\n type: string\n SubmissionRequest:\n union:\n initializeProblemRequest:\n type: InitializeProblemRequest\n key: initializeProblemRequest\n initializeWorkspaceRequest:\n type: commons.EmptyObject\n key: initializeWorkspaceRequest\n submitV2:\n type: SubmitRequestV2\n key: submitV2\n workspaceSubmit:\n type: WorkspaceSubmitRequest\n key: workspaceSubmit\n stop:\n type: StopRequest\n key: stop\n InitializeProblemRequest:\n properties:\n problemId: commons.ProblemId\n problemVersion: optional\n SubmitRequestV2:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n problemId: commons.ProblemId\n problemVersion: optional\n userId: optional\n WorkspaceSubmitRequest:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n userId: optional\n SubmissionFileInfo:\n properties:\n directory: string\n filename: string\n contents: string\n SubmissionTypeEnum:\n enum:\n - TEST\n StopRequest:\n properties:\n submissionId: SubmissionId\n SubmissionResponse:\n union:\n serverInitialized:\n type: commons.EmptyObject\n key: serverInitialized\n problemInitialized:\n type: commons.ProblemId\n key: problemInitialized\n workspaceInitialized:\n type: commons.EmptyObject\n key: workspaceInitialized\n serverErrored:\n type: ExceptionInfo\n key: serverErrored\n codeExecutionUpdate:\n type: CodeExecutionUpdate\n key: codeExecutionUpdate\n terminated:\n type: TerminatedResponse\n key: terminated\n CodeExecutionUpdate:\n union:\n buildingExecutor:\n type: BuildingExecutorResponse\n docs: >-\n Statuses if an executor for the session isn't ready (Before\n RunningResponse).\n key: buildingExecutor\n running:\n type: RunningResponse\n docs: Sent once a test submission is executing.\n key: running\n errored:\n type: ErroredResponse\n docs: Sent if a submission cannot be run (i.e. Compile Error).\n key: errored\n stopped:\n type: StoppedResponse\n docs: Sent if a submission is stopped.\n key: stopped\n graded:\n type: GradedResponse\n docs: Graded testcases without trace information.\n key: graded\n gradedV2:\n type: GradedResponseV2\n docs: Graded submission for v2 problems.\n key: gradedV2\n workspaceRan:\n type: WorkspaceRanResponse\n docs: Workspace run without trace information.\n key: workspaceRan\n recording:\n type: RecordingResponseNotification\n docs: Gives progress about what is being recorded.\n key: recording\n recorded:\n type: RecordedResponseNotification\n docs: Graded testcases with trace information.\n key: recorded\n invalidRequest:\n type: InvalidRequestResponse\n docs: Sent if an invalid request is sent for a submission.\n key: invalidRequest\n finished:\n type: FinishedResponse\n docs: Sent once a submission is graded and fully recorded.\n key: finished\n BuildingExecutorResponse:\n properties:\n submissionId: SubmissionId\n status: ExecutionSessionStatus\n RunningResponse:\n properties:\n submissionId: SubmissionId\n state: RunningSubmissionState\n RunningSubmissionState:\n enum:\n - QUEUEING_SUBMISSION\n - KILLING_HISTORICAL_SUBMISSIONS\n - WRITING_SUBMISSION_TO_FILE\n - COMPILING_SUBMISSION\n - RUNNING_SUBMISSION\n ErroredResponse:\n properties:\n submissionId: SubmissionId\n errorInfo: ErrorInfo\n ErrorInfo:\n union:\n compileError:\n type: CompileError\n key: compileError\n runtimeError:\n type: RuntimeError\n docs: >\n If the submission cannot be executed and throws a runtime error before\n getting to any of the testcases.\n key: runtimeError\n internalError:\n type: InternalError\n docs: |\n If the trace backend encounters an unexpected error.\n key: internalError\n CompileError:\n properties:\n message: string\n RuntimeError:\n properties:\n message: string\n InternalError:\n properties:\n exceptionInfo: ExceptionInfo\n StoppedResponse:\n properties:\n submissionId: SubmissionId\n WorkspaceRanResponse:\n properties:\n submissionId: SubmissionId\n runDetails: WorkspaceRunDetails\n WorkspaceRunDetails:\n properties:\n exceptionV2: optional\n exception: optional\n stdout: string\n GradedResponse:\n properties:\n submissionId: SubmissionId\n testCases: map\n GradedResponseV2:\n properties:\n submissionId: SubmissionId\n testCases: map\n TestCaseGrade:\n union:\n hidden:\n type: TestCaseHiddenGrade\n key: hidden\n nonHidden:\n type: TestCaseNonHiddenGrade\n key: nonHidden\n TestCaseHiddenGrade:\n properties:\n passed: boolean\n TestCaseNonHiddenGrade:\n properties:\n passed: boolean\n actualResult: optional\n exception: optional\n stdout: string\n RecordedResponseNotification:\n properties:\n submissionId: SubmissionId\n traceResponsesSize: integer\n testCaseId: optional\n RecordingResponseNotification:\n properties:\n submissionId: SubmissionId\n testCaseId: optional\n lineNumber: integer\n lightweightStackInfo: LightweightStackframeInformation\n tracedFile: optional\n LightweightStackframeInformation:\n properties:\n numStackFrames: integer\n topStackFrameMethodName: string\n TestCaseResultWithStdout:\n properties:\n result: TestCaseResult\n stdout: string\n TestCaseResult:\n properties:\n expectedResult: commons.VariableValue\n actualResult: ActualResult\n passed: boolean\n ActualResult:\n union:\n value:\n type: commons.VariableValue\n key: value\n exception:\n type: ExceptionInfo\n key: exception\n exceptionV2:\n type: ExceptionV2\n key: exceptionV2\n ExceptionV2:\n union:\n generic:\n type: ExceptionInfo\n key: generic\n timeout:\n type: commons.EmptyObject\n key: timeout\n ExceptionInfo:\n properties:\n exceptionType: string\n exceptionMessage: string\n exceptionStacktrace: string\n InvalidRequestResponse:\n properties:\n request: SubmissionRequest\n cause: InvalidRequestCause\n InvalidRequestCause:\n union:\n submissionIdNotFound:\n type: SubmissionIdNotFound\n docs: The submission request references a submission id that doesn't exist.\n key: submissionIdNotFound\n customTestCasesUnsupported:\n type: CustomTestCasesUnsupported\n key: customTestCasesUnsupported\n unexpectedLanguage:\n type: UnexpectedLanguageError\n docs: The submission request was routed to an incorrect language executor.\n key: unexpectedLanguage\n ExistingSubmissionExecuting:\n properties:\n submissionId: SubmissionId\n SubmissionIdNotFound:\n properties:\n missingSubmissionId: SubmissionId\n CustomTestCasesUnsupported:\n properties:\n problemId: commons.ProblemId\n submissionId: SubmissionId\n UnexpectedLanguageError:\n properties:\n expectedLanguage: commons.Language\n actualLanguage: commons.Language\n TerminatedResponse:\n properties: {}\n FinishedResponse:\n properties:\n submissionId: SubmissionId\n StdoutResponse:\n properties:\n submissionId: SubmissionId\n stdout: string\n StderrResponse:\n properties:\n submissionId: SubmissionId\n stderr: string\n TraceResponse:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TraceResponseV2:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n file: TracedFile\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TracedFile:\n properties:\n filename: string\n directory: string\n ExpressionLocation:\n properties:\n start: integer\n offset: integer\n StackInformation:\n properties:\n numStackFrames: integer\n topStackFrame: optional\n StackFrame:\n properties:\n methodName: string\n lineNumber: integer\n scopes: list\n Scope:\n properties:\n variables: map\n ExecutionSessionResponse:\n properties:\n sessionId: string\n executionSessionUrl: optional\n language: commons.Language\n status: ExecutionSessionStatus\n ExecutionSessionStatus:\n enum:\n - CREATING_CONTAINER\n - PROVISIONING_CONTAINER\n - PENDING_CONTAINER\n - RUNNING_CONTAINER\n - LIVE_CONTAINER\n - FAILED_TO_LAUNCH\n SubmissionStateV2:\n properties:\n timeSubmitted: datetime\n language: commons.Language\n submissionFiles: list\n submissionStatus: SubmissionStatusV2\n SubmissionStatusV2:\n union:\n test:\n type: TestSubmissionStatusV2\n key: test\n workspace:\n type: WorkspaceSubmissionStatusV2\n key: workspace\n TestSubmissionStatusV2:\n properties:\n updates: list\n problemId: commons.ProblemId\n problemVersion: integer\n problemInfo: problemV2.ProblemInfoV2\n WorkspaceSubmissionStatusV2:\n properties:\n updates: list\n TestSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: TestSubmissionUpdateInfo\n TestSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n gradedTestCase:\n type: GradedTestCaseUpdate\n key: gradedTestCase\n recordedTestCase:\n type: RecordedTestCaseUpdate\n key: recordedTestCase\n finished:\n type: commons.EmptyObject\n key: finished\n WorkspaceSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: WorkspaceSubmissionUpdateInfo\n WorkspaceSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n stopped:\n type: commons.EmptyObject\n key: stopped\n traced:\n type: commons.EmptyObject\n key: traced\n tracedV2:\n type: WorkspaceTracedUpdate\n key: tracedV2\n errored:\n type: ErrorInfo\n key: errored\n finished:\n type: commons.EmptyObject\n key: finished\n GradedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n grade: TestCaseGrade\n RecordedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n traceResponsesSize: integer\n WorkspaceTracedUpdate:\n properties:\n traceResponsesSize: integer\n SubmissionState:\n properties:\n timeSubmitted: optional\n submission: string\n language: commons.Language\n submissionTypeState: SubmissionTypeState\n SubmissionTypeState:\n union:\n test:\n type: TestSubmissionState\n key: test\n workspace:\n type: WorkspaceSubmissionState\n key: workspace\n WorkspaceSubmissionState:\n properties:\n status: WorkspaceSubmissionStatus\n WorkspaceSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n traced:\n type: WorkspaceRunDetails\n key: traced\n TestSubmissionState:\n properties:\n problemId: commons.ProblemId\n defaultTestCases: list\n customTestCases: list\n status: TestSubmissionStatus\n TestSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n testCaseIdToState:\n type: map\n key: testCaseIdToState\n SubmissionStatusForTestCase:\n union:\n graded:\n type: TestCaseResultWithStdout\n key: graded\n gradedV2:\n type: TestCaseGrade\n key: gradedV2\n traced:\n type: TracedTestCase\n key: traced\n TracedTestCase:\n properties:\n result: TestCaseResultWithStdout\n traceResponsesSize: integer\n TraceResponsesPage:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n TraceResponsesPageV2:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n GetTraceResponsesPageRequest:\n properties:\n offset:\n type: optional\n WorkspaceStarterFilesResponse:\n properties:\n files: map\n WorkspaceStarterFilesResponseV2:\n properties:\n filesByLanguage: map\n WorkspaceFiles:\n properties:\n mainFile: commons.FileInfo\n readOnlyFiles: list\n ExecutionSessionsState:\n properties:\n states: map\n numWarmingInstances: optional\n warmingSessionIds: list\n ExecutionSessionState:\n properties:\n lastTimeContacted: optional\n sessionId: string\n isWarmInstance: boolean\n awsTaskId: optional\n language: commons.Language\n status: ExecutionSessionStatus\nimports:\n commons: ../commons/__package__.yml\n problemV2: ../ProblemInfoServicV2/__package__.yml\n", "contents": { "service": { "auth": false, @@ -143,6 +143,7 @@ "path": "/create-session/{language}", "method": "POST", "response": "ExecutionSessionResponse", + "docs": "Returns sessionId and execution server URL for session. Spins up server.", "path-parameters": { "language": "commons.Language" } @@ -152,6 +153,7 @@ "path": "/{sessionId}", "method": "GET", "response": "optional", + "docs": "Returns execution server URL for session. Returns empty if session isn't registered.", "path-parameters": { "sessionId": "string" } @@ -160,6 +162,7 @@ "auth": true, "path": "/stop/{sessionId}", "method": "DELETE", + "docs": "Stops execution session.", "path-parameters": { "sessionId": "string" } @@ -972,7 +975,7 @@ }, "PlaylistCrud/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /playlist\n endpoints:\n createPlaylist:\n auth: true\n path: /create\n method: POST\n response: Playlist\n request:\n body: CreatePlaylistRequest\n getPlaylists:\n auth: true\n path: /all\n method: GET\n response: list\n getPlaylist:\n auth: true\n path: /{playlistId}\n method: GET\n response: Playlist\n path-parameters:\n playlistId: PlaylistId\n updatePlaylist:\n auth: true\n path: /{playlistId}\n method: PUT\n response: Playlist\n path-parameters:\n playlistId: PlaylistId\n request:\n body: UpdatePlaylistRequest\n deletePlaylist:\n auth: true\n path: /{playlistId}\n method: DELETE\n path-parameters:\n playlistId: PlaylistId\ntypes:\n PlaylistId:\n type: string\n Playlist:\n properties:\n playlistId: PlaylistId\n name: string\n problems: list\n ownerId: commons.UserId\n CreatePlaylistRequest:\n properties:\n name: string\n problems: list\n UpdatePlaylistRequest:\n properties:\n name: string\n problems: list\nimports:\n commons: ../commons/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /playlist\n endpoints:\n createPlaylist:\n auth: true\n path: /create\n method: POST\n response: Playlist\n docs: Create a new playlist\n request:\n body: CreatePlaylistRequest\n getPlaylists:\n auth: true\n path: /all\n method: GET\n response: list\n docs: Returns the user's playlists\n getPlaylist:\n auth: true\n path: /{playlistId}\n method: GET\n response: Playlist\n docs: Returns a playlist\n path-parameters:\n playlistId: PlaylistId\n updatePlaylist:\n auth: true\n path: /{playlistId}\n method: PUT\n response: Playlist\n docs: Updates a playlist\n path-parameters:\n playlistId: PlaylistId\n request:\n body: UpdatePlaylistRequest\n deletePlaylist:\n auth: true\n path: /{playlistId}\n method: DELETE\n docs: Deletes a playlist\n path-parameters:\n playlistId: PlaylistId\ntypes:\n PlaylistId:\n type: string\n Playlist:\n properties:\n playlistId: PlaylistId\n name: string\n problems: list\n ownerId: commons.UserId\n CreatePlaylistRequest:\n properties:\n name: string\n problems: list\n UpdatePlaylistRequest:\n properties:\n name: string\n problems: list\nimports:\n commons: ../commons/__package__.yml\n", "contents": { "service": { "auth": false, @@ -983,6 +986,7 @@ "path": "/create", "method": "POST", "response": "Playlist", + "docs": "Create a new playlist", "request": { "body": "CreatePlaylistRequest" } @@ -991,13 +995,15 @@ "auth": true, "path": "/all", "method": "GET", - "response": "list" + "response": "list", + "docs": "Returns the user's playlists" }, "getPlaylist": { "auth": true, "path": "/{playlistId}", "method": "GET", "response": "Playlist", + "docs": "Returns a playlist", "path-parameters": { "playlistId": "PlaylistId" } @@ -1007,6 +1013,7 @@ "path": "/{playlistId}", "method": "PUT", "response": "Playlist", + "docs": "Updates a playlist", "path-parameters": { "playlistId": "PlaylistId" }, @@ -1018,6 +1025,7 @@ "auth": true, "path": "/{playlistId}", "method": "DELETE", + "docs": "Deletes a playlist", "path-parameters": { "playlistId": "PlaylistId" } @@ -1056,7 +1064,7 @@ }, "PlaylistCrudServiceV2/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /v2/playlist\n endpoints:\n createPlaylist:\n auth: true\n path: /create\n method: POST\n response: playlist.Playlist\n request:\n body: playlist.CreatePlaylistRequest\n getPlaylists:\n auth: true\n path: /all\n method: GET\n response: list\n getPlaylist:\n auth: true\n path: /{playlistId}\n method: GET\n response: playlist.Playlist\n path-parameters:\n playlistId: playlist.PlaylistId\n updatePlaylist:\n auth: true\n path: /{playlistId}\n method: PUT\n response: playlist.Playlist\n path-parameters:\n playlistId: playlist.PlaylistId\n request:\n body: playlist.UpdatePlaylistRequest\n deletePlaylist:\n auth: true\n path: /{playlistId}\n method: DELETE\n path-parameters:\n playlistId: playlist.PlaylistId\nimports:\n commons: ../commons/__package__.yml\n playlist: ../PlaylistCrud/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /v2/playlist\n endpoints:\n createPlaylist:\n auth: true\n path: /create\n method: POST\n response: playlist.Playlist\n docs: Create a new playlist\n request:\n body: playlist.CreatePlaylistRequest\n getPlaylists:\n auth: true\n path: /all\n method: GET\n response: list\n docs: Returns the user's playlists\n getPlaylist:\n auth: true\n path: /{playlistId}\n method: GET\n response: playlist.Playlist\n docs: Returns a playlist\n path-parameters:\n playlistId: playlist.PlaylistId\n updatePlaylist:\n auth: true\n path: /{playlistId}\n method: PUT\n response: playlist.Playlist\n docs: Updates a playlist\n path-parameters:\n playlistId: playlist.PlaylistId\n request:\n body: playlist.UpdatePlaylistRequest\n deletePlaylist:\n auth: true\n path: /{playlistId}\n method: DELETE\n docs: Deletes a playlist\n path-parameters:\n playlistId: playlist.PlaylistId\nimports:\n commons: ../commons/__package__.yml\n playlist: ../PlaylistCrud/__package__.yml\n", "contents": { "service": { "auth": false, @@ -1067,6 +1075,7 @@ "path": "/create", "method": "POST", "response": "playlist.Playlist", + "docs": "Create a new playlist", "request": { "body": "playlist.CreatePlaylistRequest" } @@ -1075,13 +1084,15 @@ "auth": true, "path": "/all", "method": "GET", - "response": "list" + "response": "list", + "docs": "Returns the user's playlists" }, "getPlaylist": { "auth": true, "path": "/{playlistId}", "method": "GET", "response": "playlist.Playlist", + "docs": "Returns a playlist", "path-parameters": { "playlistId": "playlist.PlaylistId" } @@ -1091,6 +1102,7 @@ "path": "/{playlistId}", "method": "PUT", "response": "playlist.Playlist", + "docs": "Updates a playlist", "path-parameters": { "playlistId": "playlist.PlaylistId" }, @@ -1102,6 +1114,7 @@ "auth": true, "path": "/{playlistId}", "method": "DELETE", + "docs": "Deletes a playlist", "path-parameters": { "playlistId": "playlist.PlaylistId" } @@ -1116,7 +1129,7 @@ }, "ProblemCrud/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /problem-crud\n endpoints:\n createProblem:\n auth: true\n path: /create\n method: POST\n response: CreateProblemResponse\n request:\n body: CreateProblemRequest\n updateProblem:\n auth: true\n path: /update/{problemId}\n method: POST\n response: UpdateProblemResponse\n path-parameters:\n problemId: commons.ProblemId\n request:\n body: CreateProblemRequest\n deleteProblem:\n auth: true\n path: /delete/{problemId}\n method: DELETE\n path-parameters:\n problemId: commons.ProblemId\n getDefaultStarterFiles:\n auth: true\n path: /default-starter-files\n method: POST\n response: GetDefaultStarterFilesResponse\n request:\n body: GetDefaultStarterFilesRequest\ntypes:\n ProblemInfo:\n properties:\n problemId: commons.ProblemId\n problemDescription: ProblemDescription\n problemName: string\n problemVersion: integer\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n supportsCustomTestCases: boolean\n ProblemDescription:\n properties:\n boards: list\n ProblemDescriptionBoard:\n union:\n html:\n type: string\n key: html\n variable:\n type: commons.VariableValue\n key: variable\n testCaseId:\n type: string\n key: testCaseId\n ProblemFiles:\n properties:\n solutionFile: commons.FileInfo\n readOnlyFiles: list\n VariableTypeAndName:\n properties:\n variableType: commons.VariableType\n name: string\n CreateProblemRequest:\n properties:\n problemName: string\n problemDescription: ProblemDescription\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n CreateProblemResponse:\n union:\n success:\n type: commons.ProblemId\n key: success\n error:\n type: CreateProblemError\n key: error\n CreateProblemError:\n union:\n generic:\n type: GenericCreateProblemError\n key: generic\n GenericCreateProblemError:\n properties:\n message: string\n type: string\n stacktrace: string\n UpdateProblemResponse:\n properties:\n problemVersion: integer\n GetDefaultStarterFilesRequest:\n properties:\n inputParams: list\n outputType: commons.VariableType\n methodName: string\n GetDefaultStarterFilesResponse:\n properties:\n files: map\nimports:\n commons: ../commons/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /problem-crud\n endpoints:\n createProblem:\n auth: true\n path: /create\n method: POST\n response: CreateProblemResponse\n docs: Creates a problem\n request:\n body: CreateProblemRequest\n updateProblem:\n auth: true\n path: /update/{problemId}\n method: POST\n response: UpdateProblemResponse\n docs: Updates a problem\n path-parameters:\n problemId: commons.ProblemId\n request:\n body: CreateProblemRequest\n deleteProblem:\n auth: true\n path: /delete/{problemId}\n method: DELETE\n docs: Soft deletes a problem\n path-parameters:\n problemId: commons.ProblemId\n getDefaultStarterFiles:\n auth: true\n path: /default-starter-files\n method: POST\n response: GetDefaultStarterFilesResponse\n docs: Returns default starter files for problem\n request:\n body: GetDefaultStarterFilesRequest\ntypes:\n ProblemInfo:\n properties:\n problemId: commons.ProblemId\n problemDescription: ProblemDescription\n problemName: string\n problemVersion: integer\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n supportsCustomTestCases: boolean\n ProblemDescription:\n properties:\n boards: list\n ProblemDescriptionBoard:\n union:\n html:\n type: string\n key: html\n variable:\n type: commons.VariableValue\n key: variable\n testCaseId:\n type: string\n key: testCaseId\n ProblemFiles:\n properties:\n solutionFile: commons.FileInfo\n readOnlyFiles: list\n VariableTypeAndName:\n properties:\n variableType: commons.VariableType\n name: string\n CreateProblemRequest:\n properties:\n problemName: string\n problemDescription: ProblemDescription\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n CreateProblemResponse:\n union:\n success:\n type: commons.ProblemId\n key: success\n error:\n type: CreateProblemError\n key: error\n CreateProblemError:\n union:\n generic:\n type: GenericCreateProblemError\n key: generic\n GenericCreateProblemError:\n properties:\n message: string\n type: string\n stacktrace: string\n UpdateProblemResponse:\n properties:\n problemVersion: integer\n GetDefaultStarterFilesRequest:\n properties:\n inputParams: list\n outputType: commons.VariableType\n methodName: string\n GetDefaultStarterFilesResponse:\n properties:\n files: map\nimports:\n commons: ../commons/__package__.yml\n", "contents": { "service": { "auth": false, @@ -1127,6 +1140,7 @@ "path": "/create", "method": "POST", "response": "CreateProblemResponse", + "docs": "Creates a problem", "request": { "body": "CreateProblemRequest" } @@ -1136,6 +1150,7 @@ "path": "/update/{problemId}", "method": "POST", "response": "UpdateProblemResponse", + "docs": "Updates a problem", "path-parameters": { "problemId": "commons.ProblemId" }, @@ -1147,6 +1162,7 @@ "auth": true, "path": "/delete/{problemId}", "method": "DELETE", + "docs": "Soft deletes a problem", "path-parameters": { "problemId": "commons.ProblemId" } @@ -1156,6 +1172,7 @@ "path": "/default-starter-files", "method": "POST", "response": "GetDefaultStarterFilesResponse", + "docs": "Returns default starter files for problem", "request": { "body": "GetDefaultStarterFilesRequest" } @@ -1273,7 +1290,7 @@ }, "ProblemCrudServiceV2/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /problem-crud-v2\n endpoints:\n createProblem:\n auth: true\n path: /create\n method: POST\n response: problem.CreateProblemResponse\n request:\n body: CreateProblemRequestV2\n updateProblem:\n auth: true\n path: /update/{problemId}\n method: POST\n response: problem.UpdateProblemResponse\n path-parameters:\n problemId: commons.ProblemId\n request:\n body: CreateProblemRequestV2\n deleteProblem:\n auth: true\n path: /delete/{problemId}\n method: DELETE\n path-parameters:\n problemId: commons.ProblemId\n getFunctionSignature:\n auth: true\n path: /function-signature\n method: POST\n response: GetFunctionSignatureResponse\n request:\n body: GetFunctionSignatureRequest\n getBasicSolutionFile:\n auth: true\n path: /basic-solution-file\n method: POST\n response: GetBasicSolutionFileResponse\n request:\n body: GetBasicSolutionFileRequest\n getDefaultDirectoryForProblemFiles:\n auth: true\n path: /default-problem-files-directory\n method: GET\n response: map\n getGeneratedTestCaseFile:\n auth: true\n path: /generated-test-case-file\n method: POST\n response: map\n request:\n body: GetGeneratedTestCaseFileRequest\n getGeneratedTestCaseTemplateFile:\n auth: true\n path: /generated-test-case-template-file\n method: POST\n response: map\n request:\n body: GetGeneratedTestCaseTemplateFileRequest\ntypes:\n TestCaseTemplateId:\n type: string\n TestCaseId:\n type: string\n ParameterId:\n type: string\n ProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemDescription: problem.ProblemDescription\n problemName: string\n problemVersion: integer\n supportedLanguages: set\n customFiles: CustomFiles\n generatedFiles: GeneratedFiles\n customTestCaseTemplates: list\n testcases: list\n isPublic: boolean\n LightweightProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemName: string\n problemVersion: integer\n variableTypes: set\n CreateProblemRequestV2:\n properties:\n problemName: string\n problemDescription: problem.ProblemDescription\n customFiles: CustomFiles\n customTestCaseTemplates: list\n testcases: list\n supportedLanguages: set\n isPublic: boolean\n TestCaseV2:\n properties:\n metadata: TestCaseMetadata\n implementation: TestCaseImplementationReference\n arguments: map\n expects: optional\n TestCaseExpects:\n properties:\n expectedStdout: optional\n TestCaseImplementationReference:\n union:\n templateId:\n type: TestCaseTemplateId\n key: templateId\n implementation:\n type: TestCaseImplementation\n key: implementation\n BasicTestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n description: TestCaseImplementationDescription\n expectedValueParameterId: ParameterId\n TestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n implementation: TestCaseImplementation\n TestCaseImplementation:\n properties:\n description: TestCaseImplementationDescription\n function: TestCaseFunction\n TestCaseFunction:\n union:\n withActualResult:\n type: TestCaseWithActualResultImplementation\n key: withActualResult\n custom:\n type: VoidFunctionDefinition\n key: custom\n TestCaseWithActualResultImplementation:\n properties:\n getActualResult: NonVoidFunctionDefinition\n assertCorrectnessCheck: AssertCorrectnessCheck\n VoidFunctionDefinition:\n properties:\n parameters: list\n code: FunctionImplementationForMultipleLanguages\n Parameter:\n properties:\n parameterId: ParameterId\n name: string\n variableType: commons.VariableType\n NonVoidFunctionDefinition:\n properties:\n signature: NonVoidFunctionSignature\n code: FunctionImplementationForMultipleLanguages\n VoidFunctionSignature:\n properties:\n parameters: list\n NonVoidFunctionSignature:\n properties:\n parameters: list\n returnType: commons.VariableType\n VoidFunctionSignatureThatTakesActualResult:\n properties:\n parameters: list\n actualResultType: commons.VariableType\n AssertCorrectnessCheck:\n union:\n deepEquality:\n type: DeepEqualityCorrectnessCheck\n key: deepEquality\n custom:\n type: VoidFunctionDefinitionThatTakesActualResult\n key: custom\n DeepEqualityCorrectnessCheck:\n properties:\n expectedValueParameterId: ParameterId\n VoidFunctionDefinitionThatTakesActualResult:\n properties:\n additionalParameters: list\n code: FunctionImplementationForMultipleLanguages\n TestCaseImplementationDescription:\n properties:\n boards: list\n TestCaseImplementationDescriptionBoard:\n union:\n html:\n type: string\n key: html\n paramId:\n type: ParameterId\n key: paramId\n TestCaseMetadata:\n properties:\n id: TestCaseId\n name: string\n hidden: boolean\n FunctionImplementationForMultipleLanguages:\n properties:\n codeByLanguage: map\n FunctionImplementation:\n properties:\n impl: string;\n imports: optional;\n GeneratedFiles:\n properties:\n generatedTestCaseFiles: map\n generatedTemplateFiles: map\n other: map\n CustomFiles:\n union:\n basic:\n type: BasicCustomFiles\n key: basic\n custom:\n type: map\n key: custom\n BasicCustomFiles:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n additionalFiles: map\n basicTestCaseTemplate: BasicTestCaseTemplate\n Files:\n properties:\n files: list\n FileInfoV2:\n properties:\n filename: string\n directory: string\n contents: string\n editable: boolean\n DefaultProvidedFile:\n properties:\n file: FileInfoV2\n relatedTypes: list\n GetBasicSolutionFileRequest:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n GetBasicSolutionFileResponse:\n properties:\n solutionFileByLanguage: map\n GetFunctionSignatureRequest:\n properties:\n functionSignature: FunctionSignature\n FunctionSignature:\n union:\n void:\n type: VoidFunctionSignature\n key: void\n nonVoid:\n type: NonVoidFunctionSignature\n key: nonVoid\n voidThatTakesActualResult:\n type: VoidFunctionSignatureThatTakesActualResult\n docs: >-\n Useful when specifying custom grading for a testcase where\n actualResult is defined.\n key: voidThatTakesActualResult\n GetFunctionSignatureResponse:\n properties:\n functionByLanguage: map\n GetDefaultProvidedFilesResponse:\n properties:\n filesByLanguage: map>\n GetGeneratedTestCaseFileRequest:\n properties:\n template: optional\n testCase: TestCaseV2\n GetGeneratedTestCaseTemplateFileRequest:\n properties:\n template: TestCaseTemplate\nimports:\n commons: ../commons/__package__.yml\n problem: ../ProblemInfo/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /problem-crud-v2\n endpoints:\n createProblem:\n auth: true\n path: /create\n method: POST\n response: problem.CreateProblemResponse\n docs: Creates a problem\n request:\n body: CreateProblemRequestV2\n updateProblem:\n auth: true\n path: /update/{problemId}\n method: POST\n response: problem.UpdateProblemResponse\n docs: Updates a problem\n path-parameters:\n problemId: commons.ProblemId\n request:\n body: CreateProblemRequestV2\n deleteProblem:\n auth: true\n path: /delete/{problemId}\n method: DELETE\n docs: Soft deletes a problem\n path-parameters:\n problemId: commons.ProblemId\n getFunctionSignature:\n auth: true\n path: /function-signature\n method: POST\n response: GetFunctionSignatureResponse\n docs: Get the generated function signature in every language\n request:\n body: GetFunctionSignatureRequest\n getBasicSolutionFile:\n auth: true\n path: /basic-solution-file\n method: POST\n response: GetBasicSolutionFileResponse\n docs: Returns solution file for basic starter files\n request:\n body: GetBasicSolutionFileRequest\n getDefaultDirectoryForProblemFiles:\n auth: true\n path: /default-problem-files-directory\n method: GET\n response: map\n docs: Returns the default directory where a problem's files should live\n getGeneratedTestCaseFile:\n auth: true\n path: /generated-test-case-file\n method: POST\n response: map\n docs: Returns the default directory where a problem's files should live\n request:\n body: GetGeneratedTestCaseFileRequest\n getGeneratedTestCaseTemplateFile:\n auth: true\n path: /generated-test-case-template-file\n method: POST\n response: map\n docs: Returns the default directory where a problem's files should live\n request:\n body: GetGeneratedTestCaseTemplateFileRequest\ntypes:\n TestCaseTemplateId:\n type: string\n TestCaseId:\n type: string\n ParameterId:\n type: string\n ProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemDescription: problem.ProblemDescription\n problemName: string\n problemVersion: integer\n supportedLanguages: set\n customFiles: CustomFiles\n generatedFiles: GeneratedFiles\n customTestCaseTemplates: list\n testcases: list\n isPublic: boolean\n LightweightProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemName: string\n problemVersion: integer\n variableTypes: set\n CreateProblemRequestV2:\n properties:\n problemName: string\n problemDescription: problem.ProblemDescription\n customFiles: CustomFiles\n customTestCaseTemplates: list\n testcases: list\n supportedLanguages: set\n isPublic: boolean\n TestCaseV2:\n properties:\n metadata: TestCaseMetadata\n implementation: TestCaseImplementationReference\n arguments: map\n expects: optional\n TestCaseExpects:\n properties:\n expectedStdout: optional\n TestCaseImplementationReference:\n union:\n templateId:\n type: TestCaseTemplateId\n key: templateId\n implementation:\n type: TestCaseImplementation\n key: implementation\n BasicTestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n description: TestCaseImplementationDescription\n expectedValueParameterId: ParameterId\n TestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n implementation: TestCaseImplementation\n TestCaseImplementation:\n properties:\n description: TestCaseImplementationDescription\n function: TestCaseFunction\n TestCaseFunction:\n union:\n withActualResult:\n type: TestCaseWithActualResultImplementation\n key: withActualResult\n custom:\n type: VoidFunctionDefinition\n key: custom\n TestCaseWithActualResultImplementation:\n properties:\n getActualResult: NonVoidFunctionDefinition\n assertCorrectnessCheck: AssertCorrectnessCheck\n VoidFunctionDefinition:\n properties:\n parameters: list\n code: FunctionImplementationForMultipleLanguages\n Parameter:\n properties:\n parameterId: ParameterId\n name: string\n variableType: commons.VariableType\n NonVoidFunctionDefinition:\n properties:\n signature: NonVoidFunctionSignature\n code: FunctionImplementationForMultipleLanguages\n VoidFunctionSignature:\n properties:\n parameters: list\n NonVoidFunctionSignature:\n properties:\n parameters: list\n returnType: commons.VariableType\n VoidFunctionSignatureThatTakesActualResult:\n properties:\n parameters: list\n actualResultType: commons.VariableType\n AssertCorrectnessCheck:\n union:\n deepEquality:\n type: DeepEqualityCorrectnessCheck\n key: deepEquality\n custom:\n type: VoidFunctionDefinitionThatTakesActualResult\n key: custom\n DeepEqualityCorrectnessCheck:\n properties:\n expectedValueParameterId: ParameterId\n VoidFunctionDefinitionThatTakesActualResult:\n properties:\n additionalParameters: list\n code: FunctionImplementationForMultipleLanguages\n TestCaseImplementationDescription:\n properties:\n boards: list\n TestCaseImplementationDescriptionBoard:\n union:\n html:\n type: string\n key: html\n paramId:\n type: ParameterId\n key: paramId\n TestCaseMetadata:\n properties:\n id: TestCaseId\n name: string\n hidden: boolean\n FunctionImplementationForMultipleLanguages:\n properties:\n codeByLanguage: map\n FunctionImplementation:\n properties:\n impl: string;\n imports: optional;\n GeneratedFiles:\n properties:\n generatedTestCaseFiles: map\n generatedTemplateFiles: map\n other: map\n CustomFiles:\n union:\n basic:\n type: BasicCustomFiles\n key: basic\n custom:\n type: map\n key: custom\n BasicCustomFiles:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n additionalFiles: map\n basicTestCaseTemplate: BasicTestCaseTemplate\n Files:\n properties:\n files: list\n FileInfoV2:\n properties:\n filename: string\n directory: string\n contents: string\n editable: boolean\n DefaultProvidedFile:\n properties:\n file: FileInfoV2\n relatedTypes: list\n GetBasicSolutionFileRequest:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n GetBasicSolutionFileResponse:\n properties:\n solutionFileByLanguage: map\n GetFunctionSignatureRequest:\n properties:\n functionSignature: FunctionSignature\n FunctionSignature:\n union:\n void:\n type: VoidFunctionSignature\n key: void\n nonVoid:\n type: NonVoidFunctionSignature\n key: nonVoid\n voidThatTakesActualResult:\n type: VoidFunctionSignatureThatTakesActualResult\n docs: >-\n Useful when specifying custom grading for a testcase where\n actualResult is defined.\n key: voidThatTakesActualResult\n GetFunctionSignatureResponse:\n properties:\n functionByLanguage: map\n GetDefaultProvidedFilesResponse:\n properties:\n filesByLanguage: map>\n GetGeneratedTestCaseFileRequest:\n properties:\n template: optional\n testCase: TestCaseV2\n GetGeneratedTestCaseTemplateFileRequest:\n properties:\n template: TestCaseTemplate\nimports:\n commons: ../commons/__package__.yml\n problem: ../ProblemInfo/__package__.yml\n", "contents": { "service": { "auth": false, @@ -1284,6 +1301,7 @@ "path": "/create", "method": "POST", "response": "problem.CreateProblemResponse", + "docs": "Creates a problem", "request": { "body": "CreateProblemRequestV2" } @@ -1293,6 +1311,7 @@ "path": "/update/{problemId}", "method": "POST", "response": "problem.UpdateProblemResponse", + "docs": "Updates a problem", "path-parameters": { "problemId": "commons.ProblemId" }, @@ -1304,6 +1323,7 @@ "auth": true, "path": "/delete/{problemId}", "method": "DELETE", + "docs": "Soft deletes a problem", "path-parameters": { "problemId": "commons.ProblemId" } @@ -1313,6 +1333,7 @@ "path": "/function-signature", "method": "POST", "response": "GetFunctionSignatureResponse", + "docs": "Get the generated function signature in every language", "request": { "body": "GetFunctionSignatureRequest" } @@ -1322,6 +1343,7 @@ "path": "/basic-solution-file", "method": "POST", "response": "GetBasicSolutionFileResponse", + "docs": "Returns solution file for basic starter files", "request": { "body": "GetBasicSolutionFileRequest" } @@ -1330,13 +1352,15 @@ "auth": true, "path": "/default-problem-files-directory", "method": "GET", - "response": "map" + "response": "map", + "docs": "Returns the default directory where a problem's files should live" }, "getGeneratedTestCaseFile": { "auth": true, "path": "/generated-test-case-file", "method": "POST", "response": "map", + "docs": "Returns the default directory where a problem's files should live", "request": { "body": "GetGeneratedTestCaseFileRequest" } @@ -1346,6 +1370,7 @@ "path": "/generated-test-case-template-file", "method": "POST", "response": "map", + "docs": "Returns the default directory where a problem's files should live", "request": { "body": "GetGeneratedTestCaseTemplateFileRequest" } @@ -1662,7 +1687,7 @@ }, "ProblemInfo/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /problems\n endpoints:\n getProblems:\n auth: true\n path: /problem-info\n method: GET\n response: list\n getLatestProblem:\n auth: true\n path: /problem-info/{problemId}\n method: GET\n response: ProblemInfo\n path-parameters:\n problemId: commons.ProblemId\n getProblemVersion:\n auth: true\n path: /problem-info/{problemId}/version/{problemVersion}\n method: GET\n response: ProblemInfo\n path-parameters:\n problemId: commons.ProblemId\n problemVersion: integer\n getExpectedResult:\n auth: true\n path: /expected-result/{problemId}\n method: POST\n response: commons.TestCaseWithExpectedResult\n path-parameters:\n problemId: commons.ProblemId\n request:\n body: commons.TestCase\ntypes:\n ProblemInfo:\n properties:\n problemId: commons.ProblemId\n problemDescription: ProblemDescription\n problemName: string\n problemVersion: integer\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n supportsCustomTestCases: boolean\n ProblemDescription:\n properties:\n boards: list\n ProblemDescriptionBoard:\n union:\n html:\n type: string\n key: html\n variable:\n type: commons.VariableValue\n key: variable\n testCaseId:\n type: string\n key: testCaseId\n ProblemFiles:\n properties:\n solutionFile: commons.FileInfo\n readOnlyFiles: list\n VariableTypeAndName:\n properties:\n variableType: commons.VariableType\n name: string\n CreateProblemRequest:\n properties:\n problemName: string\n problemDescription: ProblemDescription\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n CreateProblemResponse:\n union:\n success:\n type: commons.ProblemId\n key: success\n error:\n type: CreateProblemError\n key: error\n CreateProblemError:\n union:\n generic:\n type: GenericCreateProblemError\n key: generic\n GenericCreateProblemError:\n properties:\n message: string\n type: string\n stacktrace: string\n UpdateProblemResponse:\n properties:\n problemVersion: integer\n GetDefaultStarterFilesRequest:\n properties:\n inputParams: list\n outputType: commons.VariableType\n methodName: string\n GetDefaultStarterFilesResponse:\n properties:\n files: map\nimports:\n commons: ../commons/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /problems\n endpoints:\n getProblems:\n auth: true\n path: /problem-info\n method: GET\n response: list\n docs: Returns latest versions of all problems\n getLatestProblem:\n auth: true\n path: /problem-info/{problemId}\n method: GET\n response: ProblemInfo\n docs: Returns latest version of a problem\n path-parameters:\n problemId: commons.ProblemId\n getProblemVersion:\n auth: true\n path: /problem-info/{problemId}/version/{problemVersion}\n method: GET\n response: ProblemInfo\n docs: Returns requested version of a problem\n path-parameters:\n problemId: commons.ProblemId\n problemVersion: integer\n getExpectedResult:\n auth: true\n path: /expected-result/{problemId}\n method: POST\n response: commons.TestCaseWithExpectedResult\n docs: Returns test case answer\n path-parameters:\n problemId: commons.ProblemId\n request:\n body: commons.TestCase\ntypes:\n ProblemInfo:\n properties:\n problemId: commons.ProblemId\n problemDescription: ProblemDescription\n problemName: string\n problemVersion: integer\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n supportsCustomTestCases: boolean\n ProblemDescription:\n properties:\n boards: list\n ProblemDescriptionBoard:\n union:\n html:\n type: string\n key: html\n variable:\n type: commons.VariableValue\n key: variable\n testCaseId:\n type: string\n key: testCaseId\n ProblemFiles:\n properties:\n solutionFile: commons.FileInfo\n readOnlyFiles: list\n VariableTypeAndName:\n properties:\n variableType: commons.VariableType\n name: string\n CreateProblemRequest:\n properties:\n problemName: string\n problemDescription: ProblemDescription\n files: map\n inputParams: list\n outputType: commons.VariableType\n testcases: list\n methodName: string\n CreateProblemResponse:\n union:\n success:\n type: commons.ProblemId\n key: success\n error:\n type: CreateProblemError\n key: error\n CreateProblemError:\n union:\n generic:\n type: GenericCreateProblemError\n key: generic\n GenericCreateProblemError:\n properties:\n message: string\n type: string\n stacktrace: string\n UpdateProblemResponse:\n properties:\n problemVersion: integer\n GetDefaultStarterFilesRequest:\n properties:\n inputParams: list\n outputType: commons.VariableType\n methodName: string\n GetDefaultStarterFilesResponse:\n properties:\n files: map\nimports:\n commons: ../commons/__package__.yml\n", "contents": { "service": { "auth": false, @@ -1672,13 +1697,15 @@ "auth": true, "path": "/problem-info", "method": "GET", - "response": "list" + "response": "list", + "docs": "Returns latest versions of all problems" }, "getLatestProblem": { "auth": true, "path": "/problem-info/{problemId}", "method": "GET", "response": "ProblemInfo", + "docs": "Returns latest version of a problem", "path-parameters": { "problemId": "commons.ProblemId" } @@ -1688,6 +1715,7 @@ "path": "/problem-info/{problemId}/version/{problemVersion}", "method": "GET", "response": "ProblemInfo", + "docs": "Returns requested version of a problem", "path-parameters": { "problemId": "commons.ProblemId", "problemVersion": "integer" @@ -1698,6 +1726,7 @@ "path": "/expected-result/{problemId}", "method": "POST", "response": "commons.TestCaseWithExpectedResult", + "docs": "Returns test case answer", "path-parameters": { "problemId": "commons.ProblemId" }, @@ -1818,7 +1847,7 @@ }, "ProblemInfoServicV2/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /problems-v2\n endpoints:\n getLightweightProblems:\n auth: true\n path: /lightweight-problem-info\n method: GET\n response: list\n getProblems:\n auth: true\n path: /problem-info\n method: GET\n response: list\n getLatestProblem:\n auth: true\n path: /problem-info/{problemId}\n method: GET\n response: ProblemInfoV2\n path-parameters:\n problemId: commons.ProblemId\n getProblemVersion:\n auth: true\n path: /problem-info/{problemId}/version/{problemVersion}\n method: GET\n response: ProblemInfoV2\n path-parameters:\n problemId: commons.ProblemId\n problemVersion: integer\ntypes:\n TestCaseTemplateId:\n type: string\n TestCaseId:\n type: string\n ParameterId:\n type: string\n ProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemDescription: problem.ProblemDescription\n problemName: string\n problemVersion: integer\n supportedLanguages: set\n customFiles: CustomFiles\n generatedFiles: GeneratedFiles\n customTestCaseTemplates: list\n testcases: list\n isPublic: boolean\n LightweightProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemName: string\n problemVersion: integer\n variableTypes: set\n CreateProblemRequestV2:\n properties:\n problemName: string\n problemDescription: problem.ProblemDescription\n customFiles: CustomFiles\n customTestCaseTemplates: list\n testcases: list\n supportedLanguages: set\n isPublic: boolean\n TestCaseV2:\n properties:\n metadata: TestCaseMetadata\n implementation: TestCaseImplementationReference\n arguments: map\n expects: optional\n TestCaseExpects:\n properties:\n expectedStdout: optional\n TestCaseImplementationReference:\n union:\n templateId:\n type: TestCaseTemplateId\n key: templateId\n implementation:\n type: TestCaseImplementation\n key: implementation\n BasicTestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n description: TestCaseImplementationDescription\n expectedValueParameterId: ParameterId\n TestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n implementation: TestCaseImplementation\n TestCaseImplementation:\n properties:\n description: TestCaseImplementationDescription\n function: TestCaseFunction\n TestCaseFunction:\n union:\n withActualResult:\n type: TestCaseWithActualResultImplementation\n key: withActualResult\n custom:\n type: VoidFunctionDefinition\n key: custom\n TestCaseWithActualResultImplementation:\n properties:\n getActualResult: NonVoidFunctionDefinition\n assertCorrectnessCheck: AssertCorrectnessCheck\n VoidFunctionDefinition:\n properties:\n parameters: list\n code: FunctionImplementationForMultipleLanguages\n Parameter:\n properties:\n parameterId: ParameterId\n name: string\n variableType: commons.VariableType\n NonVoidFunctionDefinition:\n properties:\n signature: NonVoidFunctionSignature\n code: FunctionImplementationForMultipleLanguages\n VoidFunctionSignature:\n properties:\n parameters: list\n NonVoidFunctionSignature:\n properties:\n parameters: list\n returnType: commons.VariableType\n VoidFunctionSignatureThatTakesActualResult:\n properties:\n parameters: list\n actualResultType: commons.VariableType\n AssertCorrectnessCheck:\n union:\n deepEquality:\n type: DeepEqualityCorrectnessCheck\n key: deepEquality\n custom:\n type: VoidFunctionDefinitionThatTakesActualResult\n key: custom\n DeepEqualityCorrectnessCheck:\n properties:\n expectedValueParameterId: ParameterId\n VoidFunctionDefinitionThatTakesActualResult:\n properties:\n additionalParameters: list\n code: FunctionImplementationForMultipleLanguages\n TestCaseImplementationDescription:\n properties:\n boards: list\n TestCaseImplementationDescriptionBoard:\n union:\n html:\n type: string\n key: html\n paramId:\n type: ParameterId\n key: paramId\n TestCaseMetadata:\n properties:\n id: TestCaseId\n name: string\n hidden: boolean\n FunctionImplementationForMultipleLanguages:\n properties:\n codeByLanguage: map\n FunctionImplementation:\n properties:\n impl: string;\n imports: optional;\n GeneratedFiles:\n properties:\n generatedTestCaseFiles: map\n generatedTemplateFiles: map\n other: map\n CustomFiles:\n union:\n basic:\n type: BasicCustomFiles\n key: basic\n custom:\n type: map\n key: custom\n BasicCustomFiles:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n additionalFiles: map\n basicTestCaseTemplate: BasicTestCaseTemplate\n Files:\n properties:\n files: list\n FileInfoV2:\n properties:\n filename: string\n directory: string\n contents: string\n editable: boolean\n DefaultProvidedFile:\n properties:\n file: FileInfoV2\n relatedTypes: list\n GetBasicSolutionFileRequest:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n GetBasicSolutionFileResponse:\n properties:\n solutionFileByLanguage: map\n GetFunctionSignatureRequest:\n properties:\n functionSignature: FunctionSignature\n FunctionSignature:\n union:\n void:\n type: VoidFunctionSignature\n key: void\n nonVoid:\n type: NonVoidFunctionSignature\n key: nonVoid\n voidThatTakesActualResult:\n type: VoidFunctionSignatureThatTakesActualResult\n docs: >-\n Useful when specifying custom grading for a testcase where\n actualResult is defined.\n key: voidThatTakesActualResult\n GetFunctionSignatureResponse:\n properties:\n functionByLanguage: map\n GetDefaultProvidedFilesResponse:\n properties:\n filesByLanguage: map>\n GetGeneratedTestCaseFileRequest:\n properties:\n template: optional\n testCase: TestCaseV2\n GetGeneratedTestCaseTemplateFileRequest:\n properties:\n template: TestCaseTemplate\nimports:\n commons: ../commons/__package__.yml\n problem: ../ProblemInfo/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /problems-v2\n endpoints:\n getLightweightProblems:\n auth: true\n path: /lightweight-problem-info\n method: GET\n response: list\n docs: Returns lightweight versions of all problems\n getProblems:\n auth: true\n path: /problem-info\n method: GET\n response: list\n docs: Returns latest versions of all problems\n getLatestProblem:\n auth: true\n path: /problem-info/{problemId}\n method: GET\n response: ProblemInfoV2\n docs: Returns latest version of a problem\n path-parameters:\n problemId: commons.ProblemId\n getProblemVersion:\n auth: true\n path: /problem-info/{problemId}/version/{problemVersion}\n method: GET\n response: ProblemInfoV2\n docs: Returns requested version of a problem\n path-parameters:\n problemId: commons.ProblemId\n problemVersion: integer\ntypes:\n TestCaseTemplateId:\n type: string\n TestCaseId:\n type: string\n ParameterId:\n type: string\n ProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemDescription: problem.ProblemDescription\n problemName: string\n problemVersion: integer\n supportedLanguages: set\n customFiles: CustomFiles\n generatedFiles: GeneratedFiles\n customTestCaseTemplates: list\n testcases: list\n isPublic: boolean\n LightweightProblemInfoV2:\n properties:\n problemId: commons.ProblemId\n problemName: string\n problemVersion: integer\n variableTypes: set\n CreateProblemRequestV2:\n properties:\n problemName: string\n problemDescription: problem.ProblemDescription\n customFiles: CustomFiles\n customTestCaseTemplates: list\n testcases: list\n supportedLanguages: set\n isPublic: boolean\n TestCaseV2:\n properties:\n metadata: TestCaseMetadata\n implementation: TestCaseImplementationReference\n arguments: map\n expects: optional\n TestCaseExpects:\n properties:\n expectedStdout: optional\n TestCaseImplementationReference:\n union:\n templateId:\n type: TestCaseTemplateId\n key: templateId\n implementation:\n type: TestCaseImplementation\n key: implementation\n BasicTestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n description: TestCaseImplementationDescription\n expectedValueParameterId: ParameterId\n TestCaseTemplate:\n properties:\n templateId: TestCaseTemplateId\n name: string\n implementation: TestCaseImplementation\n TestCaseImplementation:\n properties:\n description: TestCaseImplementationDescription\n function: TestCaseFunction\n TestCaseFunction:\n union:\n withActualResult:\n type: TestCaseWithActualResultImplementation\n key: withActualResult\n custom:\n type: VoidFunctionDefinition\n key: custom\n TestCaseWithActualResultImplementation:\n properties:\n getActualResult: NonVoidFunctionDefinition\n assertCorrectnessCheck: AssertCorrectnessCheck\n VoidFunctionDefinition:\n properties:\n parameters: list\n code: FunctionImplementationForMultipleLanguages\n Parameter:\n properties:\n parameterId: ParameterId\n name: string\n variableType: commons.VariableType\n NonVoidFunctionDefinition:\n properties:\n signature: NonVoidFunctionSignature\n code: FunctionImplementationForMultipleLanguages\n VoidFunctionSignature:\n properties:\n parameters: list\n NonVoidFunctionSignature:\n properties:\n parameters: list\n returnType: commons.VariableType\n VoidFunctionSignatureThatTakesActualResult:\n properties:\n parameters: list\n actualResultType: commons.VariableType\n AssertCorrectnessCheck:\n union:\n deepEquality:\n type: DeepEqualityCorrectnessCheck\n key: deepEquality\n custom:\n type: VoidFunctionDefinitionThatTakesActualResult\n key: custom\n DeepEqualityCorrectnessCheck:\n properties:\n expectedValueParameterId: ParameterId\n VoidFunctionDefinitionThatTakesActualResult:\n properties:\n additionalParameters: list\n code: FunctionImplementationForMultipleLanguages\n TestCaseImplementationDescription:\n properties:\n boards: list\n TestCaseImplementationDescriptionBoard:\n union:\n html:\n type: string\n key: html\n paramId:\n type: ParameterId\n key: paramId\n TestCaseMetadata:\n properties:\n id: TestCaseId\n name: string\n hidden: boolean\n FunctionImplementationForMultipleLanguages:\n properties:\n codeByLanguage: map\n FunctionImplementation:\n properties:\n impl: string;\n imports: optional;\n GeneratedFiles:\n properties:\n generatedTestCaseFiles: map\n generatedTemplateFiles: map\n other: map\n CustomFiles:\n union:\n basic:\n type: BasicCustomFiles\n key: basic\n custom:\n type: map\n key: custom\n BasicCustomFiles:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n additionalFiles: map\n basicTestCaseTemplate: BasicTestCaseTemplate\n Files:\n properties:\n files: list\n FileInfoV2:\n properties:\n filename: string\n directory: string\n contents: string\n editable: boolean\n DefaultProvidedFile:\n properties:\n file: FileInfoV2\n relatedTypes: list\n GetBasicSolutionFileRequest:\n properties:\n methodName: string\n signature: NonVoidFunctionSignature\n GetBasicSolutionFileResponse:\n properties:\n solutionFileByLanguage: map\n GetFunctionSignatureRequest:\n properties:\n functionSignature: FunctionSignature\n FunctionSignature:\n union:\n void:\n type: VoidFunctionSignature\n key: void\n nonVoid:\n type: NonVoidFunctionSignature\n key: nonVoid\n voidThatTakesActualResult:\n type: VoidFunctionSignatureThatTakesActualResult\n docs: >-\n Useful when specifying custom grading for a testcase where\n actualResult is defined.\n key: voidThatTakesActualResult\n GetFunctionSignatureResponse:\n properties:\n functionByLanguage: map\n GetDefaultProvidedFilesResponse:\n properties:\n filesByLanguage: map>\n GetGeneratedTestCaseFileRequest:\n properties:\n template: optional\n testCase: TestCaseV2\n GetGeneratedTestCaseTemplateFileRequest:\n properties:\n template: TestCaseTemplate\nimports:\n commons: ../commons/__package__.yml\n problem: ../ProblemInfo/__package__.yml\n", "contents": { "service": { "auth": false, @@ -1828,19 +1857,22 @@ "auth": true, "path": "/lightweight-problem-info", "method": "GET", - "response": "list" + "response": "list", + "docs": "Returns lightweight versions of all problems" }, "getProblems": { "auth": true, "path": "/problem-info", "method": "GET", - "response": "list" + "response": "list", + "docs": "Returns latest versions of all problems" }, "getLatestProblem": { "auth": true, "path": "/problem-info/{problemId}", "method": "GET", "response": "ProblemInfoV2", + "docs": "Returns latest version of a problem", "path-parameters": { "problemId": "commons.ProblemId" } @@ -1850,6 +1882,7 @@ "path": "/problem-info/{problemId}/version/{problemVersion}", "method": "GET", "response": "ProblemInfoV2", + "docs": "Returns requested version of a problem", "path-parameters": { "problemId": "commons.ProblemId", "problemVersion": "integer" @@ -2167,7 +2200,7 @@ }, "SubmissionInfo/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /submissions\n endpoints:\n getSubmissionState:\n auth: true\n path: /{submissionId}\n method: GET\n response: SubmissionState\n path-parameters:\n submissionId: SubmissionId\n getSubmissionStateV2:\n auth: true\n path: /v2/{submissionId}\n method: GET\n response: SubmissionStateV2\n path-parameters:\n submissionId: SubmissionId\n getTraceResponsesPage:\n auth: true\n path: /trace-respose/{submissionId}/testCase/{testCaseId}\n method: POST\n response: TraceResponsesPage\n path-parameters:\n submissionId: SubmissionId\n testCaseId: string\n request:\n body: GetTraceResponsesPageRequest\n getTraceResponsesV2Page:\n auth: true\n path: /trace-response-v2/{submissionId}/testCase/{testCaseId}\n method: POST\n response: TraceResponsesPageV2\n path-parameters:\n submissionId: SubmissionId\n testCaseId: problemV2.TestCaseId\n request:\n body: GetTraceResponsesPageRequest\n getTraceResponsesPageForWorkspace:\n auth: true\n path: /workspace-trace-response/{submissionId}\n method: POST\n response: TraceResponsesPage\n path-parameters:\n submissionId: SubmissionId\n request:\n body: GetTraceResponsesPageRequest\n getTraceResponsesV2PageForWorkspace:\n auth: true\n path: /workspace-trace-response-v2/{submissionId}\n method: POST\n response: TraceResponsesPageV2\n path-parameters:\n submissionId: SubmissionId\n request:\n body: GetTraceResponsesPageRequest\ntypes:\n SubmissionId:\n type: string\n ShareId:\n type: string\n SubmissionRequest:\n union:\n initializeProblemRequest:\n type: InitializeProblemRequest\n key: initializeProblemRequest\n initializeWorkspaceRequest:\n type: commons.EmptyObject\n key: initializeWorkspaceRequest\n submitV2:\n type: SubmitRequestV2\n key: submitV2\n workspaceSubmit:\n type: WorkspaceSubmitRequest\n key: workspaceSubmit\n stop:\n type: StopRequest\n key: stop\n InitializeProblemRequest:\n properties:\n problemId: commons.ProblemId\n problemVersion: optional\n SubmitRequestV2:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n problemId: commons.ProblemId\n problemVersion: optional\n userId: optional\n WorkspaceSubmitRequest:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n userId: optional\n SubmissionFileInfo:\n properties:\n directory: string\n filename: string\n contents: string\n SubmissionTypeEnum:\n enum:\n - TEST\n StopRequest:\n properties:\n submissionId: SubmissionId\n SubmissionResponse:\n union:\n serverInitialized:\n type: commons.EmptyObject\n key: serverInitialized\n problemInitialized:\n type: commons.ProblemId\n key: problemInitialized\n workspaceInitialized:\n type: commons.EmptyObject\n key: workspaceInitialized\n serverErrored:\n type: ExceptionInfo\n key: serverErrored\n codeExecutionUpdate:\n type: CodeExecutionUpdate\n key: codeExecutionUpdate\n terminated:\n type: TerminatedResponse\n key: terminated\n CodeExecutionUpdate:\n union:\n buildingExecutor:\n type: BuildingExecutorResponse\n docs: >-\n Statuses if an executor for the session isn't ready (Before\n RunningResponse).\n key: buildingExecutor\n running:\n type: RunningResponse\n docs: Sent once a test submission is executing.\n key: running\n errored:\n type: ErroredResponse\n docs: Sent if a submission cannot be run (i.e. Compile Error).\n key: errored\n stopped:\n type: StoppedResponse\n docs: Sent if a submission is stopped.\n key: stopped\n graded:\n type: GradedResponse\n docs: Graded testcases without trace information.\n key: graded\n gradedV2:\n type: GradedResponseV2\n docs: Graded submission for v2 problems.\n key: gradedV2\n workspaceRan:\n type: WorkspaceRanResponse\n docs: Workspace run without trace information.\n key: workspaceRan\n recording:\n type: RecordingResponseNotification\n docs: Gives progress about what is being recorded.\n key: recording\n recorded:\n type: RecordedResponseNotification\n docs: Graded testcases with trace information.\n key: recorded\n invalidRequest:\n type: InvalidRequestResponse\n docs: Sent if an invalid request is sent for a submission.\n key: invalidRequest\n finished:\n type: FinishedResponse\n docs: Sent once a submission is graded and fully recorded.\n key: finished\n BuildingExecutorResponse:\n properties:\n submissionId: SubmissionId\n status: ExecutionSessionStatus\n RunningResponse:\n properties:\n submissionId: SubmissionId\n state: RunningSubmissionState\n RunningSubmissionState:\n enum:\n - QUEUEING_SUBMISSION\n - KILLING_HISTORICAL_SUBMISSIONS\n - WRITING_SUBMISSION_TO_FILE\n - COMPILING_SUBMISSION\n - RUNNING_SUBMISSION\n ErroredResponse:\n properties:\n submissionId: SubmissionId\n errorInfo: ErrorInfo\n ErrorInfo:\n union:\n compileError:\n type: CompileError\n key: compileError\n runtimeError:\n type: RuntimeError\n docs: >\n If the submission cannot be executed and throws a runtime error before\n getting to any of the testcases.\n key: runtimeError\n internalError:\n type: InternalError\n docs: |\n If the trace backend encounters an unexpected error.\n key: internalError\n CompileError:\n properties:\n message: string\n RuntimeError:\n properties:\n message: string\n InternalError:\n properties:\n exceptionInfo: ExceptionInfo\n StoppedResponse:\n properties:\n submissionId: SubmissionId\n WorkspaceRanResponse:\n properties:\n submissionId: SubmissionId\n runDetails: WorkspaceRunDetails\n WorkspaceRunDetails:\n properties:\n exceptionV2: optional\n exception: optional\n stdout: string\n GradedResponse:\n properties:\n submissionId: SubmissionId\n testCases: map\n GradedResponseV2:\n properties:\n submissionId: SubmissionId\n testCases: map\n TestCaseGrade:\n union:\n hidden:\n type: TestCaseHiddenGrade\n key: hidden\n nonHidden:\n type: TestCaseNonHiddenGrade\n key: nonHidden\n TestCaseHiddenGrade:\n properties:\n passed: boolean\n TestCaseNonHiddenGrade:\n properties:\n passed: boolean\n actualResult: optional\n exception: optional\n stdout: string\n RecordedResponseNotification:\n properties:\n submissionId: SubmissionId\n traceResponsesSize: integer\n testCaseId: optional\n RecordingResponseNotification:\n properties:\n submissionId: SubmissionId\n testCaseId: optional\n lineNumber: integer\n lightweightStackInfo: LightweightStackframeInformation\n tracedFile: optional\n LightweightStackframeInformation:\n properties:\n numStackFrames: integer\n topStackFrameMethodName: string\n TestCaseResultWithStdout:\n properties:\n result: TestCaseResult\n stdout: string\n TestCaseResult:\n properties:\n expectedResult: commons.VariableValue\n actualResult: ActualResult\n passed: boolean\n ActualResult:\n union:\n value:\n type: commons.VariableValue\n key: value\n exception:\n type: ExceptionInfo\n key: exception\n exceptionV2:\n type: ExceptionV2\n key: exceptionV2\n ExceptionV2:\n union:\n generic:\n type: ExceptionInfo\n key: generic\n timeout:\n type: commons.EmptyObject\n key: timeout\n ExceptionInfo:\n properties:\n exceptionType: string\n exceptionMessage: string\n exceptionStacktrace: string\n InvalidRequestResponse:\n properties:\n request: SubmissionRequest\n cause: InvalidRequestCause\n InvalidRequestCause:\n union:\n submissionIdNotFound:\n type: SubmissionIdNotFound\n docs: The submission request references a submission id that doesn't exist.\n key: submissionIdNotFound\n customTestCasesUnsupported:\n type: CustomTestCasesUnsupported\n key: customTestCasesUnsupported\n unexpectedLanguage:\n type: UnexpectedLanguageError\n docs: The submission request was routed to an incorrect language executor.\n key: unexpectedLanguage\n ExistingSubmissionExecuting:\n properties:\n submissionId: SubmissionId\n SubmissionIdNotFound:\n properties:\n missingSubmissionId: SubmissionId\n CustomTestCasesUnsupported:\n properties:\n problemId: commons.ProblemId\n submissionId: SubmissionId\n UnexpectedLanguageError:\n properties:\n expectedLanguage: commons.Language\n actualLanguage: commons.Language\n TerminatedResponse:\n properties: {}\n FinishedResponse:\n properties:\n submissionId: SubmissionId\n StdoutResponse:\n properties:\n submissionId: SubmissionId\n stdout: string\n StderrResponse:\n properties:\n submissionId: SubmissionId\n stderr: string\n TraceResponse:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TraceResponseV2:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n file: TracedFile\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TracedFile:\n properties:\n filename: string\n directory: string\n ExpressionLocation:\n properties:\n start: integer\n offset: integer\n StackInformation:\n properties:\n numStackFrames: integer\n topStackFrame: optional\n StackFrame:\n properties:\n methodName: string\n lineNumber: integer\n scopes: list\n Scope:\n properties:\n variables: map\n ExecutionSessionResponse:\n properties:\n sessionId: string\n executionSessionUrl: optional\n language: commons.Language\n status: ExecutionSessionStatus\n ExecutionSessionStatus:\n enum:\n - CREATING_CONTAINER\n - PROVISIONING_CONTAINER\n - PENDING_CONTAINER\n - RUNNING_CONTAINER\n - LIVE_CONTAINER\n - FAILED_TO_LAUNCH\n SubmissionStateV2:\n properties:\n timeSubmitted: datetime\n language: commons.Language\n submissionFiles: list\n submissionStatus: SubmissionStatusV2\n SubmissionStatusV2:\n union:\n test:\n type: TestSubmissionStatusV2\n key: test\n workspace:\n type: WorkspaceSubmissionStatusV2\n key: workspace\n TestSubmissionStatusV2:\n properties:\n updates: list\n problemId: commons.ProblemId\n problemVersion: integer\n problemInfo: problemV2.ProblemInfoV2\n WorkspaceSubmissionStatusV2:\n properties:\n updates: list\n TestSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: TestSubmissionUpdateInfo\n TestSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n gradedTestCase:\n type: GradedTestCaseUpdate\n key: gradedTestCase\n recordedTestCase:\n type: RecordedTestCaseUpdate\n key: recordedTestCase\n finished:\n type: commons.EmptyObject\n key: finished\n WorkspaceSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: WorkspaceSubmissionUpdateInfo\n WorkspaceSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n stopped:\n type: commons.EmptyObject\n key: stopped\n traced:\n type: commons.EmptyObject\n key: traced\n tracedV2:\n type: WorkspaceTracedUpdate\n key: tracedV2\n errored:\n type: ErrorInfo\n key: errored\n finished:\n type: commons.EmptyObject\n key: finished\n GradedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n grade: TestCaseGrade\n RecordedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n traceResponsesSize: integer\n WorkspaceTracedUpdate:\n properties:\n traceResponsesSize: integer\n SubmissionState:\n properties:\n timeSubmitted: optional\n submission: string\n language: commons.Language\n submissionTypeState: SubmissionTypeState\n SubmissionTypeState:\n union:\n test:\n type: TestSubmissionState\n key: test\n workspace:\n type: WorkspaceSubmissionState\n key: workspace\n WorkspaceSubmissionState:\n properties:\n status: WorkspaceSubmissionStatus\n WorkspaceSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n traced:\n type: WorkspaceRunDetails\n key: traced\n TestSubmissionState:\n properties:\n problemId: commons.ProblemId\n defaultTestCases: list\n customTestCases: list\n status: TestSubmissionStatus\n TestSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n testCaseIdToState:\n type: map\n key: testCaseIdToState\n SubmissionStatusForTestCase:\n union:\n graded:\n type: TestCaseResultWithStdout\n key: graded\n gradedV2:\n type: TestCaseGrade\n key: gradedV2\n traced:\n type: TracedTestCase\n key: traced\n TracedTestCase:\n properties:\n result: TestCaseResultWithStdout\n traceResponsesSize: integer\n TraceResponsesPage:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n TraceResponsesPageV2:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n GetTraceResponsesPageRequest:\n properties:\n offset:\n type: optional\n WorkspaceStarterFilesResponse:\n properties:\n files: map\n WorkspaceStarterFilesResponseV2:\n properties:\n filesByLanguage: map\n WorkspaceFiles:\n properties:\n mainFile: commons.FileInfo\n readOnlyFiles: list\n ExecutionSessionsState:\n properties:\n states: map\n numWarmingInstances: optional\n warmingSessionIds: list\n ExecutionSessionState:\n properties:\n lastTimeContacted: optional\n sessionId: string\n isWarmInstance: boolean\n awsTaskId: optional\n language: commons.Language\n status: ExecutionSessionStatus\nimports:\n commons: ../commons/__package__.yml\n problemV2: ../ProblemInfoServicV2/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /submissions\n endpoints:\n getSubmissionState:\n auth: true\n path: /{submissionId}\n method: GET\n response: SubmissionState\n docs: Returns information about the submission\n path-parameters:\n submissionId: SubmissionId\n getSubmissionStateV2:\n auth: true\n path: /v2/{submissionId}\n method: GET\n response: SubmissionStateV2\n docs: Returns information about submission for problem V2\n path-parameters:\n submissionId: SubmissionId\n getTraceResponsesPage:\n auth: true\n path: /trace-respose/{submissionId}/testCase/{testCaseId}\n method: POST\n response: TraceResponsesPage\n docs: Returns traces for the submission and test case\n path-parameters:\n submissionId: SubmissionId\n testCaseId: string\n request:\n body: GetTraceResponsesPageRequest\n getTraceResponsesV2Page:\n auth: true\n path: /trace-response-v2/{submissionId}/testCase/{testCaseId}\n method: POST\n response: TraceResponsesPageV2\n docs: Returns traces for the submission and test case\n path-parameters:\n submissionId: SubmissionId\n testCaseId: problemV2.TestCaseId\n request:\n body: GetTraceResponsesPageRequest\n getTraceResponsesPageForWorkspace:\n auth: true\n path: /workspace-trace-response/{submissionId}\n method: POST\n response: TraceResponsesPage\n docs: Returns traces for the workspace\n path-parameters:\n submissionId: SubmissionId\n request:\n body: GetTraceResponsesPageRequest\n getTraceResponsesV2PageForWorkspace:\n auth: true\n path: /workspace-trace-response-v2/{submissionId}\n method: POST\n response: TraceResponsesPageV2\n docs: Returns traces for the submission and test case\n path-parameters:\n submissionId: SubmissionId\n request:\n body: GetTraceResponsesPageRequest\ntypes:\n SubmissionId:\n type: string\n ShareId:\n type: string\n SubmissionRequest:\n union:\n initializeProblemRequest:\n type: InitializeProblemRequest\n key: initializeProblemRequest\n initializeWorkspaceRequest:\n type: commons.EmptyObject\n key: initializeWorkspaceRequest\n submitV2:\n type: SubmitRequestV2\n key: submitV2\n workspaceSubmit:\n type: WorkspaceSubmitRequest\n key: workspaceSubmit\n stop:\n type: StopRequest\n key: stop\n InitializeProblemRequest:\n properties:\n problemId: commons.ProblemId\n problemVersion: optional\n SubmitRequestV2:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n problemId: commons.ProblemId\n problemVersion: optional\n userId: optional\n WorkspaceSubmitRequest:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n userId: optional\n SubmissionFileInfo:\n properties:\n directory: string\n filename: string\n contents: string\n SubmissionTypeEnum:\n enum:\n - TEST\n StopRequest:\n properties:\n submissionId: SubmissionId\n SubmissionResponse:\n union:\n serverInitialized:\n type: commons.EmptyObject\n key: serverInitialized\n problemInitialized:\n type: commons.ProblemId\n key: problemInitialized\n workspaceInitialized:\n type: commons.EmptyObject\n key: workspaceInitialized\n serverErrored:\n type: ExceptionInfo\n key: serverErrored\n codeExecutionUpdate:\n type: CodeExecutionUpdate\n key: codeExecutionUpdate\n terminated:\n type: TerminatedResponse\n key: terminated\n CodeExecutionUpdate:\n union:\n buildingExecutor:\n type: BuildingExecutorResponse\n docs: >-\n Statuses if an executor for the session isn't ready (Before\n RunningResponse).\n key: buildingExecutor\n running:\n type: RunningResponse\n docs: Sent once a test submission is executing.\n key: running\n errored:\n type: ErroredResponse\n docs: Sent if a submission cannot be run (i.e. Compile Error).\n key: errored\n stopped:\n type: StoppedResponse\n docs: Sent if a submission is stopped.\n key: stopped\n graded:\n type: GradedResponse\n docs: Graded testcases without trace information.\n key: graded\n gradedV2:\n type: GradedResponseV2\n docs: Graded submission for v2 problems.\n key: gradedV2\n workspaceRan:\n type: WorkspaceRanResponse\n docs: Workspace run without trace information.\n key: workspaceRan\n recording:\n type: RecordingResponseNotification\n docs: Gives progress about what is being recorded.\n key: recording\n recorded:\n type: RecordedResponseNotification\n docs: Graded testcases with trace information.\n key: recorded\n invalidRequest:\n type: InvalidRequestResponse\n docs: Sent if an invalid request is sent for a submission.\n key: invalidRequest\n finished:\n type: FinishedResponse\n docs: Sent once a submission is graded and fully recorded.\n key: finished\n BuildingExecutorResponse:\n properties:\n submissionId: SubmissionId\n status: ExecutionSessionStatus\n RunningResponse:\n properties:\n submissionId: SubmissionId\n state: RunningSubmissionState\n RunningSubmissionState:\n enum:\n - QUEUEING_SUBMISSION\n - KILLING_HISTORICAL_SUBMISSIONS\n - WRITING_SUBMISSION_TO_FILE\n - COMPILING_SUBMISSION\n - RUNNING_SUBMISSION\n ErroredResponse:\n properties:\n submissionId: SubmissionId\n errorInfo: ErrorInfo\n ErrorInfo:\n union:\n compileError:\n type: CompileError\n key: compileError\n runtimeError:\n type: RuntimeError\n docs: >\n If the submission cannot be executed and throws a runtime error before\n getting to any of the testcases.\n key: runtimeError\n internalError:\n type: InternalError\n docs: |\n If the trace backend encounters an unexpected error.\n key: internalError\n CompileError:\n properties:\n message: string\n RuntimeError:\n properties:\n message: string\n InternalError:\n properties:\n exceptionInfo: ExceptionInfo\n StoppedResponse:\n properties:\n submissionId: SubmissionId\n WorkspaceRanResponse:\n properties:\n submissionId: SubmissionId\n runDetails: WorkspaceRunDetails\n WorkspaceRunDetails:\n properties:\n exceptionV2: optional\n exception: optional\n stdout: string\n GradedResponse:\n properties:\n submissionId: SubmissionId\n testCases: map\n GradedResponseV2:\n properties:\n submissionId: SubmissionId\n testCases: map\n TestCaseGrade:\n union:\n hidden:\n type: TestCaseHiddenGrade\n key: hidden\n nonHidden:\n type: TestCaseNonHiddenGrade\n key: nonHidden\n TestCaseHiddenGrade:\n properties:\n passed: boolean\n TestCaseNonHiddenGrade:\n properties:\n passed: boolean\n actualResult: optional\n exception: optional\n stdout: string\n RecordedResponseNotification:\n properties:\n submissionId: SubmissionId\n traceResponsesSize: integer\n testCaseId: optional\n RecordingResponseNotification:\n properties:\n submissionId: SubmissionId\n testCaseId: optional\n lineNumber: integer\n lightweightStackInfo: LightweightStackframeInformation\n tracedFile: optional\n LightweightStackframeInformation:\n properties:\n numStackFrames: integer\n topStackFrameMethodName: string\n TestCaseResultWithStdout:\n properties:\n result: TestCaseResult\n stdout: string\n TestCaseResult:\n properties:\n expectedResult: commons.VariableValue\n actualResult: ActualResult\n passed: boolean\n ActualResult:\n union:\n value:\n type: commons.VariableValue\n key: value\n exception:\n type: ExceptionInfo\n key: exception\n exceptionV2:\n type: ExceptionV2\n key: exceptionV2\n ExceptionV2:\n union:\n generic:\n type: ExceptionInfo\n key: generic\n timeout:\n type: commons.EmptyObject\n key: timeout\n ExceptionInfo:\n properties:\n exceptionType: string\n exceptionMessage: string\n exceptionStacktrace: string\n InvalidRequestResponse:\n properties:\n request: SubmissionRequest\n cause: InvalidRequestCause\n InvalidRequestCause:\n union:\n submissionIdNotFound:\n type: SubmissionIdNotFound\n docs: The submission request references a submission id that doesn't exist.\n key: submissionIdNotFound\n customTestCasesUnsupported:\n type: CustomTestCasesUnsupported\n key: customTestCasesUnsupported\n unexpectedLanguage:\n type: UnexpectedLanguageError\n docs: The submission request was routed to an incorrect language executor.\n key: unexpectedLanguage\n ExistingSubmissionExecuting:\n properties:\n submissionId: SubmissionId\n SubmissionIdNotFound:\n properties:\n missingSubmissionId: SubmissionId\n CustomTestCasesUnsupported:\n properties:\n problemId: commons.ProblemId\n submissionId: SubmissionId\n UnexpectedLanguageError:\n properties:\n expectedLanguage: commons.Language\n actualLanguage: commons.Language\n TerminatedResponse:\n properties: {}\n FinishedResponse:\n properties:\n submissionId: SubmissionId\n StdoutResponse:\n properties:\n submissionId: SubmissionId\n stdout: string\n StderrResponse:\n properties:\n submissionId: SubmissionId\n stderr: string\n TraceResponse:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TraceResponseV2:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n file: TracedFile\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TracedFile:\n properties:\n filename: string\n directory: string\n ExpressionLocation:\n properties:\n start: integer\n offset: integer\n StackInformation:\n properties:\n numStackFrames: integer\n topStackFrame: optional\n StackFrame:\n properties:\n methodName: string\n lineNumber: integer\n scopes: list\n Scope:\n properties:\n variables: map\n ExecutionSessionResponse:\n properties:\n sessionId: string\n executionSessionUrl: optional\n language: commons.Language\n status: ExecutionSessionStatus\n ExecutionSessionStatus:\n enum:\n - CREATING_CONTAINER\n - PROVISIONING_CONTAINER\n - PENDING_CONTAINER\n - RUNNING_CONTAINER\n - LIVE_CONTAINER\n - FAILED_TO_LAUNCH\n SubmissionStateV2:\n properties:\n timeSubmitted: datetime\n language: commons.Language\n submissionFiles: list\n submissionStatus: SubmissionStatusV2\n SubmissionStatusV2:\n union:\n test:\n type: TestSubmissionStatusV2\n key: test\n workspace:\n type: WorkspaceSubmissionStatusV2\n key: workspace\n TestSubmissionStatusV2:\n properties:\n updates: list\n problemId: commons.ProblemId\n problemVersion: integer\n problemInfo: problemV2.ProblemInfoV2\n WorkspaceSubmissionStatusV2:\n properties:\n updates: list\n TestSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: TestSubmissionUpdateInfo\n TestSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n gradedTestCase:\n type: GradedTestCaseUpdate\n key: gradedTestCase\n recordedTestCase:\n type: RecordedTestCaseUpdate\n key: recordedTestCase\n finished:\n type: commons.EmptyObject\n key: finished\n WorkspaceSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: WorkspaceSubmissionUpdateInfo\n WorkspaceSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n stopped:\n type: commons.EmptyObject\n key: stopped\n traced:\n type: commons.EmptyObject\n key: traced\n tracedV2:\n type: WorkspaceTracedUpdate\n key: tracedV2\n errored:\n type: ErrorInfo\n key: errored\n finished:\n type: commons.EmptyObject\n key: finished\n GradedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n grade: TestCaseGrade\n RecordedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n traceResponsesSize: integer\n WorkspaceTracedUpdate:\n properties:\n traceResponsesSize: integer\n SubmissionState:\n properties:\n timeSubmitted: optional\n submission: string\n language: commons.Language\n submissionTypeState: SubmissionTypeState\n SubmissionTypeState:\n union:\n test:\n type: TestSubmissionState\n key: test\n workspace:\n type: WorkspaceSubmissionState\n key: workspace\n WorkspaceSubmissionState:\n properties:\n status: WorkspaceSubmissionStatus\n WorkspaceSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n traced:\n type: WorkspaceRunDetails\n key: traced\n TestSubmissionState:\n properties:\n problemId: commons.ProblemId\n defaultTestCases: list\n customTestCases: list\n status: TestSubmissionStatus\n TestSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n testCaseIdToState:\n type: map\n key: testCaseIdToState\n SubmissionStatusForTestCase:\n union:\n graded:\n type: TestCaseResultWithStdout\n key: graded\n gradedV2:\n type: TestCaseGrade\n key: gradedV2\n traced:\n type: TracedTestCase\n key: traced\n TracedTestCase:\n properties:\n result: TestCaseResultWithStdout\n traceResponsesSize: integer\n TraceResponsesPage:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n TraceResponsesPageV2:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n GetTraceResponsesPageRequest:\n properties:\n offset:\n type: optional\n WorkspaceStarterFilesResponse:\n properties:\n files: map\n WorkspaceStarterFilesResponseV2:\n properties:\n filesByLanguage: map\n WorkspaceFiles:\n properties:\n mainFile: commons.FileInfo\n readOnlyFiles: list\n ExecutionSessionsState:\n properties:\n states: map\n numWarmingInstances: optional\n warmingSessionIds: list\n ExecutionSessionState:\n properties:\n lastTimeContacted: optional\n sessionId: string\n isWarmInstance: boolean\n awsTaskId: optional\n language: commons.Language\n status: ExecutionSessionStatus\nimports:\n commons: ../commons/__package__.yml\n problemV2: ../ProblemInfoServicV2/__package__.yml\n", "contents": { "service": { "auth": false, @@ -2178,6 +2211,7 @@ "path": "/{submissionId}", "method": "GET", "response": "SubmissionState", + "docs": "Returns information about the submission", "path-parameters": { "submissionId": "SubmissionId" } @@ -2187,6 +2221,7 @@ "path": "/v2/{submissionId}", "method": "GET", "response": "SubmissionStateV2", + "docs": "Returns information about submission for problem V2", "path-parameters": { "submissionId": "SubmissionId" } @@ -2196,6 +2231,7 @@ "path": "/trace-respose/{submissionId}/testCase/{testCaseId}", "method": "POST", "response": "TraceResponsesPage", + "docs": "Returns traces for the submission and test case", "path-parameters": { "submissionId": "SubmissionId", "testCaseId": "string" @@ -2209,6 +2245,7 @@ "path": "/trace-response-v2/{submissionId}/testCase/{testCaseId}", "method": "POST", "response": "TraceResponsesPageV2", + "docs": "Returns traces for the submission and test case", "path-parameters": { "submissionId": "SubmissionId", "testCaseId": "problemV2.TestCaseId" @@ -2222,6 +2259,7 @@ "path": "/workspace-trace-response/{submissionId}", "method": "POST", "response": "TraceResponsesPage", + "docs": "Returns traces for the workspace", "path-parameters": { "submissionId": "SubmissionId" }, @@ -2234,6 +2272,7 @@ "path": "/workspace-trace-response-v2/{submissionId}", "method": "POST", "response": "TraceResponsesPageV2", + "docs": "Returns traces for the submission and test case", "path-parameters": { "submissionId": "SubmissionId" }, @@ -3040,7 +3079,7 @@ }, "WorkspaceInfo/__package__.yml": { "absoluteFilepath": "/DUMMY_PATH", - "rawContents": "service:\n auth: false\n base-path: /workspace\n endpoints:\n getWorkspaceStarterFiles:\n auth: true\n path: /get-workspace-starter-files\n method: GET\n response: WorkspaceStarterFilesResponse\n getWorkspaceStarterFilesV2:\n auth: true\n path: /get-workspace-starter-files-v2\n method: GET\n response: WorkspaceStarterFilesResponseV2\ntypes:\n SubmissionId:\n type: string\n ShareId:\n type: string\n SubmissionRequest:\n union:\n initializeProblemRequest:\n type: InitializeProblemRequest\n key: initializeProblemRequest\n initializeWorkspaceRequest:\n type: commons.EmptyObject\n key: initializeWorkspaceRequest\n submitV2:\n type: SubmitRequestV2\n key: submitV2\n workspaceSubmit:\n type: WorkspaceSubmitRequest\n key: workspaceSubmit\n stop:\n type: StopRequest\n key: stop\n InitializeProblemRequest:\n properties:\n problemId: commons.ProblemId\n problemVersion: optional\n SubmitRequestV2:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n problemId: commons.ProblemId\n problemVersion: optional\n userId: optional\n WorkspaceSubmitRequest:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n userId: optional\n SubmissionFileInfo:\n properties:\n directory: string\n filename: string\n contents: string\n SubmissionTypeEnum:\n enum:\n - TEST\n StopRequest:\n properties:\n submissionId: SubmissionId\n SubmissionResponse:\n union:\n serverInitialized:\n type: commons.EmptyObject\n key: serverInitialized\n problemInitialized:\n type: commons.ProblemId\n key: problemInitialized\n workspaceInitialized:\n type: commons.EmptyObject\n key: workspaceInitialized\n serverErrored:\n type: ExceptionInfo\n key: serverErrored\n codeExecutionUpdate:\n type: CodeExecutionUpdate\n key: codeExecutionUpdate\n terminated:\n type: TerminatedResponse\n key: terminated\n CodeExecutionUpdate:\n union:\n buildingExecutor:\n type: BuildingExecutorResponse\n docs: >-\n Statuses if an executor for the session isn't ready (Before\n RunningResponse).\n key: buildingExecutor\n running:\n type: RunningResponse\n docs: Sent once a test submission is executing.\n key: running\n errored:\n type: ErroredResponse\n docs: Sent if a submission cannot be run (i.e. Compile Error).\n key: errored\n stopped:\n type: StoppedResponse\n docs: Sent if a submission is stopped.\n key: stopped\n graded:\n type: GradedResponse\n docs: Graded testcases without trace information.\n key: graded\n gradedV2:\n type: GradedResponseV2\n docs: Graded submission for v2 problems.\n key: gradedV2\n workspaceRan:\n type: WorkspaceRanResponse\n docs: Workspace run without trace information.\n key: workspaceRan\n recording:\n type: RecordingResponseNotification\n docs: Gives progress about what is being recorded.\n key: recording\n recorded:\n type: RecordedResponseNotification\n docs: Graded testcases with trace information.\n key: recorded\n invalidRequest:\n type: InvalidRequestResponse\n docs: Sent if an invalid request is sent for a submission.\n key: invalidRequest\n finished:\n type: FinishedResponse\n docs: Sent once a submission is graded and fully recorded.\n key: finished\n BuildingExecutorResponse:\n properties:\n submissionId: SubmissionId\n status: ExecutionSessionStatus\n RunningResponse:\n properties:\n submissionId: SubmissionId\n state: RunningSubmissionState\n RunningSubmissionState:\n enum:\n - QUEUEING_SUBMISSION\n - KILLING_HISTORICAL_SUBMISSIONS\n - WRITING_SUBMISSION_TO_FILE\n - COMPILING_SUBMISSION\n - RUNNING_SUBMISSION\n ErroredResponse:\n properties:\n submissionId: SubmissionId\n errorInfo: ErrorInfo\n ErrorInfo:\n union:\n compileError:\n type: CompileError\n key: compileError\n runtimeError:\n type: RuntimeError\n docs: >\n If the submission cannot be executed and throws a runtime error before\n getting to any of the testcases.\n key: runtimeError\n internalError:\n type: InternalError\n docs: |\n If the trace backend encounters an unexpected error.\n key: internalError\n CompileError:\n properties:\n message: string\n RuntimeError:\n properties:\n message: string\n InternalError:\n properties:\n exceptionInfo: ExceptionInfo\n StoppedResponse:\n properties:\n submissionId: SubmissionId\n WorkspaceRanResponse:\n properties:\n submissionId: SubmissionId\n runDetails: WorkspaceRunDetails\n WorkspaceRunDetails:\n properties:\n exceptionV2: optional\n exception: optional\n stdout: string\n GradedResponse:\n properties:\n submissionId: SubmissionId\n testCases: map\n GradedResponseV2:\n properties:\n submissionId: SubmissionId\n testCases: map\n TestCaseGrade:\n union:\n hidden:\n type: TestCaseHiddenGrade\n key: hidden\n nonHidden:\n type: TestCaseNonHiddenGrade\n key: nonHidden\n TestCaseHiddenGrade:\n properties:\n passed: boolean\n TestCaseNonHiddenGrade:\n properties:\n passed: boolean\n actualResult: optional\n exception: optional\n stdout: string\n RecordedResponseNotification:\n properties:\n submissionId: SubmissionId\n traceResponsesSize: integer\n testCaseId: optional\n RecordingResponseNotification:\n properties:\n submissionId: SubmissionId\n testCaseId: optional\n lineNumber: integer\n lightweightStackInfo: LightweightStackframeInformation\n tracedFile: optional\n LightweightStackframeInformation:\n properties:\n numStackFrames: integer\n topStackFrameMethodName: string\n TestCaseResultWithStdout:\n properties:\n result: TestCaseResult\n stdout: string\n TestCaseResult:\n properties:\n expectedResult: commons.VariableValue\n actualResult: ActualResult\n passed: boolean\n ActualResult:\n union:\n value:\n type: commons.VariableValue\n key: value\n exception:\n type: ExceptionInfo\n key: exception\n exceptionV2:\n type: ExceptionV2\n key: exceptionV2\n ExceptionV2:\n union:\n generic:\n type: ExceptionInfo\n key: generic\n timeout:\n type: commons.EmptyObject\n key: timeout\n ExceptionInfo:\n properties:\n exceptionType: string\n exceptionMessage: string\n exceptionStacktrace: string\n InvalidRequestResponse:\n properties:\n request: SubmissionRequest\n cause: InvalidRequestCause\n InvalidRequestCause:\n union:\n submissionIdNotFound:\n type: SubmissionIdNotFound\n docs: The submission request references a submission id that doesn't exist.\n key: submissionIdNotFound\n customTestCasesUnsupported:\n type: CustomTestCasesUnsupported\n key: customTestCasesUnsupported\n unexpectedLanguage:\n type: UnexpectedLanguageError\n docs: The submission request was routed to an incorrect language executor.\n key: unexpectedLanguage\n ExistingSubmissionExecuting:\n properties:\n submissionId: SubmissionId\n SubmissionIdNotFound:\n properties:\n missingSubmissionId: SubmissionId\n CustomTestCasesUnsupported:\n properties:\n problemId: commons.ProblemId\n submissionId: SubmissionId\n UnexpectedLanguageError:\n properties:\n expectedLanguage: commons.Language\n actualLanguage: commons.Language\n TerminatedResponse:\n properties: {}\n FinishedResponse:\n properties:\n submissionId: SubmissionId\n StdoutResponse:\n properties:\n submissionId: SubmissionId\n stdout: string\n StderrResponse:\n properties:\n submissionId: SubmissionId\n stderr: string\n TraceResponse:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TraceResponseV2:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n file: TracedFile\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TracedFile:\n properties:\n filename: string\n directory: string\n ExpressionLocation:\n properties:\n start: integer\n offset: integer\n StackInformation:\n properties:\n numStackFrames: integer\n topStackFrame: optional\n StackFrame:\n properties:\n methodName: string\n lineNumber: integer\n scopes: list\n Scope:\n properties:\n variables: map\n ExecutionSessionResponse:\n properties:\n sessionId: string\n executionSessionUrl: optional\n language: commons.Language\n status: ExecutionSessionStatus\n ExecutionSessionStatus:\n enum:\n - CREATING_CONTAINER\n - PROVISIONING_CONTAINER\n - PENDING_CONTAINER\n - RUNNING_CONTAINER\n - LIVE_CONTAINER\n - FAILED_TO_LAUNCH\n SubmissionStateV2:\n properties:\n timeSubmitted: datetime\n language: commons.Language\n submissionFiles: list\n submissionStatus: SubmissionStatusV2\n SubmissionStatusV2:\n union:\n test:\n type: TestSubmissionStatusV2\n key: test\n workspace:\n type: WorkspaceSubmissionStatusV2\n key: workspace\n TestSubmissionStatusV2:\n properties:\n updates: list\n problemId: commons.ProblemId\n problemVersion: integer\n problemInfo: problemV2.ProblemInfoV2\n WorkspaceSubmissionStatusV2:\n properties:\n updates: list\n TestSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: TestSubmissionUpdateInfo\n TestSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n gradedTestCase:\n type: GradedTestCaseUpdate\n key: gradedTestCase\n recordedTestCase:\n type: RecordedTestCaseUpdate\n key: recordedTestCase\n finished:\n type: commons.EmptyObject\n key: finished\n WorkspaceSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: WorkspaceSubmissionUpdateInfo\n WorkspaceSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n stopped:\n type: commons.EmptyObject\n key: stopped\n traced:\n type: commons.EmptyObject\n key: traced\n tracedV2:\n type: WorkspaceTracedUpdate\n key: tracedV2\n errored:\n type: ErrorInfo\n key: errored\n finished:\n type: commons.EmptyObject\n key: finished\n GradedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n grade: TestCaseGrade\n RecordedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n traceResponsesSize: integer\n WorkspaceTracedUpdate:\n properties:\n traceResponsesSize: integer\n SubmissionState:\n properties:\n timeSubmitted: optional\n submission: string\n language: commons.Language\n submissionTypeState: SubmissionTypeState\n SubmissionTypeState:\n union:\n test:\n type: TestSubmissionState\n key: test\n workspace:\n type: WorkspaceSubmissionState\n key: workspace\n WorkspaceSubmissionState:\n properties:\n status: WorkspaceSubmissionStatus\n WorkspaceSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n traced:\n type: WorkspaceRunDetails\n key: traced\n TestSubmissionState:\n properties:\n problemId: commons.ProblemId\n defaultTestCases: list\n customTestCases: list\n status: TestSubmissionStatus\n TestSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n testCaseIdToState:\n type: map\n key: testCaseIdToState\n SubmissionStatusForTestCase:\n union:\n graded:\n type: TestCaseResultWithStdout\n key: graded\n gradedV2:\n type: TestCaseGrade\n key: gradedV2\n traced:\n type: TracedTestCase\n key: traced\n TracedTestCase:\n properties:\n result: TestCaseResultWithStdout\n traceResponsesSize: integer\n TraceResponsesPage:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n TraceResponsesPageV2:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n GetTraceResponsesPageRequest:\n properties:\n offset:\n type: optional\n WorkspaceStarterFilesResponse:\n properties:\n files: map\n WorkspaceStarterFilesResponseV2:\n properties:\n filesByLanguage: map\n WorkspaceFiles:\n properties:\n mainFile: commons.FileInfo\n readOnlyFiles: list\n ExecutionSessionsState:\n properties:\n states: map\n numWarmingInstances: optional\n warmingSessionIds: list\n ExecutionSessionState:\n properties:\n lastTimeContacted: optional\n sessionId: string\n isWarmInstance: boolean\n awsTaskId: optional\n language: commons.Language\n status: ExecutionSessionStatus\nimports:\n commons: ../commons/__package__.yml\n problemV2: ../ProblemInfoServicV2/__package__.yml\n", + "rawContents": "service:\n auth: false\n base-path: /workspace\n endpoints:\n getWorkspaceStarterFiles:\n auth: true\n path: /get-workspace-starter-files\n method: GET\n response: WorkspaceStarterFilesResponse\n docs: Returns starter files for workspace\n getWorkspaceStarterFilesV2:\n auth: true\n path: /get-workspace-starter-files-v2\n method: GET\n response: WorkspaceStarterFilesResponseV2\n docs: Returns starter files for workspace\ntypes:\n SubmissionId:\n type: string\n ShareId:\n type: string\n SubmissionRequest:\n union:\n initializeProblemRequest:\n type: InitializeProblemRequest\n key: initializeProblemRequest\n initializeWorkspaceRequest:\n type: commons.EmptyObject\n key: initializeWorkspaceRequest\n submitV2:\n type: SubmitRequestV2\n key: submitV2\n workspaceSubmit:\n type: WorkspaceSubmitRequest\n key: workspaceSubmit\n stop:\n type: StopRequest\n key: stop\n InitializeProblemRequest:\n properties:\n problemId: commons.ProblemId\n problemVersion: optional\n SubmitRequestV2:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n problemId: commons.ProblemId\n problemVersion: optional\n userId: optional\n WorkspaceSubmitRequest:\n properties:\n submissionId: SubmissionId\n language: commons.Language\n submissionFiles: list\n userId: optional\n SubmissionFileInfo:\n properties:\n directory: string\n filename: string\n contents: string\n SubmissionTypeEnum:\n enum:\n - TEST\n StopRequest:\n properties:\n submissionId: SubmissionId\n SubmissionResponse:\n union:\n serverInitialized:\n type: commons.EmptyObject\n key: serverInitialized\n problemInitialized:\n type: commons.ProblemId\n key: problemInitialized\n workspaceInitialized:\n type: commons.EmptyObject\n key: workspaceInitialized\n serverErrored:\n type: ExceptionInfo\n key: serverErrored\n codeExecutionUpdate:\n type: CodeExecutionUpdate\n key: codeExecutionUpdate\n terminated:\n type: TerminatedResponse\n key: terminated\n CodeExecutionUpdate:\n union:\n buildingExecutor:\n type: BuildingExecutorResponse\n docs: >-\n Statuses if an executor for the session isn't ready (Before\n RunningResponse).\n key: buildingExecutor\n running:\n type: RunningResponse\n docs: Sent once a test submission is executing.\n key: running\n errored:\n type: ErroredResponse\n docs: Sent if a submission cannot be run (i.e. Compile Error).\n key: errored\n stopped:\n type: StoppedResponse\n docs: Sent if a submission is stopped.\n key: stopped\n graded:\n type: GradedResponse\n docs: Graded testcases without trace information.\n key: graded\n gradedV2:\n type: GradedResponseV2\n docs: Graded submission for v2 problems.\n key: gradedV2\n workspaceRan:\n type: WorkspaceRanResponse\n docs: Workspace run without trace information.\n key: workspaceRan\n recording:\n type: RecordingResponseNotification\n docs: Gives progress about what is being recorded.\n key: recording\n recorded:\n type: RecordedResponseNotification\n docs: Graded testcases with trace information.\n key: recorded\n invalidRequest:\n type: InvalidRequestResponse\n docs: Sent if an invalid request is sent for a submission.\n key: invalidRequest\n finished:\n type: FinishedResponse\n docs: Sent once a submission is graded and fully recorded.\n key: finished\n BuildingExecutorResponse:\n properties:\n submissionId: SubmissionId\n status: ExecutionSessionStatus\n RunningResponse:\n properties:\n submissionId: SubmissionId\n state: RunningSubmissionState\n RunningSubmissionState:\n enum:\n - QUEUEING_SUBMISSION\n - KILLING_HISTORICAL_SUBMISSIONS\n - WRITING_SUBMISSION_TO_FILE\n - COMPILING_SUBMISSION\n - RUNNING_SUBMISSION\n ErroredResponse:\n properties:\n submissionId: SubmissionId\n errorInfo: ErrorInfo\n ErrorInfo:\n union:\n compileError:\n type: CompileError\n key: compileError\n runtimeError:\n type: RuntimeError\n docs: >\n If the submission cannot be executed and throws a runtime error before\n getting to any of the testcases.\n key: runtimeError\n internalError:\n type: InternalError\n docs: |\n If the trace backend encounters an unexpected error.\n key: internalError\n CompileError:\n properties:\n message: string\n RuntimeError:\n properties:\n message: string\n InternalError:\n properties:\n exceptionInfo: ExceptionInfo\n StoppedResponse:\n properties:\n submissionId: SubmissionId\n WorkspaceRanResponse:\n properties:\n submissionId: SubmissionId\n runDetails: WorkspaceRunDetails\n WorkspaceRunDetails:\n properties:\n exceptionV2: optional\n exception: optional\n stdout: string\n GradedResponse:\n properties:\n submissionId: SubmissionId\n testCases: map\n GradedResponseV2:\n properties:\n submissionId: SubmissionId\n testCases: map\n TestCaseGrade:\n union:\n hidden:\n type: TestCaseHiddenGrade\n key: hidden\n nonHidden:\n type: TestCaseNonHiddenGrade\n key: nonHidden\n TestCaseHiddenGrade:\n properties:\n passed: boolean\n TestCaseNonHiddenGrade:\n properties:\n passed: boolean\n actualResult: optional\n exception: optional\n stdout: string\n RecordedResponseNotification:\n properties:\n submissionId: SubmissionId\n traceResponsesSize: integer\n testCaseId: optional\n RecordingResponseNotification:\n properties:\n submissionId: SubmissionId\n testCaseId: optional\n lineNumber: integer\n lightweightStackInfo: LightweightStackframeInformation\n tracedFile: optional\n LightweightStackframeInformation:\n properties:\n numStackFrames: integer\n topStackFrameMethodName: string\n TestCaseResultWithStdout:\n properties:\n result: TestCaseResult\n stdout: string\n TestCaseResult:\n properties:\n expectedResult: commons.VariableValue\n actualResult: ActualResult\n passed: boolean\n ActualResult:\n union:\n value:\n type: commons.VariableValue\n key: value\n exception:\n type: ExceptionInfo\n key: exception\n exceptionV2:\n type: ExceptionV2\n key: exceptionV2\n ExceptionV2:\n union:\n generic:\n type: ExceptionInfo\n key: generic\n timeout:\n type: commons.EmptyObject\n key: timeout\n ExceptionInfo:\n properties:\n exceptionType: string\n exceptionMessage: string\n exceptionStacktrace: string\n InvalidRequestResponse:\n properties:\n request: SubmissionRequest\n cause: InvalidRequestCause\n InvalidRequestCause:\n union:\n submissionIdNotFound:\n type: SubmissionIdNotFound\n docs: The submission request references a submission id that doesn't exist.\n key: submissionIdNotFound\n customTestCasesUnsupported:\n type: CustomTestCasesUnsupported\n key: customTestCasesUnsupported\n unexpectedLanguage:\n type: UnexpectedLanguageError\n docs: The submission request was routed to an incorrect language executor.\n key: unexpectedLanguage\n ExistingSubmissionExecuting:\n properties:\n submissionId: SubmissionId\n SubmissionIdNotFound:\n properties:\n missingSubmissionId: SubmissionId\n CustomTestCasesUnsupported:\n properties:\n problemId: commons.ProblemId\n submissionId: SubmissionId\n UnexpectedLanguageError:\n properties:\n expectedLanguage: commons.Language\n actualLanguage: commons.Language\n TerminatedResponse:\n properties: {}\n FinishedResponse:\n properties:\n submissionId: SubmissionId\n StdoutResponse:\n properties:\n submissionId: SubmissionId\n stdout: string\n StderrResponse:\n properties:\n submissionId: SubmissionId\n stderr: string\n TraceResponse:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TraceResponseV2:\n properties:\n submissionId: SubmissionId\n lineNumber: integer\n file: TracedFile\n returnValue: optional\n expressionLocation: optional\n stack: StackInformation\n stdout: optional\n TracedFile:\n properties:\n filename: string\n directory: string\n ExpressionLocation:\n properties:\n start: integer\n offset: integer\n StackInformation:\n properties:\n numStackFrames: integer\n topStackFrame: optional\n StackFrame:\n properties:\n methodName: string\n lineNumber: integer\n scopes: list\n Scope:\n properties:\n variables: map\n ExecutionSessionResponse:\n properties:\n sessionId: string\n executionSessionUrl: optional\n language: commons.Language\n status: ExecutionSessionStatus\n ExecutionSessionStatus:\n enum:\n - CREATING_CONTAINER\n - PROVISIONING_CONTAINER\n - PENDING_CONTAINER\n - RUNNING_CONTAINER\n - LIVE_CONTAINER\n - FAILED_TO_LAUNCH\n SubmissionStateV2:\n properties:\n timeSubmitted: datetime\n language: commons.Language\n submissionFiles: list\n submissionStatus: SubmissionStatusV2\n SubmissionStatusV2:\n union:\n test:\n type: TestSubmissionStatusV2\n key: test\n workspace:\n type: WorkspaceSubmissionStatusV2\n key: workspace\n TestSubmissionStatusV2:\n properties:\n updates: list\n problemId: commons.ProblemId\n problemVersion: integer\n problemInfo: problemV2.ProblemInfoV2\n WorkspaceSubmissionStatusV2:\n properties:\n updates: list\n TestSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: TestSubmissionUpdateInfo\n TestSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n gradedTestCase:\n type: GradedTestCaseUpdate\n key: gradedTestCase\n recordedTestCase:\n type: RecordedTestCaseUpdate\n key: recordedTestCase\n finished:\n type: commons.EmptyObject\n key: finished\n WorkspaceSubmissionUpdate:\n properties:\n updateTime: datetime\n updateInfo: WorkspaceSubmissionUpdateInfo\n WorkspaceSubmissionUpdateInfo:\n union:\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n stopped:\n type: commons.EmptyObject\n key: stopped\n traced:\n type: commons.EmptyObject\n key: traced\n tracedV2:\n type: WorkspaceTracedUpdate\n key: tracedV2\n errored:\n type: ErrorInfo\n key: errored\n finished:\n type: commons.EmptyObject\n key: finished\n GradedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n grade: TestCaseGrade\n RecordedTestCaseUpdate:\n properties:\n testCaseId: problemV2.TestCaseId\n traceResponsesSize: integer\n WorkspaceTracedUpdate:\n properties:\n traceResponsesSize: integer\n SubmissionState:\n properties:\n timeSubmitted: optional\n submission: string\n language: commons.Language\n submissionTypeState: SubmissionTypeState\n SubmissionTypeState:\n union:\n test:\n type: TestSubmissionState\n key: test\n workspace:\n type: WorkspaceSubmissionState\n key: workspace\n WorkspaceSubmissionState:\n properties:\n status: WorkspaceSubmissionStatus\n WorkspaceSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n ran:\n type: WorkspaceRunDetails\n key: ran\n traced:\n type: WorkspaceRunDetails\n key: traced\n TestSubmissionState:\n properties:\n problemId: commons.ProblemId\n defaultTestCases: list\n customTestCases: list\n status: TestSubmissionStatus\n TestSubmissionStatus:\n union:\n stopped:\n type: commons.EmptyObject\n key: stopped\n errored:\n type: ErrorInfo\n key: errored\n running:\n type: RunningSubmissionState\n key: running\n testCaseIdToState:\n type: map\n key: testCaseIdToState\n SubmissionStatusForTestCase:\n union:\n graded:\n type: TestCaseResultWithStdout\n key: graded\n gradedV2:\n type: TestCaseGrade\n key: gradedV2\n traced:\n type: TracedTestCase\n key: traced\n TracedTestCase:\n properties:\n result: TestCaseResultWithStdout\n traceResponsesSize: integer\n TraceResponsesPage:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n TraceResponsesPageV2:\n properties:\n offset:\n type: optional\n docs: |\n If present, use this to load subseqent pages.\n The offset is the id of the next trace response to load.\n traceResponses: list\n GetTraceResponsesPageRequest:\n properties:\n offset:\n type: optional\n WorkspaceStarterFilesResponse:\n properties:\n files: map\n WorkspaceStarterFilesResponseV2:\n properties:\n filesByLanguage: map\n WorkspaceFiles:\n properties:\n mainFile: commons.FileInfo\n readOnlyFiles: list\n ExecutionSessionsState:\n properties:\n states: map\n numWarmingInstances: optional\n warmingSessionIds: list\n ExecutionSessionState:\n properties:\n lastTimeContacted: optional\n sessionId: string\n isWarmInstance: boolean\n awsTaskId: optional\n language: commons.Language\n status: ExecutionSessionStatus\nimports:\n commons: ../commons/__package__.yml\n problemV2: ../ProblemInfoServicV2/__package__.yml\n", "contents": { "service": { "auth": false, @@ -3050,13 +3089,15 @@ "auth": true, "path": "/get-workspace-starter-files", "method": "GET", - "response": "WorkspaceStarterFilesResponse" + "response": "WorkspaceStarterFilesResponse", + "docs": "Returns starter files for workspace" }, "getWorkspaceStarterFilesV2": { "auth": true, "path": "/get-workspace-starter-files-v2", "method": "GET", - "response": "WorkspaceStarterFilesResponseV2" + "response": "WorkspaceStarterFilesResponseV2", + "docs": "Returns starter files for workspace" } } }, diff --git a/packages/cli/api-importers/conjure/conjure-to-fern/src/ConjureImporter.ts b/packages/cli/api-importers/conjure/conjure-to-fern/src/ConjureImporter.ts index 9c51648deda..0b22ffb7f6a 100644 --- a/packages/cli/api-importers/conjure/conjure-to-fern/src/ConjureImporter.ts +++ b/packages/cli/api-importers/conjure/conjure-to-fern/src/ConjureImporter.ts @@ -139,6 +139,10 @@ export class ConjureImporter extends APIDefinitionImporter response: endpointDeclaration.returns === "binary" ? "file" : endpointDeclaration.returns }; + if (endpointDeclaration.docs != null) { + endpoint.docs = endpointDeclaration.docs; + } + const pathParameters: Record = {}; if (endpointDeclaration.args != null) { for (const pathParameter of endpointLocator.pathParameters) { diff --git a/packages/cli/cli/versions.yml b/packages/cli/cli/versions.yml index ba8622bbfc9..24b809627be 100644 --- a/packages/cli/cli/versions.yml +++ b/packages/cli/cli/versions.yml @@ -1,3 +1,10 @@ +- changelogEntry: + - summary: | + The Conjure importer now brings in endpoint level descriptions. + type: feat + irVersion: 53 + version: 0.45.0-rc27 + - changelogEntry: - summary: | `fern check` handles validating unions that contain base properties. diff --git a/packages/cli/generation/ir-generator/src/converters/type-declarations/convertExampleType.ts b/packages/cli/generation/ir-generator/src/converters/type-declarations/convertExampleType.ts index b55bafb4a01..f194b15b044 100644 --- a/packages/cli/generation/ir-generator/src/converters/type-declarations/convertExampleType.ts +++ b/packages/cli/generation/ir-generator/src/converters/type-declarations/convertExampleType.ts @@ -494,7 +494,8 @@ function convertObject({ file: fileContainingType }); if (originalTypeDeclaration == null) { - throw new Error("Could not find original type declaration for property: " + wireKey); + // dont fail hard because it may be from `base-properties` + return exampleProperties; } const valueExample = convertTypeReferenceExample({ diff --git a/seed/csharp-model/mixed-case/.mock/definition/service.yml b/seed/csharp-model/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/csharp-model/mixed-case/.mock/definition/service.yml +++ b/seed/csharp-model/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/csharp-sdk/mixed-case/.mock/definition/service.yml b/seed/csharp-sdk/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/csharp-sdk/mixed-case/.mock/definition/service.yml +++ b/seed/csharp-sdk/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/fastapi/mixed-case/.mock/definition/service.yml b/seed/fastapi/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/fastapi/mixed-case/.mock/definition/service.yml +++ b/seed/fastapi/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/go-fiber/mixed-case/.mock/definition/service.yml b/seed/go-fiber/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/go-fiber/mixed-case/.mock/definition/service.yml +++ b/seed/go-fiber/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/go-model/mixed-case/.mock/definition/service.yml b/seed/go-model/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/go-model/mixed-case/.mock/definition/service.yml +++ b/seed/go-model/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/go-sdk/mixed-case/.mock/definition/service.yml b/seed/go-sdk/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/go-sdk/mixed-case/.mock/definition/service.yml +++ b/seed/go-sdk/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/java-model/mixed-case/.mock/definition/service.yml b/seed/java-model/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/java-model/mixed-case/.mock/definition/service.yml +++ b/seed/java-model/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/java-sdk/mixed-case/.mock/definition/service.yml b/seed/java-sdk/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/java-sdk/mixed-case/.mock/definition/service.yml +++ b/seed/java-sdk/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/java-spring/mixed-case/.mock/definition/service.yml b/seed/java-spring/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/java-spring/mixed-case/.mock/definition/service.yml +++ b/seed/java-spring/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/openapi/mixed-case/.mock/definition/service.yml b/seed/openapi/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/openapi/mixed-case/.mock/definition/service.yml +++ b/seed/openapi/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/openapi/mixed-case/openapi.yml b/seed/openapi/mixed-case/openapi.yml index 15264575730..2dccc56291a 100644 --- a/seed/openapi/mixed-case/openapi.yml +++ b/seed/openapi/mixed-case/openapi.yml @@ -28,6 +28,7 @@ paths: examples: Example1: value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -74,6 +75,7 @@ paths: One: value: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/php-model/mixed-case/.mock/definition/service.yml b/seed/php-model/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/php-model/mixed-case/.mock/definition/service.yml +++ b/seed/php-model/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/php-sdk/mixed-case/.mock/definition/service.yml b/seed/php-sdk/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/php-sdk/mixed-case/.mock/definition/service.yml +++ b/seed/php-sdk/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/postman/mixed-case/.mock/definition/service.yml b/seed/postman/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/postman/mixed-case/.mock/definition/service.yml +++ b/seed/postman/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/postman/mixed-case/collection.json b/seed/postman/mixed-case/collection.json index 301eb0c092c..bcde9b1ddea 100644 --- a/seed/postman/mixed-case/collection.json +++ b/seed/postman/mixed-case/collection.json @@ -89,7 +89,7 @@ "body": null }, "description": null, - "body": "{\n \"resource_type\": \"user\",\n \"userName\": \"username\",\n \"metadata_tags\": [\n \"tag1\",\n \"tag2\"\n ],\n \"EXTRA_PROPERTIES\": {\n \"foo\": \"bar\",\n \"baz\": \"qux\"\n }\n}", + "body": "{\n \"status\": \"ACTIVE\",\n \"resource_type\": \"user\",\n \"userName\": \"username\",\n \"metadata_tags\": [\n \"tag1\",\n \"tag2\"\n ],\n \"EXTRA_PROPERTIES\": {\n \"foo\": \"bar\",\n \"baz\": \"qux\"\n }\n}", "_postman_previewlanguage": "json" }, { @@ -212,7 +212,7 @@ "body": null }, "description": null, - "body": "[\n {\n \"resource_type\": \"user\",\n \"userName\": \"username\",\n \"metadata_tags\": [\n \"tag1\",\n \"tag2\"\n ],\n \"EXTRA_PROPERTIES\": {\n \"foo\": \"bar\",\n \"baz\": \"qux\"\n }\n }\n]", + "body": "[\n {\n \"resource_type\": \"user\",\n \"status\": \"ACTIVE\",\n \"userName\": \"username\",\n \"metadata_tags\": [\n \"tag1\",\n \"tag2\"\n ],\n \"EXTRA_PROPERTIES\": {\n \"foo\": \"bar\",\n \"baz\": \"qux\"\n }\n }\n]", "_postman_previewlanguage": "json" }, { diff --git a/seed/pydantic/mixed-case/.mock/definition/service.yml b/seed/pydantic/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/pydantic/mixed-case/.mock/definition/service.yml +++ b/seed/pydantic/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/python-sdk/mixed-case/.mock/definition/service.yml b/seed/python-sdk/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/python-sdk/mixed-case/.mock/definition/service.yml +++ b/seed/python-sdk/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/python-sdk/mixed-case/tests/test_service.py b/seed/python-sdk/mixed-case/tests/test_service.py index 954f0c3b1ec..d25a42f05ee 100644 --- a/seed/python-sdk/mixed-case/tests/test_service.py +++ b/seed/python-sdk/mixed-case/tests/test_service.py @@ -9,6 +9,7 @@ async def test_get_resource(client: SeedMixedCase, async_client: AsyncSeedMixedCase) -> None: expected_response: typing.Any = { + "status": "ACTIVE", "resource_type": "user", "userName": "username", "metadata_tags": ["tag1", "tag2"], @@ -26,6 +27,7 @@ async def test_list_resources(client: SeedMixedCase, async_client: AsyncSeedMixe expected_response: typing.Any = [ { "resource_type": "user", + "status": "ACTIVE", "userName": "username", "metadata_tags": ["tag1", "tag2"], "EXTRA_PROPERTIES": {"foo": "bar", "baz": "qux"}, diff --git a/seed/ruby-model/mixed-case/.mock/definition/service.yml b/seed/ruby-model/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/ruby-model/mixed-case/.mock/definition/service.yml +++ b/seed/ruby-model/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/ruby-model/mixed-case/lib/requests.rb b/seed/ruby-model/mixed-case/lib/requests.rb new file mode 100644 index 00000000000..c172fa68040 --- /dev/null +++ b/seed/ruby-model/mixed-case/lib/requests.rb @@ -0,0 +1,132 @@ +# frozen_string_literal: true + +require "faraday" +require "faraday/retry" +require "async/http/faraday" + +module SeedMixedCaseClient + class RequestClient + # @return [Faraday] + attr_reader :conn + # @return [String] + attr_reader :base_url + + # @param base_url [String] + # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. + # @param timeout_in_seconds [Long] + # @return [SeedMixedCaseClient::RequestClient] + def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) + @base_url = base_url + @conn = Faraday.new do |faraday| + faraday.request :json + faraday.response :raise_error, include_request: true + faraday.request :retry, { max: max_retries } unless max_retries.nil? + faraday.options.timeout = timeout_in_seconds unless timeout_in_seconds.nil? + end + end + + # @param request_options [SeedMixedCaseClient::RequestOptions] + # @return [String] + def get_url(request_options: nil) + request_options&.base_url || @base_url + end + + # @return [Hash{String => String}] + def get_headers + { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "seed_mixed_case_client" } + end + end + + class AsyncRequestClient + # @return [Faraday] + attr_reader :conn + # @return [String] + attr_reader :base_url + + # @param base_url [String] + # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. + # @param timeout_in_seconds [Long] + # @return [SeedMixedCaseClient::AsyncRequestClient] + def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) + @base_url = base_url + @conn = Faraday.new do |faraday| + faraday.request :json + faraday.response :raise_error, include_request: true + faraday.adapter :async_http + faraday.request :retry, { max: max_retries } unless max_retries.nil? + faraday.options.timeout = timeout_in_seconds unless timeout_in_seconds.nil? + end + end + + # @param request_options [SeedMixedCaseClient::RequestOptions] + # @return [String] + def get_url(request_options: nil) + request_options&.base_url || @base_url + end + + # @return [Hash{String => String}] + def get_headers + { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "seed_mixed_case_client" } + end + end + + # Additional options for request-specific configuration when calling APIs via the + # SDK. + class RequestOptions + # @return [String] + attr_reader :base_url + # @return [Hash{String => Object}] + attr_reader :additional_headers + # @return [Hash{String => Object}] + attr_reader :additional_query_parameters + # @return [Hash{String => Object}] + attr_reader :additional_body_parameters + # @return [Long] + attr_reader :timeout_in_seconds + + # @param base_url [String] + # @param additional_headers [Hash{String => Object}] + # @param additional_query_parameters [Hash{String => Object}] + # @param additional_body_parameters [Hash{String => Object}] + # @param timeout_in_seconds [Long] + # @return [SeedMixedCaseClient::RequestOptions] + def initialize(base_url: nil, additional_headers: nil, additional_query_parameters: nil, + additional_body_parameters: nil, timeout_in_seconds: nil) + @base_url = base_url + @additional_headers = additional_headers + @additional_query_parameters = additional_query_parameters + @additional_body_parameters = additional_body_parameters + @timeout_in_seconds = timeout_in_seconds + end + end + + # Additional options for request-specific configuration when calling APIs via the + # SDK. + class IdempotencyRequestOptions + # @return [String] + attr_reader :base_url + # @return [Hash{String => Object}] + attr_reader :additional_headers + # @return [Hash{String => Object}] + attr_reader :additional_query_parameters + # @return [Hash{String => Object}] + attr_reader :additional_body_parameters + # @return [Long] + attr_reader :timeout_in_seconds + + # @param base_url [String] + # @param additional_headers [Hash{String => Object}] + # @param additional_query_parameters [Hash{String => Object}] + # @param additional_body_parameters [Hash{String => Object}] + # @param timeout_in_seconds [Long] + # @return [SeedMixedCaseClient::IdempotencyRequestOptions] + def initialize(base_url: nil, additional_headers: nil, additional_query_parameters: nil, + additional_body_parameters: nil, timeout_in_seconds: nil) + @base_url = base_url + @additional_headers = additional_headers + @additional_query_parameters = additional_query_parameters + @additional_body_parameters = additional_body_parameters + @timeout_in_seconds = timeout_in_seconds + end + end +end diff --git a/seed/ruby-model/mixed-case/lib/seed_mixed_case_client.rb b/seed/ruby-model/mixed-case/lib/seed_mixed_case_client.rb index 084eb3308c6..38fd95b0e55 100644 --- a/seed/ruby-model/mixed-case/lib/seed_mixed_case_client.rb +++ b/seed/ruby-model/mixed-case/lib/seed_mixed_case_client.rb @@ -1,7 +1,43 @@ # frozen_string_literal: true -require_relative "seed_mixed_case_client/service/types/organization" -require_relative "seed_mixed_case_client/service/types/user" -require_relative "seed_mixed_case_client/service/types/nested_user" -require_relative "seed_mixed_case_client/service/types/resource_status" -require_relative "seed_mixed_case_client/service/types/resource" +require_relative "types_export" +require_relative "requests" +require_relative "seed_mixed_case_client/service/client" + +module SeedMixedCaseClient + class Client + # @return [SeedMixedCaseClient::ServiceClient] + attr_reader :service + + # @param base_url [String] + # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. + # @param timeout_in_seconds [Long] + # @return [SeedMixedCaseClient::Client] + def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) + @request_client = SeedMixedCaseClient::RequestClient.new( + base_url: base_url, + max_retries: max_retries, + timeout_in_seconds: timeout_in_seconds + ) + @service = SeedMixedCaseClient::ServiceClient.new(request_client: @request_client) + end + end + + class AsyncClient + # @return [SeedMixedCaseClient::AsyncServiceClient] + attr_reader :service + + # @param base_url [String] + # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. + # @param timeout_in_seconds [Long] + # @return [SeedMixedCaseClient::AsyncClient] + def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) + @async_request_client = SeedMixedCaseClient::AsyncRequestClient.new( + base_url: base_url, + max_retries: max_retries, + timeout_in_seconds: timeout_in_seconds + ) + @service = SeedMixedCaseClient::AsyncServiceClient.new(request_client: @async_request_client) + end + end +end diff --git a/seed/ruby-model/mixed-case/lib/seed_mixed_case_client/service/client.rb b/seed/ruby-model/mixed-case/lib/seed_mixed_case_client/service/client.rb new file mode 100644 index 00000000000..480aadfd901 --- /dev/null +++ b/seed/ruby-model/mixed-case/lib/seed_mixed_case_client/service/client.rb @@ -0,0 +1,149 @@ +# frozen_string_literal: true + +require_relative "../../requests" +require_relative "types/resource" +require "date" +require "json" +require "async" + +module SeedMixedCaseClient + class ServiceClient + # @return [SeedMixedCaseClient::RequestClient] + attr_reader :request_client + + # @param request_client [SeedMixedCaseClient::RequestClient] + # @return [SeedMixedCaseClient::ServiceClient] + def initialize(request_client:) + @request_client = request_client + end + + # @param resource_id [String] + # @param request_options [SeedMixedCaseClient::RequestOptions] + # @return [SeedMixedCaseClient::Service::Resource] + # @example + # mixed_case = SeedMixedCaseClient::Client.new(base_url: "https://api.example.com") + # mixed_case.service.get_resource(resource_id: "rsc-xyz") + def get_resource(resource_id:, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/resource/#{resource_id}" + end + SeedMixedCaseClient::Service::Resource.from_json(json_object: response.body) + end + + # @param page_limit [Integer] + # @param before_date [Date] + # @param request_options [SeedMixedCaseClient::RequestOptions] + # @return [Array] + # @example + # mixed_case = SeedMixedCaseClient::Client.new(base_url: "https://api.example.com") + # mixed_case.service.list_resources(page_limit: 10, before_date: Date.parse("2023-01-01")) + def list_resources(page_limit:, before_date:, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "page_limit": page_limit, + "beforeDate": before_date + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/resource" + end + parsed_json = JSON.parse(response.body) + parsed_json&.map do |item| + item = item.to_json + SeedMixedCaseClient::Service::Resource.from_json(json_object: item) + end + end + end + + class AsyncServiceClient + # @return [SeedMixedCaseClient::AsyncRequestClient] + attr_reader :request_client + + # @param request_client [SeedMixedCaseClient::AsyncRequestClient] + # @return [SeedMixedCaseClient::AsyncServiceClient] + def initialize(request_client:) + @request_client = request_client + end + + # @param resource_id [String] + # @param request_options [SeedMixedCaseClient::RequestOptions] + # @return [SeedMixedCaseClient::Service::Resource] + # @example + # mixed_case = SeedMixedCaseClient::Client.new(base_url: "https://api.example.com") + # mixed_case.service.get_resource(resource_id: "rsc-xyz") + def get_resource(resource_id:, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/resource/#{resource_id}" + end + SeedMixedCaseClient::Service::Resource.from_json(json_object: response.body) + end + end + + # @param page_limit [Integer] + # @param before_date [Date] + # @param request_options [SeedMixedCaseClient::RequestOptions] + # @return [Array] + # @example + # mixed_case = SeedMixedCaseClient::Client.new(base_url: "https://api.example.com") + # mixed_case.service.list_resources(page_limit: 10, before_date: Date.parse("2023-01-01")) + def list_resources(page_limit:, before_date:, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "page_limit": page_limit, + "beforeDate": before_date + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/resource" + end + parsed_json = JSON.parse(response.body) + parsed_json&.map do |item| + item = item.to_json + SeedMixedCaseClient::Service::Resource.from_json(json_object: item) + end + end + end + end +end diff --git a/seed/ruby-model/mixed-case/lib/types_export.rb b/seed/ruby-model/mixed-case/lib/types_export.rb new file mode 100644 index 00000000000..084eb3308c6 --- /dev/null +++ b/seed/ruby-model/mixed-case/lib/types_export.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require_relative "seed_mixed_case_client/service/types/organization" +require_relative "seed_mixed_case_client/service/types/user" +require_relative "seed_mixed_case_client/service/types/nested_user" +require_relative "seed_mixed_case_client/service/types/resource_status" +require_relative "seed_mixed_case_client/service/types/resource" diff --git a/seed/ruby-model/mixed-case/seed_mixed_case_client.gemspec b/seed/ruby-model/mixed-case/seed_mixed_case_client.gemspec index 974f808f110..8389dbe16ea 100644 --- a/seed/ruby-model/mixed-case/seed_mixed_case_client.gemspec +++ b/seed/ruby-model/mixed-case/seed_mixed_case_client.gemspec @@ -18,4 +18,8 @@ Gem::Specification.new do |spec| spec.bindir = "exe" spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] + spec.add_dependency "async-http-faraday", ">= 0.0", "< 1.0" + spec.add_dependency "faraday", ">= 1.10", "< 3.0" + spec.add_dependency "faraday-net_http", ">= 1.0", "< 4.0" + spec.add_dependency "faraday-retry", ">= 1.0", "< 3.0" end diff --git a/seed/ruby-sdk/mixed-case/.mock/definition/service.yml b/seed/ruby-sdk/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/ruby-sdk/mixed-case/.mock/definition/service.yml +++ b/seed/ruby-sdk/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/ts-express/mixed-case/no-custom-config/.mock/definition/service.yml b/seed/ts-express/mixed-case/no-custom-config/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/ts-express/mixed-case/no-custom-config/.mock/definition/service.yml +++ b/seed/ts-express/mixed-case/no-custom-config/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/ts-express/mixed-case/retain-original-casing/.mock/definition/service.yml b/seed/ts-express/mixed-case/retain-original-casing/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/ts-express/mixed-case/retain-original-casing/.mock/definition/service.yml +++ b/seed/ts-express/mixed-case/retain-original-casing/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/ts-sdk/mixed-case/no-custom-config/.mock/definition/service.yml b/seed/ts-sdk/mixed-case/no-custom-config/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/ts-sdk/mixed-case/no-custom-config/.mock/definition/service.yml +++ b/seed/ts-sdk/mixed-case/no-custom-config/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/ts-sdk/mixed-case/retain-original-casing/.mock/definition/service.yml b/seed/ts-sdk/mixed-case/retain-original-casing/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/ts-sdk/mixed-case/retain-original-casing/.mock/definition/service.yml +++ b/seed/ts-sdk/mixed-case/retain-original-casing/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/test-definitions/fern/apis/mixed-case/definition/service.yml b/test-definitions/fern/apis/mixed-case/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/test-definitions/fern/apis/mixed-case/definition/service.yml +++ b/test-definitions/fern/apis/mixed-case/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1