VTP REST API v1

swagger: '2.0'
info:
  version: 1.0.0
  title: ''
basePath: /onapapi/vnfsdk-marketplace/v1
tags:
  - name: VTP Scenario
  - name: VTP Execution
paths:
  '/vtp/scenarios/{scenario}/testsuites':
    get:
      tags:
        - VTP Scenario
      summary: ' List available test suties in given scenario'
      description: ''
      operationId: listTestSuties
      produces:
        - application/json
      parameters:
        - name: scenario
          in: path
          description: Test scenario name
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            type: array
            items:
              $ref: '#/definitions/VTPTestSuite'
        '500':
          description: Failed to perform the operation
          schema:
            $ref: '#/definitions/VTPError'
  '/vtp/scenarios/{scenario}/testcases':
    get:
      tags:
        - VTP Scenario
      summary: ' List available test cases'
      description: ''
      operationId: listTestcases
      produces:
        - application/json
      parameters:
        - name: scenario
          in: path
          description: Test scenario name
          required: true
          type: string
        - name: testSuiteName
          in: query
          description: Test suite name
          required: false
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            type: array
            items:
              $ref: '#/definitions/VTPTestCase'
        '500':
          description: Failed to perform the operation
          schema:
            $ref: '#/definitions/VTPError'
  '/vtp/scenarios/{scenario}/testsuites/{testSuiteName}/testcases/{testCaseName}':
    get:
      tags:
        - VTP Scenario
      summary: Retrieve test cases details like inputs outputs and test suite name
      description: ''
      operationId: getTestcase
      produces:
        - application/json
      parameters:
        - name: scenario
          in: path
          description: Test scenario name
          required: true
          type: string
        - name: testSuiteName
          in: path
          description: Test case name
          required: true
          type: string
        - name: testCaseName
          in: path
          description: Test case name
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/VTPTestCase'
        '404':
          description: Test case does not exist
          schema:
            $ref: '#/definitions/VTPError'
        '500':
          description: Failed to perform the operation
          schema:
            $ref: '#/definitions/VTPError'
  '/vtp/executions/{executionId}':
    get:
      tags:
        - VTP Execution
      summary: ' Retrieve test execution complete details'
      description: ''
      operationId: getTestExecution
      produces:
        - application/json
      parameters:
        - name: executionId
          in: path
          description: Test execution Id
          required: true
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/VTPTestExecution'
        '500':
          description: Failed to perform the operation
          schema:
            $ref: '#/definitions/VTPError'
  /vtp/scenarios:
    get:
      tags:
        - VTP Scenario
      summary: ' List available test scenarios'
      description: ''
      operationId: listTestScenarios
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            type: array
            items:
              $ref: '#/definitions/VTPTestScenario'
        '500':
          description: Failed to perform the operation
          schema:
            $ref: '#/definitions/VTPError'
  /vtp/executions:
    get:
      tags:
        - VTP Execution
      summary: ' List test executions'
      description: ''
      operationId: listTestExecutions
      produces:
        - application/json
      parameters:
        - name: requestId
          in: query
          description: Test request Id
          required: false
          type: string
        - name: scenario
          in: query
          description: Test scenario name
          required: false
          type: string
        - name: testsuiteName
          in: query
          description: Test suite name
          required: false
          type: string
        - name: testcaseName
          in: query
          description: Test case name
          required: false
          type: string
        - name: profileName
          in: query
          description: Test profile name
          required: false
          type: string
        - name: startTime
          in: query
          description: Test execution start time
          required: false
          type: string
        - name: endTime
          in: query
          description: Test execution end time
          required: false
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            type: array
            items:
              $ref: '#/definitions/VTPTestExecution'
        '500':
          description: Failed to perform the operation
          schema:
            $ref: '#/definitions/VTPError'
    post:
      tags:
        - VTP Execution
      summary: 'Execute the test case with given inputs in ''executions'' form-data as key-value pair of parameter''s name vs parameter''s value. If parameter is binary type thenmulti-part form-data ''file'' should be used to feed the binary file content and it can be more than once. To use the given file as input parameter, prefix the value with file://<filename>.'
      description: ''
      operationId: executeTestcases1
      consumes:
        - multipart/form-data
      produces:
        - application/json
      parameters:
        - name: requestId
          in: query
          description: Request Id
          required: false
          type: string
        - name: file
          in: formData
          description: Testcase File arguments
          required: false
          type: array
          items:
            $ref: '#/definitions/FormDataBodyPart'
          collectionFormat: multi
        - name: executions
          in: formData
          required: false
          type: string
      responses:
        '200':
          description: successful operation
          schema:
            type: array
            items:
              $ref: '#/definitions/VTPTestExecution'
        '500':
          description: Failed to perform the operation
          schema:
            $ref: '#/definitions/VTPError'
definitions:
 
  VTPTestSuite:
    type: object
    properties:
      name:
        type: string
  VTPError:
    type: object
    properties:
      code:
        type: string
      message:
        type: string
      httpStatus:
        type: integer
        format: int32
  VTPTestCase:
    type: object
    properties:
      scenario:
        type: string
      testCaseName:
        type: string
      testSuiteName:
        type: string
      descripton:
        type: string
      author:
        type: string
      inputs:
        type: array
        items:
          $ref: '#/definitions/VTPTestCaseInput'
      outputs:
        type: array
        items:
          $ref: '#/definitions/VTPTestCaseOutput'
  VTPTestCaseInput:
    type: object
    properties:
      name:
        type: string
      description:
        type: string
      type:
        type: string
      defaultValue:
        type: string
      isOptional:
        type: boolean
      metadata:
        type:object
  VTPTestCaseOutput:
    type: object
    properties:
      name:
        type: string
      description:
        type: string
      type:
        type: string
 
  VTPTestExecution:
    type: object
    properties:
      scenario:
        type: string
      testCaseName:
        type: string
      testSuiteName:
        type: string
      executionId:
        type: string
      requestId:
        type: string
      profile:
        type: string
      parameters:
        $ref: '#/definitions/JsonNode'
      results:
        $ref: '#/definitions/JsonNode'
      status:
        type: string
      startTime:
        type: string
      endTime:
        type: string
  VTPTestScenario:
    type: object
    properties:
      name:
        type: string