From 2dad02c346be21536f851fa4bb1c1bd869de74e1 Mon Sep 17 00:00:00 2001 From: yangyan Date: Fri, 22 Sep 2017 10:10:38 +0800 Subject: [PATCH] Add docs directory and NSLCM api document Add docs directory and NSLCM api document Issue-ID: VFC-403 Change-Id: Ib02badc97c66752aebde0e3c335ce239a45eb7ca Signed-off-by: yangyan --- docs/NSLCM_API_Specification_v0.1.rst | 544 ++++++++++++++++++++++++++++++++++ docs/index.rst | 7 + 2 files changed, 551 insertions(+) create mode 100644 docs/NSLCM_API_Specification_v0.1.rst create mode 100644 docs/index.rst diff --git a/docs/NSLCM_API_Specification_v0.1.rst b/docs/NSLCM_API_Specification_v0.1.rst new file mode 100644 index 00000000..b6992b1e --- /dev/null +++ b/docs/NSLCM_API_Specification_v0.1.rst @@ -0,0 +1,544 @@ +.. contents:: + :depth: 1 +.. + +NL LCM API +========== + + { + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "ONAP VFC Network Service Lifecycle Management API", + "description": "VFC Network Service Lifecycle Management Rest API.", + "contact": { + "name": "ONAP VFC team", + "email": "onap-discuss@lists.onap.org", + "url": "https://gerrit.onap.org/r/#/admin/projects/vfc/nfvo/lcm" + } + }, + "basePath": "/api/nslcm/v1", + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/ns": { + "post": { + "tags": [ + "ns" + ], + "summary": "ns create", + "description": "ns create", + "operationId": "ns_create", + "parameters": [ + { + "in": "body", + "name": "NSCreateRequest", + "description": "NS Instance Create Request", + "required": true, + "schema": { + "$ref": "#/definitions/NsCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NsCreateResponse" + } + } + } + }, + "get": { + "tags": [ + "ns" + ], + "summary": "ns get", + "description": "ns get", + "operationId": "ns_get", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NsInfo" + } + } + } + } + }, + "/ns/{nsInstanceId}/Instantiate": { + "post": { + "tags": [ + "ns" + ], + "summary": "ns Instantiate", + "description": "ns Instantiate", + "operationId": "ns_Instantiate", + "parameters": [ + { + "required": true, + "type": "string", + "description": "", + "name": "nsInstanceId", + "in": "path" + }, + { + "in": "body", + "name": "NSInstantiateRequest", + "description": "NS Instantiate Request Body", + "required": true, + "schema": { + "$ref": "#/definitions/NsInstantiateRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/JobInfo" + } + }, + "201": { + "description": "Invalid Request" + } + } + } + }, + "/ns/{nsInstanceId}/scale": { + "post": { + "tags": [ + "ns" + ], + "summary": "ns scale", + "description": "ns scale", + "operationId": "ns_scale", + "parameters": [ + { + "required": true, + "type": "string", + "description": "", + "name": "nsInstanceId", + "in": "path" + }, + { + "in": "body", + "name": "ScaleNSRequest", + "description": "Scale NS Request Body", + "required": true, + "schema": { + "$ref": "#/definitions/NsScaleRequest" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/JobInfo" + } + }, + "201": { + "description": "Invalid Request" + } + } + } + }, + "/ns/{ns_instance_id}/heal": { + "post": { + "tags": [ + "ns" + ], + "summary": "ns heal", + "description": "ns heal", + "operationId": "ns_heal", + "parameters": [ + { + "required": true, + "type": "string", + "description": "Identifier of the NS instance.", + "name": "ns_instance_id", + "in": "path" + }, + { + "in": "body", + "name": "healVnfData", + "description": "healVnfData", + "required": true, + "schema": { + "$ref": "#/definitions/NsHealRequest" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "$ref": "#/definitions/JobInfo" + } + }, + "500": { + "description": "the url is invalid" + } + } + } + }, + "/ns/{ns_instance_id}/terminate": { + "post": { + "tags": [ + "ns" + ], + "summary": "ns terminate", + "description": "ns terminate", + "operationId": "ns_terminate", + "parameters": [ + { + "required": true, + "type": "string", + "description": "Identifier of the NS instance.", + "name": "ns_instance_id", + "in": "path" + }, + { + "in": "body", + "name": "NsTerminateRequest", + "description": "NsTerminateRequest", + "required": true, + "schema": { + "$ref": "#/definitions/NsTerminateRequest" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "$ref": "#/definitions/JobInfo" + } + }, + "500": { + "description": "the url is invalid" + } + } + } + }, + "/ns/{ns_instance_id}": { + "delete": { + "tags": [ + "ns" + ], + "summary": "ns delete", + "description": "ns delete", + "operationId": "ns_delete", + "parameters": [ + { + "required": true, + "type": "string", + "description": "Identifier of the NS instance.", + "name": "ns_instance_id", + "in": "path" + } + ], + "responses": { + "204": { + "description": "The NS instance resource and the associated NS identifier were deleted successfully." + } + } + } + }, + "/jobs/{jobId}": { + "post": { + "tags": [ + "job" + ], + "summary": "jobstatus", + "description": "", + "operationId": "jobstatus", + "parameters": [ + { + "required": true, + "type": "string", + "description": "", + "name": "jobId", + "in": "path" + }, + { + "in": "body", + "name": "body", + "description": "request param", + "required": true, + "schema": { + "$ref": "#/definitions/JobProgressRequest" + } + } + ], + "responses": { + "202": { + "description": "" + } + } + } + } + }, + "definitions": { + "NsCreateRequest": { + "type": "object", + "properties": { + "csarId": { + "type": "string", + "description": "the NS package ID" + }, + "nsName": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "NsCreateResponse": { + "type": "object", + "properties": { + "nsInstanceId": { + "type": "string" + } + } + }, + "NsInstantiateRequest": { + "type": "object", + "properties": { + "LocationConstraints": { + "type": "array", + "items": { + "$ref": "#/definitions/LocationConstraint" + } + }, + "additionalParamForNs": { + "type": "string" + } + } + }, + "LocationConstraint": { + "type": "object", + "properties": { + "vnfProfileId": { + "type": "string" + }, + "locationConstraints": { + "type": "object", + "properties": { + "vimid": { + "type": "string" + } + } + } + } + }, + "NsScaleRequest": { + "type": "object", + "properties": { + "scaleType": { + "type": "string" + }, + "scaleNsByStepsData": { + "$ref": "#/definitions/NsScaleByStepsData" + } + } + }, + "NsScaleByStepsData": { + "type": "object", + "properties": { + "scalingDirection": { + "type": "string" + }, + "aspectId": { + "type": "string" + }, + "numberOfSteps": { + "type": "integer" + } + } + }, + "NsHealRequest": { + "type": "object", + "properties": { + "vnfInstanceId": { + "type": "string" + }, + "cause": { + "type": "string" + }, + "additionalParams": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "actionvminfo": { + "type": "object", + "properties": { + "vmid": { + "type": "string" + }, + "vmname": { + "type": "string" + } + } + } + } + } + } + }, + "NsTerminateRequest": { + "type": "object", + "properties": { + "terminationType": { + "type": "string" + }, + "gracefulTerminationTimeout": { + "type": "string" + } + } + }, + "JobInfo": { + "type": "object", + "properties": { + "jobId": { + "type": "string" + } + } + }, + "JobProgressRequest": { + "type": "object", + "properties": { + "progress": { + "type": "string" + }, + "desc": { + "type": "string" + }, + "errcode": { + "type": "string" + } + } + }, + "NsInfo": { + "type": "object", + "properties": { + "nsInstanceId": { + "type": "string" + }, + "nsName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "nsdId": { + "type": "string" + }, + "vnfInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/vnfInfo" + } + }, + "vlInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/vlInfo" + } + }, + "vnffgInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/vnffgInfo" + } + }, + "nsState": { + "type": "string" + } + } + }, + "vnfInfo": { + "type": "object", + "properties": { + "vnfInstanceId": { + "type": "string" + }, + "vnfInstanceName": { + "type": "string" + }, + "vnfdId": { + "type": "string" + } + } + }, + "vlInfo": { + "type": "object", + "properties": { + "vlInstanceId": { + "type": "string" + }, + "vlInstanceName": { + "type": "string" + }, + "vldId": { + "type": "string" + }, + "relatedCpInstanceId": { + "type": "array", + "items": { + "$ref": "#/definitions/cpInfo" + } + } + } + }, + "cpInfo": { + "type": "object", + "properties": { + "cpInstanceId": { + "type": "string" + }, + "cpInstanceName": { + "type": "string" + }, + "cpdId": { + "type": "string" + } + } + }, + "vnffgInfo": { + "type": "object", + "properties": { + "vnffgInstanceId": { + "type": "string" + }, + "vnfId": { + "type": "string" + }, + "pnfId": { + "type": "string" + }, + "virtualLinkId": { + "type": "string" + }, + "cpId": { + "type": "string" + }, + "nfp": { + "type": "string" + } + } + } + } + } \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..c8ea0959 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,7 @@ +NSLCM API +--------- + +.. toctree:: + :titlesonly: + + NSLCM_API_Specification_v0.1 \ No newline at end of file -- 2.16.6