X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=it%2Fotf.git;a=blobdiff_plain;f=otf-service-api%2Fswagger.yml;fp=otf-service-api%2Fswagger.yml;h=7bae19f1603719dca30ff6f09ca701d9d34be601;hp=0000000000000000000000000000000000000000;hb=14f6f95c84a4a1fa8774190db4a03fd0214ec55f;hpb=f49bd1efeaaddd4891c1f329b18d8cfb28b3e75b diff --git a/otf-service-api/swagger.yml b/otf-service-api/swagger.yml new file mode 100644 index 0000000..7bae19f --- /dev/null +++ b/otf-service-api/swagger.yml @@ -0,0 +1,714 @@ +openapi: 3.0.1 +info: + title: Open Test Framework API + description: A RESTful API used to communicate with the OTF test control unit. + contact: + name: OTF + url: https://localhost:32524 + version: "1.0" +tags: +- name: Health Service + description: Query the availability of the API +- name: Test Execution Service + description: Query the status and history of your test executions +- name: Test Instance Service + description: Create, execute,and query test instances +- name: Test Strategy Service + description: Deploy and delete test strategies to and from the test control unit. + (This documentation will only be available to the development team) +paths: + /otf/api/health/v1: + get: + tags: + - Health Service + summary: Checks if the test control unit is available + operationId: getHealth_1 + responses: + 200: + description: The test control unit is available + content: + application/json: + schema: + $ref: '#/components/schemas/OtfApiResponse' + /otf/api/testExecution/v1/executionId/{executionId}: + get: + tags: + - Test Execution Service + operationId: getExecutionStatus_1 + parameters: + - name: executionId + in: path + required: true + schema: + type: string + - name: Authorization + in: header + schema: + type: string + responses: + default: + description: default response + content: + application/json: {} + /otf/api/testInstance/execute/v1/id/{testInstanceId}: + post: + tags: + - Test Instance Service + summary: Executes a test instance by it's unique identifier + operationId: execute_1 + parameters: + - name: testInstanceId + in: path + description: A string representation of a BSON ObjectId + required: true + schema: + type: string + description: The UUID of the test instance + format: uuid + example: 12345678912345678912345f + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExecuteTestInstanceRequest' + responses: + 200: + description: A successful synchronously executed test returns a test execution + object + content: + application/json: + schema: + $ref: '#/components/schemas/TestExecutionResult' + 201: + description: |- + A successful asynchronously executed test with asyncMode set to 'poll' returns an execution identifier + The identifier can be used as a parameter to the Test Execution Service to check the status of the executed test + content: + application/json: + schema: + $ref: '#/components/schemas/TestExecutionResult' + 401: + description: The mechanized identifier used with the request is prohibited + from accessing the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/OtfApiResponse' + /otf/api/testInstance/v1/id/{id}: + get: + tags: + - Test Instance Service + operationId: findById_1 + parameters: + - name: id + in: path + description: A string representation of a BSON ObjectId + required: true + schema: + type: string + description: The UUID of the test instance + format: uuid + example: 12345678912345678912345f + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + responses: + default: + description: default response + content: + application/json: {} + /otf/api/testInstance/create/v1/testDefinitionId/{testDefinitionId}/version/{version}: + post: + tags: + - Test Instance Service + summary: Create a test instance using the specified version of the test definition + operationId: createByTestDefinitionIdAndVersion_1 + parameters: + - name: testDefinitionId + in: path + description: A string representation of a BSON ObjectId + required: true + schema: + type: string + description: The UUID of the test definition. + format: uuid + example: 12345678912345678912345f + - name: version + in: path + description: The version of the test definition used to create the instance + required: true + schema: + type: string + example: 2 + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + - name: execute + in: query + description: Execute the test instance after it is created + allowEmptyValue: true + schema: + type: boolean + example: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTestInstanceRequest' + responses: + 201: + description: The created Test Instance object is returned when it is created + content: + application/json: + schema: + $ref: '#/components/schemas/TestInstance' + /otf/api/testInstance/v1/testInstanceName/{testInstanceName}: + get: + tags: + - Test Instance Service + summary: Finds a test instance by it's name + operationId: findByTestInstanceName_1 + parameters: + - name: testInstanceName + in: path + description: The name of the test instance to retrieve + required: true + schema: + type: string + example: myTestInstance + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + responses: + 200: + description: A test instance object is returned when if it is found + content: + application/json: + schema: + $ref: '#/components/schemas/TestInstance' + /otf/api/testInstance/v1/processDefinitionKey/{processDefinitionKey}: + get: + tags: + - Test Instance Service + operationId: findByProcessDefKey_1 + parameters: + - name: processDefinitionKey + in: path + description: The process definition key associated with the test definition + required: true + schema: + type: string + example: someUniqueProcessDefinitionKey + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + responses: + default: + description: default response + content: + application/json: {} + /otf/api/testInstance/create/v1/testDefinitionId/{testDefinitionId}: + post: + tags: + - Test Instance Service + summary: Create a test instance using the latest version of the test definition + operationId: createByTestDefinitionId_1 + parameters: + - name: testDefinitionId + in: path + description: A string representation of a BSON ObjectId + required: true + schema: + type: string + description: The UUID of the test definition + format: uuid + example: 12345678912345678912345f + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + - name: execute + in: query + description: Execute the test instance after it is created + allowEmptyValue: true + schema: + type: boolean + example: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTestInstanceRequest' + responses: + 201: + description: The created Test Instance object is returned when it is created + content: + application/json: + schema: + $ref: '#/components/schemas/TestInstance' + /otf/api/testInstance/v1/processDefinitionKey/{processDefinitionKey}/version/{version}: + get: + tags: + - Test Instance Service + operationId: findByProcessDefKeyAndVersion_1 + parameters: + - name: processDefinitionKey + in: path + description: The process definition key associated with the test definition + required: true + schema: + type: string + example: someUniqueProcessDefinitionKey + - name: version + in: path + description: The version of the test definition used to create the instance + required: true + schema: + type: string + example: 2 + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + responses: + default: + description: default response + content: + application/json: {} + /otf/api/testInstance/create/v1/processDefinitionKey/{processDefinitionKey}/version/{version}: + post: + tags: + - Test Instance Service + summary: Create a test instance using the specified version of the test definition + operationId: createByProcessDefKeyAndVersion_1 + parameters: + - name: processDefinitionKey + in: path + description: The process definition key associated with the test definition + required: true + schema: + type: string + example: someUniqueProcessDefinitionKey + - name: version + in: path + description: The version of the test definition used to create the instance + required: true + schema: + type: string + example: 2 + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + - name: execute + in: query + description: Execute the test instance after it is created + allowEmptyValue: true + schema: + type: boolean + example: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTestInstanceRequest' + responses: + 201: + description: The created Test Instance object is returned when it is created + content: + application/json: + schema: + $ref: '#/components/schemas/TestInstance' + /otf/api/testInstance/create/v1/processDefinitionKey/{processDefinitionKey}: + post: + tags: + - Test Instance Service + summary: Create a test instance using the latest version of the test definition + operationId: createByProcessDefKey_1 + parameters: + - name: processDefinitionKey + in: path + description: The process definition key associated with the test definition + required: true + schema: + type: string + example: someUniqueProcessDefinitionKey + - name: Authorization + in: header + description: Base64 encoded Application Authorization Framework credentials + required: true + schema: + type: string + example: Basic b3RmQGF0dC5jb206cGFzc3dvcmQxMjM= + - name: execute + in: query + description: Execute the test instance after it is created + allowEmptyValue: true + schema: + type: boolean + example: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTestInstanceRequest' + responses: + 201: + description: The created Test Instance object is returned when it is created + content: + application/json: + schema: + $ref: '#/components/schemas/TestInstance' + /otf/api/testStrategy/delete/v1/deploymentId/{deploymentId}: + delete: + tags: + - Test Strategy Service + operationId: deleteByDeploymentId_1 + parameters: + - name: deploymentId + in: path + required: true + schema: + type: string + - name: authorization + in: header + schema: + type: string + responses: + default: + description: default response + content: + application/json: {} + /otf/api/testStrategy/delete/v1/testDefinitionId/{testDefinitionId}: + delete: + tags: + - Test Strategy Service + operationId: deleteByTestDefinitionId_1 + parameters: + - name: testDefinitionId + in: path + required: true + schema: + type: string + - name: authorization + in: header + schema: + type: string + responses: + default: + description: default response + content: + application/json: {} + /otf/api/testStrategy/deploy/v1: + post: + tags: + - Test Strategy Service + operationId: deployTestStrategy_1 + parameters: + - name: Authorization + in: header + schema: + type: string + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + bpmn: + type: object + resources: + type: object + testDefinitionId: + type: string + testDefinitionDeployerId: + type: string + definitionId: + type: string + responses: + default: + description: default response + content: + application/json: {} +components: + schemas: + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + date: + type: string + format: date-time + message: + type: string + JSONObject: + type: object + ObjectId: + type: object + properties: + timestamp: + type: integer + format: int32 + machineIdentifier: + type: integer + format: int32 + processIdentifier: + type: integer + format: int32 + counter: + type: integer + format: int32 + time: + type: integer + format: int64 + date: + type: string + format: date-time + timeSecond: + type: integer + format: int32 + TestExecution: + type: object + properties: + get_id: + $ref: '#/components/schemas/ObjectId' + executionId: + type: string + testResult: + type: string + testDetails: + type: object + additionalProperties: + type: object + startTime: + type: string + format: date-time + endTime: + type: string + format: date-time + async: + type: boolean + asyncTopic: + type: string + asyncMode: + type: string + executor: + type: string + groupId: + $ref: '#/components/schemas/ObjectId' + testInstanceId: + $ref: '#/components/schemas/ObjectId' + testInstance: + type: object + additionalProperties: + type: object + testHeadResults: + type: array + items: + $ref: '#/components/schemas/TestHeadResult' + testDetailsJSON: + type: string + testInstanceJSON: + type: string + TestExecutionResult: + type: object + properties: + testExecution: + $ref: '#/components/schemas/TestExecution' + executionId: + type: string + testCompleted: + type: boolean + testExists: + type: boolean + TestHeadResult: + type: object + properties: + testHeadId: + $ref: '#/components/schemas/ObjectId' + testHeadName: + type: string + bpmnVthTaskId: + type: string + testHeadResponse: + type: object + additionalProperties: + type: object + startTime: + type: string + format: date-time + endTime: + type: string + format: date-time + testHeadResponseJSON: + $ref: '#/components/schemas/JSONObject' + ExecuteTestInstanceRequest: + type: object + properties: + async: + type: boolean + writeOnly: true + asyncTopic: + title: Execute the test synchronously or asynchronously.. + type: string + description: Ignored unless async is true, and asyncMode is DMaaP. + example: MyDMaaPTopic. + asyncMode: + title: Set the asynchronous execution mode. + type: string + description: Ignored unless async is true. The poll mode will return an + executionId that can be used to query the result of the executed test. + DMaaP is currently unsupported. + example: POLL + enum: + - POLL + - DMAAP + testData: + title: Use an existing test instance with different global test data. + type: object + description: Overrides (not overwrites) the testData field for the requested + execution. The overridden data will be preserved in the test execution + result. + example: + globalVar1: I'm available to your workflow! + globalVar2: + me: too + vthInput: + title: Use an existing test instance with different inputs to your VTHs. + type: object + description: Overrides (not overwrites) the vthInput field for the requested + execution. The overridden data will be preserved in the test execution + result. + example: + ServiceTask_123: + vthArg1: An argument your VTH expects. + vthArg2: {} + ServiceTask_456: + vthArg1: An argument your VTH expects. + description: The model2 for a test instance execution request. + TestInstance: + type: object + properties: + get_id: + $ref: '#/components/schemas/ObjectId' + testInstanceName: + type: string + testInstanceDescription: + type: string + groupId: + $ref: '#/components/schemas/ObjectId' + testDefinitionId: + $ref: '#/components/schemas/ObjectId' + processDefinitionId: + type: string + useLatestTestDefinition: + type: boolean + testData: + type: object + additionalProperties: + type: object + vthInput: + type: object + additionalProperties: + type: object + internalTestData: + type: object + additionalProperties: + type: object + createdAt: + type: string + format: date-time + updatedAt: + type: string + format: date-time + createdBy: + $ref: '#/components/schemas/ObjectId' + updatedBy: + $ref: '#/components/schemas/ObjectId' + vthInputJSON: + $ref: '#/components/schemas/JSONObject' + testDataJSON: + $ref: '#/components/schemas/JSONObject' + internalTestDataJSON: + $ref: '#/components/schemas/JSONObject' + CreateTestInstanceRequest: + required: + - testData + - testInstanceDescription + - testInstanceName + type: object + properties: + testInstanceName: + title: Name the test instance + type: string + description: The name must be unique among all test instances belonging + to the same test definition. + example: MyTestInstance + testInstanceDescription: + title: Describe the test instance being created + type: string + description: Use this field to describe the functionality of the test instance + example: This test instance does absolutely nothing! + testData: + title: Set global variables + type: object + description: |- + This field has read and write access by any task within the workflow. + See the example for more information + example: + globalVar1: I'm available to your workflow! + globalVar2: + me: too + vthInput: + title: Set virtual test head data + type: object + description: |- + This field determines the data each VTH at the designated ServiceTask will receive. + See the example for more information + example: + ServiceTask_123: + vthArg1: An argument your VTH expects. + vthArg2: {} + ServiceTask_456: + vthArg1: An argument your VTH expects. + async: + type: boolean + asyncTopic: + type: string + asyncMode: + type: string + description: The model2 for a test instance creation request.