{ "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" } }