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