blob: 83780c1b9796ceaf1fad0179ab3ad149d4f12a36 [file] [log] [blame]
swagger: "2.0"
info:
description: "These are the APIs for the ONAP VNFSDK Marketplace. VNFSDK helps to package and validate VNFs for onboarding into ONAP. You can find out more about VNFSDK at [http://onap.readthedocs.io](http://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/files/vnfsdk-apis.html)."
version: "1.0.0"
title: "ONAP VNFSDK"
contact:
email: "onap-discuss@lists.onap.org"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "onap.readthedocs.io"
basePath: "/onapapi/marketplace/v1"
tags:
- name: "csars"
description: "VNF CSAR information"
externalDocs:
description: "Find out more"
url: "http://wiki.onap.org"
- name: VTP Scenario
- name: VTP Execution
schemes:
- "http"
paths:
/csars:
get:
summary: "Query VNF Package by conditions"
description: "Query VNF package"
operationId: "queryVnf"
produces:
- "application/json"
tags:
- "VNF package"
parameters:
- name: "conditions"
in: "query"
description: "Conditions that need to be considered for filter"
required: true
type: "array"
items:
type: "string"
collectionFormat: "multi"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/Csars"
400:
description: "Invalid status value"
post:
summary: "Upload/Re-Upload VNF Package"
description: ""
operationId: "addVnf"
consumes:
- "multipart/form-data"
produces:
- "application/json"
tags:
- "VNF package"
parameters:
- in: "body"
name: "body"
description: "VNF objects to add to the Marketplace"
required: true
schema:
$ref: "#/definitions/Csars"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ApiResponse"
/csars/{csarId}:
get:
tags:
- "csarId"
summary: "Find vnf by CSAR ID"
description: "Returns a single vnf"
operationId: "getVnfByCsarId"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "csarId"
in: "path"
description: "CSAR ID of VNF to return"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Csars"
400:
description: "Invalid ID supplied"
404:
description: "VNF not found"
post:
tags:
- "csarId"
summary: "Updates a VNF in the Marketplace with form data"
description: ""
operationId: "updateCsar"
consumes:
- "application/x-www-form-urlencoded"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "csarId"
in: "path"
description: "CSAR ID of VNF that needs to be updated"
required: true
type: "string"
- name: "name"
in: "formData"
description: "Updated name of the VNF"
required: false
type: "string"
- name: "fileNamee"
in: "formData"
description: "Updated filename of the csar"
required: false
type: "string"
responses:
405:
description: "Invalid input"
delete:
tags:
- "csarId"
summary: "Deletes a VNF"
description: ""
operationId: "deleteVnf"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "csarId"
in: "path"
description: "VNF CSAR ID to delete"
required: true
type: "string"
responses:
400:
description: "Invalid ID supplied"
/csars/{csarId}/files:
get:
tags:
- "csarId"
summary: "Download vnf"
description: "Download a single vnf"
operationId: "downloadVnf"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "csarId"
in: "path"
description: "CSAR ID of VNF to return"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Csars"
400:
description: "Invalid ID supplied"
404:
description: "VNF not found"
'/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:
Csars:
type: "object"
required:
- "csarId"
properties:
type:
type: "string"
example: "CSAR"
name:
type: "string"
example: "NanocellGateway"
fileName:
type: "string"
creationDate:
type: "string"
modificationDate:
type: "string"
readDate:
type: "string"
size:
type: "string"
example: "37 MB"
provider:
type: "string"
example: "XYZ"
version:
type: "string"
example: "v1.0.0"
createTime:
type: "string"
modifyTime:
type: "string"
downloadUri:
type: "string"
example: "http://msb_ip:msb_port/files/marketplace/CSAR/XYZ/NanocellGW/v1.0"
shortdesc:
type: "string"
example: "XYZ Nanocell Gateway VNF"
details:
type: "string"
csarId:
type: "string"
example: "78ede6f3-66cc-46ab-b748-38a6c010d272"
parameters:
type: "array"
xml:
name: "parameters"
wrapped: true
items:
type: "string"
xml:
name: "Csars"
ApiResponse:
type: "object"
properties:
code:
type: "integer"
format: "int32"
type:
type: "string"
message:
type: "string"
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
externalDocs:
description: "Find out more about VNFSDK"
url: "https://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/index.html"