summaryrefslogtreecommitdiffstats
path: root/docs/files/swagger.json
diff options
context:
space:
mode:
Diffstat (limited to 'docs/files/swagger.json')
-rw-r--r--docs/files/swagger.json343
1 files changed, 343 insertions, 0 deletions
diff --git a/docs/files/swagger.json b/docs/files/swagger.json
new file mode 100644
index 0000000..04a227b
--- /dev/null
+++ b/docs/files/swagger.json
@@ -0,0 +1,343 @@
+{
+ "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"
+ }
+} \ No newline at end of file