| { |
| "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" |
| } |
| } |
| ], |
| "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" |
| } |
| } |
| } |
| } |
| }, |
| "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" |
| } |
| } |
| } |
| }, |
| "externalDocs": { |
| "description": "Find out more about VNFSDK", |
| "url": "https://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/index.html" |
| } |
| } |