From d6a93c8116a8c2ce7cb96896d9745406bfa2a5ec Mon Sep 17 00:00:00 2001 From: Rich Bennett Date: Fri, 3 Aug 2018 14:20:10 -0400 Subject: Eliminate appx 350 Sphinx Warnings Rename NSLCM_API as json file and use swaggerv2doc to display json swagger definition Remove extra characters at the end of line reported by doc8 Use code-blocks to better highlight json objects and eliminate warnings Remove duplicate offeredapis content Change-Id: Iec699b8f7d4f4be5b9783b3c40f24c8c4a279d7b Issue-ID: VFC-919 Signed-off-by: Rich Bennett --- .../NSLCM_API/NSLCM_API_Specification_v0.1.json | 646 ++++++++ .../NSLCM_API/NSLCM_API_Specification_v0.1.rst | 651 -------- docs/platform/APIs/NSLCM_API/index.rst | 13 +- .../APIs/VNFMDriver_API/VNFM_Driver_API.rst | 1740 ++++++++++---------- docs/platform/offeredapis.rst | 43 - 5 files changed, 1524 insertions(+), 1569 deletions(-) create mode 100644 docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.json delete mode 100644 docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst delete mode 100644 docs/platform/offeredapis.rst (limited to 'docs/platform') diff --git a/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.json b/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.json new file mode 100644 index 00000000..04a18b37 --- /dev/null +++ b/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.json @@ -0,0 +1,646 @@ +{ + "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" + } + }, + "404": { + "description": "URL not found" + } + } + }, + "get": { + "tags": [ + "ns" + ], + "summary": "ns get", + "description": "ns get", + "operationId": "ns_instantces_get", + "parameters": [ + { + "required": true, + "type": "string", + "description": "job response message id", + "name": "csarId", + "in": "query" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NsInstancesInfo" + } + }, + "404": { + "description": "URL not found" + } + } + } + }, + "/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" + }, + "404": { + "description": "URL not found" + } + } + } + }, + "/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" + }, + "404": { + "description": "URL not found" + } + } + } + }, + "/ns/{nsInstanceId}/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": "nsInstanceId", + "in": "path" + }, + { + "in": "body", + "name": "healVnfData", + "description": "healVnfData", + "required": true, + "schema": { + "$ref": "#/definitions/NsHealRequest" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "$ref": "#/definitions/JobInfo" + } + }, + "404": { + "description": "URL not found" + }, + "500": { + "description": "the url is invalid" + } + } + } + }, + "/ns/{nsInstanceId}/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": "nsInstanceId", + "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/{nsInstanceId}": { + "get": { + "tags": [ + "ns" + ], + "summary": "ns get", + "description": "ns get", + "operationId": "ns_instance_get", + "parameters": [ + { + "required": true, + "type": "string", + "description": "Identifier of the NS instance.", + "name": "nsInstanceId", + "in": "path" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NsInstanceInfo" + } + } + } + }, + "delete": { + "tags": [ + "ns" + ], + "summary": "ns delete", + "description": "ns delete", + "operationId": "ns_delete", + "parameters": [ + { + "required": true, + "type": "string", + "description": "Identifier of the NS instance.", + "name": "nsInstanceId", + "in": "path" + } + ], + "responses": { + "204": { + "description": "The NS instance resource and the associated NS identifier were deleted successfully." + } + } + } + }, + "/jobs/{jobId}": { + "get": { + "tags": [ + "job" + ], + "summary": "jobstatus", + "description": "", + "operationId": "get_jobstatus", + "parameters": [ + { + "required": true, + "type": "string", + "description": "job Id", + "name": "jobId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "job response message id", + "name": "responseId", + "in": "query" + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "$ref": "#/definitions/JobDetailInfo" + } + } + } + } + } + }, + "definitions": { + "NsCreateRequest": { + "type": "object", + "properties": { + "context":{ + "type": "object", + "properties": { + "globalCustomerId":{ + "type": "string", + "description": "the global customer id" + }, + "serviceType":{ + "type": "string", + "description": "service type" + } + } + }, + "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" + } + } + }, + "NsInstancesInfo":{ + "type": "array", + "items": { + "$ref": "#/definitions/NsInstanceInfo" + } + }, + "NsInstanceInfo": { + "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" + } + } + }, + "jobResponseInfo": { + "type": "object", + "properties": { + "status": { + "type": "string" + }, + "progress":{ + "type": "string" + }, + "statusDescription": { + "type": "string" + }, + "errorCode": { + "type": "string" + }, + "responseId": { + "type": "string" + } + } + }, + "JobDetailInfo":{ + "type": "object", + "properties": { + "jobId": { + "type": "string" + }, + "responseDescriptor": + { + "type":"object", + "properties": { + "status": { + "type": "string" + }, + "progress":{ + "type": "string" + }, + "statusDescription": { + "type": "string" + }, + "errorCode": { + "type": "string" + }, + "responseId": { + "type": "string" + }, + "responseHistoryList": { + "type": "array", + "items": { + "$ref": "#/definitions/jobResponseInfo" + } + } + } + } + } + } + } +} diff --git a/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst b/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst deleted file mode 100644 index 6ed6196a..00000000 --- a/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst +++ /dev/null @@ -1,651 +0,0 @@ - - -Network services lifecycle management northbound APIs -===================================================== - -{ - "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" - } - }, - "404": { - "description": "URL not found" - } - } - }, - "get": { - "tags": [ - "ns" - ], - "summary": "ns get", - "description": "ns get", - "operationId": "ns_instantces_get", - "parameters": [ - { - "required": true, - "type": "string", - "description": "job response message id", - "name": "csarId", - "in": "query" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "$ref": "#/definitions/NsInstancesInfo" - } - }, - "404": { - "description": "URL not found" - } - } - } - }, - "/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" - }, - "404": { - "description": "URL not found" - } - } - } - }, - "/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" - }, - "404": { - "description": "URL not found" - } - } - } - }, - "/ns/{nsInstanceId}/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": "nsInstanceId", - "in": "path" - }, - { - "in": "body", - "name": "healVnfData", - "description": "healVnfData", - "required": true, - "schema": { - "$ref": "#/definitions/NsHealRequest" - } - } - ], - "responses": { - "202": { - "description": "", - "schema": { - "$ref": "#/definitions/JobInfo" - } - }, - "404": { - "description": "URL not found" - }, - "500": { - "description": "the url is invalid" - } - } - } - }, - "/ns/{nsInstanceId}/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": "nsInstanceId", - "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/{nsInstanceId}": { - "get": { - "tags": [ - "ns" - ], - "summary": "ns get", - "description": "ns get", - "operationId": "ns_instance_get", - "parameters": [ - { - "required": true, - "type": "string", - "description": "Identifier of the NS instance.", - "name": "nsInstanceId", - "in": "path" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "$ref": "#/definitions/NsInstanceInfo" - } - } - } - }, - "delete": { - "tags": [ - "ns" - ], - "summary": "ns delete", - "description": "ns delete", - "operationId": "ns_delete", - "parameters": [ - { - "required": true, - "type": "string", - "description": "Identifier of the NS instance.", - "name": "nsInstanceId", - "in": "path" - } - ], - "responses": { - "204": { - "description": "The NS instance resource and the associated NS identifier were deleted successfully." - } - } - } - }, - "/jobs/{jobId}": { - "get": { - "tags": [ - "job" - ], - "summary": "jobstatus", - "description": "", - "operationId": "get_jobstatus", - "parameters": [ - { - "required": true, - "type": "string", - "description": "job Id", - "name": "jobId", - "in": "path" - }, - { - "required": true, - "type": "string", - "description": "job response message id", - "name": "responseId", - "in": "query" - } - ], - "responses": { - "202": { - "description": "", - "schema": { - "$ref": "#/definitions/JobDetailInfo" - } - } - } - } - } - }, - "definitions": { - "NsCreateRequest": { - "type": "object", - "properties": { - "context":{ - "type": "object", - "properties": { - "globalCustomerId":{ - "type": "string", - "description": "the global customer id" - }, - "serviceType":{ - "type": "string", - "description": "service type" - } - } - }, - "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" - } - } - }, - "NsInstancesInfo":{ - "type": "array", - "items": { - "$ref": "#/definitions/NsInstanceInfo" - } - }, - "NsInstanceInfo": { - "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" - } - } - }, - "jobResponseInfo": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "progress":{ - "type": "string" - }, - "statusDescription": { - "type": "string" - }, - "errorCode": { - "type": "string" - }, - "responseId": { - "type": "string" - } - } - }, - "JobDetailInfo":{ - "type": "object", - "properties": { - "jobId": { - "type": "string" - }, - "responseDescriptor": - { - "type":"object", - "properties": { - "status": { - "type": "string" - }, - "progress":{ - "type": "string" - }, - "statusDescription": { - "type": "string" - }, - "errorCode": { - "type": "string" - }, - "responseId": { - "type": "string" - }, - "responseHistoryList": { - "type": "array", - "items": { - "$ref": "#/definitions/jobResponseInfo" - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/docs/platform/APIs/NSLCM_API/index.rst b/docs/platform/APIs/NSLCM_API/index.rst index ffbf0756..686ddb93 100644 --- a/docs/platform/APIs/NSLCM_API/index.rst +++ b/docs/platform/APIs/NSLCM_API/index.rst @@ -1,7 +1,6 @@ -NSLCM API ---------- - -.. toctree:: - :titlesonly: - -.. literalinclude:: NSLCM_API_Specification_v0.1.rst \ No newline at end of file +.. This work is licensed under a Creative Commons Attribution 4.0 +.. International License. http://creativecommons.org/licenses/by/4.0 + +NSLCM API +--------- +.. swaggerv2doc:: NSLCM_API_Specification_v0.1.json diff --git a/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst b/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst index a88e29e0..d51f10c9 100644 --- a/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst +++ b/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst @@ -1,868 +1,872 @@ -.. contents:: - :depth: 3 -.. - -**VNFM Driver API** -**V0.1** - -**1. Scope** -============== -The scope of the present document is to describe the VNFM driver integrated related API specification. -Some content has been updated, about the API Swagger definition, you can find here 'VNFM driver development related API' - - -**2. Terms, Definitions and Abbreviations** -============================================= - -For the purposes of the present document, the following abbreviations apply: - -+-------------+-----------------------------------------------+ -|Abbreviation | | -+-------------+-----------------------------------------------+ -|NFVO |Network Functions Virtualization Orchestrator | -+-------------+-----------------------------------------------+ -|VNFM |Virtual Network Function Manager | -+-------------+-----------------------------------------------+ -|VNF |Virtual Network Function | -+-------------+-----------------------------------------------+ - -Table 2-1 abbreviations - - -**3. Interfaces provided by VNFM Driver** -=========================================== - -Interfaces use RESTful API and the format is as follows: -http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……] -R1 vnfmtype: -zte-vnfm -hw-vnfm -juju - -**3.1 Instantiate VNF** ------------------------- - -+--------------+--------------------------------------------------------------+ -|If Definition | Description | -+==============+==============================================================+ -|URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs | -+--------------+--------------------------------------------------------------+ -|Operation | POST | -+--------------+--------------------------------------------------------------+ -|Direction | NSLCM->VNFMDriver | -+--------------+--------------------------------------------------------------+ - -**3.1.1 Request** - -+-----------------------+------------+-------------+----------+------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+=======================+============+=============+==========+==============================+ -| vnfInstanceName | M | 1 | String | Human-readable name of the | -| | | | | VNF instance to be created. | -+-----------------------+------------+-------------+----------+------------------------------+ -| vnfPackageId | M | 1 | String | VNF packageId | -+-----------------------+------------+-------------+----------+------------------------------+ -| vnfDescriptorId | M | 1 | String | Information sufficient to | -| | | | | identify the VNF Descriptor | -| | | | | which defines the VNF to | -| | | | | be created. | -+-----------------------+------------+-------------+----------+------------------------------+ -| flavourId | M | 0..1 | String | Reserved | -+-----------------------+------------+-------------+----------+------------------------------+ -|vnfInstanceDescription | M | 0..1 | String | Human-readable | -| | | | | description of the VNF | -| | | | | instance to be created. | -+-----------------------+------------+-------------+----------+------------------------------+ -| extVirtualLink | M | 0..N | Ext | References to external | -| | | | Virtual | virtual links to connect the | -| | | | LinkData | VNF to. | -+-----------------------+------------+-------------+----------+------------------------------+ -| additionalParam | M | 0..N | Object |Additional parameters | -| | | | |passed by the NFVO as | -| | | | |input to the instantiation | -| | | | |process, specific to the | -| | | | |VNF being instantiated. | -+-----------------------+------------+-------------+----------+------------------------------+ - -**ExtVirtualLinkData:** - -+--------------+------------+-------------+----------+----------------------------------------+ -| Attribute | Qualifier | Cardinality | Content | Description | -+==============+============+=============+==========+========================================+ -| vlInstanceId | M | 0..1 | String | Identifier of the VL instance | -+--------------+------------+-------------+----------+----------------------------------------+ -| vim | CM | 0..1 | VimInfo | Information about the VIM that | -| | | | | manages this resource. | -| | | | | This attribute shall be supported | -| | | | | and present if VNF-related resource | -| | | | | management in direct applicable. | -+--------------+------------+-------------+----------+----------------------------------------+ -| networkId | M | 1 | String | The network UUID of VIM | -+--------------+------------+-------------+----------+----------------------------------------+ -| cpdId | M | 0..1 | String | Identifier of the external CPD in VNFD | -+--------------+------------+-------------+----------+----------------------------------------+ - -**VimInfo:** - -+------------------+------------+-------------+--------------+------------------------------------------------+ -| Attribute | Qualifier | Cardinality | Content | Description | -+==================+============+=============+==============+================================================+ -| vimInfoId | M | 1 | Identifier | The identifier of this VimInfo instance, | -| | | | | for the purpose of referencing it from | -| | | | | other information elements. | -+------------------+------------+-------------+--------------+------------------------------------------------+ -| vimId | M | 1 | Identifier | The identifier of the VIM. | -+------------------+------------+-------------+--------------+------------------------------------------------+ -| interfaceInfo | M | 0..N | KeyValuePair | Information about the interface to the | -| | | | | VIM, including VIM provider type, API | -| | | | | version, and protocol type. | -+------------------+------------+-------------+--------------+------------------------------------------------+ -| accessInfo | M | 0..N | KeyValuePair | Authentication credentials for accessing the | -| | | | | VIM. Examples may include those to support | -| | | | | different authentication schemes, e.g., OAuth, | -| | | | | Token, etc. | -+------------------+------------+-------------+--------------+------------------------------------------------+ -|interfaceEndpoint | M | 1 | String | Information about the interface endpoint. An | -| | | | | example is a URL. | -+------------------+------------+-------------+--------------+------------------------------------------------+ - - -**interfaceInfo:** - -+--------------+------------+-------------+----------+-------------------------------+ -| Attribute | Qualifier | Cardinality | Content | Description | -+==============+============+=============+==========+===============================+ -| vimType | M | 1 | String | Type of the VIM | -+--------------+------------+-------------+----------+-------------------------------+ -| apiVersion | M | 1 | String | | -+--------------+------------+-------------+----------+-------------------------------+ -| protocolType | M | 1 | String | http, https | -+--------------+------------+-------------+----------+-------------------------------+ - - -**accessInfo:** - -+--------------+------------+-------------+----------+-------------------------------+ -| Attribute | Qualifier | Cardinality | Content | Description | -+==============+============+=============+==========+===============================+ -| tenant | M | 1 | String | Tenant Name of tenant | -+--------------+------------+-------------+----------+-------------------------------+ -| username | M | 1 | String | Username for login | -+--------------+------------+-------------+----------+-------------------------------+ -| password | M | 1 | String | Password of login user | -+--------------+------------+-------------+----------+-------------------------------+ - -{ - "vnfInstanceName":"vFW", - "vnfPackageId":"1", - "vnfDescriptorId":"1", - "vnfInstanceDescription":"vFW_1", - "extVirtualLinkLink":[ - - { - "vlInstanceId":"1", - "resourceId":"1246" , - " cpdId":"11111", - "vim": - { - - "vimInfoId":"1", - "vimid":"1", - "interfaceInfo":{ - - "vimType":"openstack", - "apiVersion":"v2", - "protocolType":"http" - - } - "accessInfo":{ - - "tenant":"tenant_vCPE", - "username":"vCPE", - "password":"vCPE_321" - - } - "interfaceEndpoint":"http://10.43.21.105:80/" - - } - - } - - ] - "additionalParam":{ - - …… - } - -} - - -**3.1.2 Response** - -+-------------------+------------+-------------+-----------+-------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+===================+============+=============+===========+===============================+ -| jobId | M | 1 | Identifier| Tenant Name of tenant | -| | | | | operation occurrence. | -| | | | | | -| | | | | [lifecycleOperationOccurren | -| | | | | ceId] | -+-------------------+------------+-------------+-----------+-------------------------------+ -| vnfInstanceId | M | 1 | String | VNF instance identifier. | -+-------------------+------------+-------------+-----------+-------------------------------+ - -{ - "jobId":"1", - "vnfInstanceId":"1" - -} - -**3.2 Terminate VNF** ------------------------ - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ | -| | {vnfInstanceId}/terminate | -+---------------+------------------------------------------------------------------+ -| Operation | POST | -+---------------+------------------------------------------------------------------+ -| Direction | NSLCM->VNFMDriver | -+---------------+------------------------------------------------------------------+ - -**3.2.1 Request** - -+-----------------+------------+-------------+-----------+----------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+=================+============+=============+===========+==================================+ -| terminationType | M | 1 | Enum | Signals whether forceful or | -| | | | | graceful termination is | -| | | | | requested. | -| | | | | In case of forceful termination, | -| | | | | the VNF is shut down | -| | | | | immediately, and resources are | -| | | | | released. Note that if the VNF | -| | | | | is still in service, this may | -| | | | | adversely impact network | -| | | | | service, and therefore, operator | -| | | | | policies apply to determine if | -| | | | | forceful termination is allowed | -| | | | | in the particular situation. | -| | | | | | -| | | | | In case of graceful termination, | -| | | | | the VNFM first arranges to take | -| | | | | the VNF out of service (by | -| | | | | means out of scope of the | -| | | | | present specification, e.g. | -| | | | | involving interaction with EM, | -| | | | | if required). Once this was | -| | | | | successful, or after a timeout, | -| | | | | the VNFM shuts down the VNF | -| | | | | and releases the resources. | -+-----------------+------------+-------------+-----------+----------------------------------+ -| graceful | M | 0..1 | Time | The time interval (second) to | -| Termination | | | Duration | wait for the VNF to be taken out | -| Timeout | | | | of service during graceful | -| | | | | termination, before shutting | -| | | | | down the VNF and releasing the | -| | | | | resources. | -| | | | | If not given, it is expected | -| | | | | that the VNFM waits for the | -| | | | | successful taking out of service | -| | | | | of the VNF, no matter how long | -| | | | | it takes, before shutting down | -| | | | | the VNF and releasing the | -| | | | | resources (see note). | -| | | | | | -| | | | | Minimum timeout or timeout | -| | | | | range are specified by the VNF | -| | | | | Provider (e.g. defined in the | -| | | | | VNFD or communicated by | -| | | | | other means). | -| | | | | | -| | | | | Not relevant in case of forceful | -| | | | | termination. | -+-----------------+------------+-------------+-----------+----------------------------------+ - -{ - "vnfInstanceId":"1", - "terminationType":"graceful", - "gracefulTerminationTimeout":"60" - -} - -**3.2.2 Response** - -+--------------+------------+-------------+-----------+--------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+==============+============+=============+===========+================================+ -| jobId | M | 1 | Identifier| Identifier of the VNF lifecycle| -| | | | | operation occurrence. | -| | | | | | -| | | | | [lifecycleOperationOccurren | -| | | | | ceId] | -+--------------+------------+-------------+-----------+--------------------------------+ - -{ - "jobId":"1" - -} - - -**3.3 Query VNF** ------------------- - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ | -| | {vnfInstanceId} | -+---------------+------------------------------------------------------------------+ -| Operation | GET | -+---------------+------------------------------------------------------------------+ -| Direction | NSLCM->VNFMDriver | -+---------------+------------------------------------------------------------------+ - -**3.3.1 Request** - -VNF filter: vnfInstanceId via url [R1] - -**3.3.2 Response** - -+--------------+------------+-------------+-----------+---------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+==============+============+=============+===========+=================================+ -| vnfInfo | M | o..N | vnfInfo | The information items about the | -| | | | | selected VNF instance(s) that | -| | | | | are returned. | -| | | | | | -| | | | | If attributeSelector is present,| -| | | | | only the attributes listed in | -| | | | | attributeSelector will be | -| | | | | returned for the selected | -| | | | | VNF instance(s). | -+--------------+------------+-------------+-----------+---------------------------------+ - -**VnfInfo Table** - -+-----------------+------------+-------------+----------+---------------------------------+ -| Attribute | Qualifier | Cardinality | Content | Description | -+=================+============+=============+==========+=================================+ -| vnfInstanceId | M | 1 | String | VNF instance identifier. | -+-----------------+------------+-------------+----------+---------------------------------+ -| vnfInstanceName | M | o..1 | String | VNF instance name. | -+-----------------+------------+-------------+----------+---------------------------------+ -| vnfInstance | M | o..1 | String | Human-readable description of | -| Description | | | | the VNF instance. | -+-----------------+------------+-------------+----------+---------------------------------+ -| vnfdId | M | 1 | String | Identifier of the VNFD on which | -| | | | | the VNF instance is based. | -+-----------------+------------+-------------+----------+---------------------------------+ -| vnfPackageId | M | o..1 | String | Identifier of the VNF Package | -| | | | | used to manage the lifecycle of | -| | | | | the VNF instance. See note. | -| | | | | Shall be present for an | -| | | | | instantiated VNF instance. | -+-----------------+------------+-------------+----------+---------------------------------+ -| version | M | 1 | String | Version of the VNF. | -+-----------------+------------+-------------+----------+---------------------------------+ -| vnfProvider | M | 1 | String | Name of the person or company | -| | | | | providing the VNF. | -+-----------------+------------+-------------+----------+---------------------------------+ -| vnfType | M | 1 | String | VNF Application Type | -+-----------------+------------+-------------+----------+---------------------------------+ -| vnfStatus | M | 1 | Enum | The instantiation state of the | -| | | | | VNF. Possible values: | -| | | | | INACTIVE (Vnf is terminated or | -| | | | | not instantiated ), | -| | | | | ACTIVE (Vnf is instantiated). | -| | | | | [instantiationState] | -+-----------------+------------+-------------+----------+---------------------------------+ - -{ - "vnfInfo": - { - - "nfInstanceId":"1", - "vnfInstanceName":"vFW", - "vnfInstanceDescription":"vFW in Nanjing TIC Edge", - "vnfdId":"1", - "vnfPackageId":"1", - "version":"V1.1", - "vnfProvider":"ZTE", - "vnfType":"vFW", - "vnfStatus":" ACTIVE", - - } - -} - -**3.4 Get operation status** ------------------------------ - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/{vnfmtype} | -| | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId } | -+---------------+------------------------------------------------------------------+ -| Operation | GET | -+---------------+------------------------------------------------------------------+ -| Direction | NSLCM->VNFMDriver | -+---------------+------------------------------------------------------------------+ - -**3.4.1 Request** - - None - -**3.4.2 Response** - -+--------------------+------------+-------------+-------------+---------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+====================+============+=============+=============+=================================+ -| jobId | M | 1 | String | Job ID | -+--------------------+------------+-------------+-------------+---------------------------------+ -| responseDescriptor | M | 1 | - | Including: | -| | | | | vnfStatus, statusDescription, | -| | | | | errorCode,progress, | -| | | | | responseHistoryList, responseId | -+--------------------+------------+-------------+-------------+---------------------------------+ -| status | M | 1 | String | JOB status | -| | | | | started | -| | | | | processing | -| | | | | finished | -| | | | | error | -+--------------------+------------+-------------+-------------+---------------------------------+ -| progress | M | 1 | Integer | progress (1-100) | -+--------------------+------------+-------------+-------------+---------------------------------+ -| statusDescription | M | 1 | String | Progress Description | -+--------------------+------------+-------------+-------------+---------------------------------+ -| errorCode | M | 1 | Integer | Errorcode | -+--------------------+------------+-------------+-------------+---------------------------------+ -| responseId | M | 1 | Integer | Response Identifier | -+--------------------+------------+-------------+-------------+---------------------------------+ -| response | M | o..N | ArrayList<> | History Response Messages | -| HistoryList | | | | from the requested | -| | | | | responseId to lastest one. | -| | | | | Including fields: | -| | | | | vnfStatus, | -| | | | | statusDescription, | -| | | | | errorCode, | -| | | | | progress, | -| | | | | responseId | -+--------------------+------------+-------------+-------------+---------------------------------+ - -{ - "jobId" : "1234566", - "responseDescriptor" : { - - "progress" : "40", - "status" : "proccessing", - "statusDescription" : "OMC VMs are decommissioned in VIM", - "errorCode" : null, - "responseId" : "42", - "responseHistoryList" : [{ - - "progress" : "40", - "status" : "proccessing", - "statusDescription" : "OMC VMs are decommissioned in VIM", - "errorCode" : null, - "responseId" : "1" - - }, { - "progress" : "41", - "status" : "proccessing", - "statusDescription" : "OMC VMs are decommissioned in VIM", - "errorCode" : null, - "responseId" : "2" - - } - - ] - - } - -} - -**3.5 Scale VNF** ------------------- - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ | -| | {vnfInstanceId}/scale | -+---------------+------------------------------------------------------------------+ -| Operation | POST | -+---------------+------------------------------------------------------------------+ -| Direction | NSLCM->VNFMDriver | -+---------------+------------------------------------------------------------------+ - -**3.5.1 Request** - - -+---------------+------------+-------------+-------------+---------------------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+===============+============+=============+=============+=============================================+ -| type | M | 1 | Enum | Defines the type of the scale operation | -| | | | | requested (scale out, scale in). The set of | -| | | | | types actually supported depends on the | -| | | | | capabilities of the VNF being managed, as | -| | | | | declared in the VNFD. See note 1. | -+---------------+------------+-------------+-------------+---------------------------------------------+ -| aspectId | M | 1 | Identifier | Identifies the aspect of the VNF that is | -| | | | | requested to be scaled | -+---------------+------------+-------------+-------------+---------------------------------------------+ -| numberOfSteps | M | 1 | Integer | Number of scaling steps to be executed as | -| | | | | part of this ScaleVnf operation. It shall | -| | | | | be a positive number. | -| | | | | Defaults to 1. | -| | | | | The VNF Provider defines in the VNFD | -| | | | | whether or not a particular VNF supports | -| | | | | performing more than one step at a time. | -| | | | | Such a property in the VNFD applies for all | -+---------------+------------+-------------+-------------+---------------------------------------------+ -| additional | M | 1 |KeyValuePair | Additional parameters passed by the NFVO | -| Param | | | | as input to the scaling proccess, specific | -| | | | | to the VNF being scaled. | -| | | | | Reserved | -+---------------+------------+-------------+-------------+---------------------------------------------+ -| NOTE 1: ETSI GS NFV-IFA 010 [2] specifies that the lifecycle management operations that expand | -| or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical | -| scaling (scale up, scale down) is not supported in the present document. | -| SCALE_IN designates scaling in. | -| SCALE_OUT 1 designates scaling out. | -| NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling | -| aspect. | -+------------------------------------------------------------------------------------------------------+ - -{ - "vnfInstanceId":"5", - "type":" SCALE_OUT", - "aspectId":"101", - "numberOfSteps":"1", - "additionalParam":{ - - …… - - } - -} - -**3.5.2 Response** - -+--------------------+------------+-------------+-------------+---------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+====================+============+=============+=============+=================================+ -| jobId | M | 1 | String | The identifier of the VNF | -| | | | | lifecycle operation occurrence. | -+--------------------+------------+-------------+-------------+---------------------------------+ - -{ - "jobId":"1" - -} - -**3.6 Heal VNF** ------------------- - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs | -| | {vnfInstanceId}/heal | -+---------------+------------------------------------------------------------------+ -| Operation | POST | -+---------------+------------------------------------------------------------------+ -| Direction | NSLCM->VNFMDriver | -+---------------+------------------------------------------------------------------+ - -**3.6.1 Request** - -+--------------------+------------+-------------+-------------+---------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+====================+============+=============+=============+=================================+ -| action | M | 1 | String | Indicates the action to be done | -| | | | | upon the given virtual machine. | -| | | | | Only "vmReset" is supported | -| | | | | currently. | -+--------------------+------------+-------------+-------------+---------------------------------+ -| affectedvm | M | 1 | AffectedVm | Defines the information of | -| | | | | virtual machines. | -+--------------------+------------+-------------+-------------+---------------------------------+ - -**AffectedVm** - -+--------------------+------------+-------------+-------------+---------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+====================+============+=============+=============+=================================+ -| vimid | M | 1 | String | Defines the UUID of virtual | -| | | | | machine. | -+--------------------+------------+-------------+-------------+---------------------------------+ -| vduid | M | 1 | String | Defines the id of vdu. | -+--------------------+------------+-------------+-------------+---------------------------------+ -| vmname | M | 1 | | Defines the name of virtual | -| | | | | machines. | -+--------------------+------------+-------------+-------------+---------------------------------+ - -{ - "action": "vmReset", - "affectedvm": - { - - "vmid": "804cca71-9ae9-4511-8e30-d1387718caff", - "vduid": "vdu_100", - "vmname": "ZTE_SSS_111_PP_2_L" - - } - -} - -**3.6.2 Response** - -+--------------------+------------+-------------+-------------+---------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+====================+============+=============+=============+=================================+ -| jobId | M | 1 | Identifier | The identifier of the VNF | -| | | | | healing operation occurrence. | -+--------------------+------------+-------------+-------------+---------------------------------+ - -{ - "jobId":"1" - -} - - -**4. Interfaces provided by VFC to integrate with VNFM driver** -=========================================== - - -**4.1 VNF Lifecycle Operation Granting Interface** ------------------------- - - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/nslcm/v1/ns/grantvnf | -+---------------+------------------------------------------------------------------+ -| Operation | POST | -+---------------+------------------------------------------------------------------+ -| Direction | VNFMDriver -> NSLCM | -+---------------+------------------------------------------------------------------+ - -**4.1.1 Request** - - -{ - "vnfInstanceId": "string", - "vnfDescriptorId": "string", - "lifecycleOperation": "Terminal", - "jobId": "string", - "addResource": [ - { - "type": "string", - "resourceDefinitionId": "string", - "vdu": "string" - } - ], - "removeResource": [ - { - "type": "string", - "resourceDefinitionId": "string", - "vdu": "string" - } - ], - "additionalParam": {} -} - -**4.1.2 Response** - -{ - "vim": { - "vimInfoId": "string", - "vimId": "string", - "interfaceInfo": { - "vimType": "string", - "apiVersion": "string", - "protocolType": "string" - }, - "accessInfo": { - "tenant": "string", - "username": "string", - "password": "string" - }, - "interfaceEndpoint": "string" - } -} - -**4.2 VNF LCM Notification Interface** ------------------------- - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/nslcm/v1/ns/{vnfmid}/vnfs/ | -| | {vnfInstanceId}/Notify | -+---------------+------------------------------------------------------------------+ -| Operation | POST | -+---------------+------------------------------------------------------------------+ -| Direction | VNFMDriver -> NSLCM | -+---------------+------------------------------------------------------------------+ - -**4.2.1 Request** - -{ - "status": "result", - "vnfInstanceId": "string", - "operation": "Terminal", - "jobId": "string", - "affectedVnfc": [ - { - "vnfcInstanceId": "string", - "vduId": "string", - "changeType": "added", - "vimid": "string", - "vmid": "string", - "vmname": "string" - } - ], - "affectedCp": [ - { - "virtualLinkInstanceId": "string", - "cpinstanceid": "string", - "cpdid": "string", - "ownerType": "string", - "ownerId": "string", - "changeType": "added", - "portResource": { - "vimid": "string", - "resourceid": "string", - "resourceName": "string", - "tenant": "string", - "ipAddress": "string", - "macAddress": "string", - "instId": "string" - } - } - ], - "affectedVl": [ - { - "vlInstanceId": "string", - "vldid": "string", - "changeType": "added", - "networkResource": { - "resourceType": "network", - "resourceId": "string" - } - } - ], - "affectedVirtualStorage": [ - {} - ] -} - -**4.2.2 Response** - -N/A - - -**4.3 Query VNFM Register Info Interface** ------------------------- - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/nslcm/v1/vnfms/{vnfmid} | -+---------------+------------------------------------------------------------------+ -| Operation | GET | -+---------------+------------------------------------------------------------------+ -| Direction | VNFMDriver -> NSLCM | -+---------------+------------------------------------------------------------------+ - -**4.3.1 Request** -N/A - -**4.3.2 Response** -{ - "vnfmId": "string", - "name": "string", - "type": "string", - "url": "string", - "userName": "string", - "password": "string", - "vimId": "string", - "vendor": "string", - "version": "string", - "description": "string", - "certificateUrl": "string", - "createTime": "string" -} - - -**4.4 Query VIM Register Info Interface** ------------------------- - -+---------------+------------------------------------------------------------------+ -| IF Definition | Description | -+===============+==================================================================+ -| URI | http(s)://[hostname][:port]/api/nslcm/v1/vims/{vimid} | -+---------------+------------------------------------------------------------------+ -| Operation | GET | -+---------------+------------------------------------------------------------------+ -| Direction | VNFMDriver -> NSLCM | -+---------------+------------------------------------------------------------------+ - -**4.4.1 Request** -N/A - -**4.4.2 Response** - -+--------------------+------------+-------------+-------------+---------------------------------+ -| Parameter | Qualifier | Cardinality | Content | Description | -+====================+============+=============+=============+=================================+ -| vimId | M | 1 | string | The identifier of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| name | M | 1 | string | The name of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| type | M | 1 | string | The type of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| url | M | 1 | string | The access URL of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| userName | M | 1 | string | The user name of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| password | M | 1 | string | The password of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| vendor | M | 1 | string | The vendor of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| version | M | 1 | version | The version of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| description | O | 1 | description | The description of the VIM | -+--------------------+------------+-------------+-------------+---------------------------------+ -| sslCacert | O | 1 | Identifier | The collection of trusted | -| | | | | certificates towards the VIM. | -+--------------------+------------+-------------+-------------+---------------------------------+ -| sslInsecure | O | 1 | Identifier | Whether to verify VIM's | -| | | | | certificate. | -+--------------------+------------+-------------+-------------+---------------------------------+ -| status | O | 1 | Identifier | The status of external system | -+--------------------+------------+-------------+-------------+---------------------------------+ - - -{ - "vimId": "string", - "name": "string", - "type": "string", - "url": "string", - "userName": "string", - "password": "string", - "vendor": "string", - "version": "string", - "description": "string", - "createTime": "string", - "sslCacert": "string", - "sslInsecure": "string", - "status": "string" -} - +.. contents:: + :depth: 3 +.. + +**VNFM Driver API** +**V0.1** + +**1. Scope** +============== +The scope of the present document is to describe the VNFM driver integrated related API specification. +Some content has been updated, about the API Swagger definition, you can find +here 'VNFM driver development related API' + + +**2. Terms, Definitions and Abbreviations** +============================================ + +For the purposes of the present document, the following abbreviations apply: + ++-------------+-----------------------------------------------+ +|Abbreviation | | ++-------------+-----------------------------------------------+ +|NFVO |Network Functions Virtualization Orchestrator | ++-------------+-----------------------------------------------+ +|VNFM |Virtual Network Function Manager | ++-------------+-----------------------------------------------+ +|VNF |Virtual Network Function | ++-------------+-----------------------------------------------+ + +Table 2-1 abbreviations + + +**3. Interfaces provided by VNFM Driver** +========================================== + +Interfaces use RESTful API and the format is as follows: +http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……] +R1 vnfmtype: +zte-vnfm +hw-vnfm +juju + +**3.1 Instantiate VNF** +------------------------ + ++--------------+--------------------------------------------------------------+ +|If Definition | Description | ++==============+==============================================================+ +|URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs | ++--------------+--------------------------------------------------------------+ +|Operation | POST | ++--------------+--------------------------------------------------------------+ +|Direction | NSLCM->VNFMDriver | ++--------------+--------------------------------------------------------------+ + +**3.1.1 Request** + ++-----------------------+------------+-------------+----------+------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=======================+============+=============+==========+==============================+ +| vnfInstanceName | M | 1 | String | Human-readable name of the | +| | | | | VNF instance to be created. | ++-----------------------+------------+-------------+----------+------------------------------+ +| vnfPackageId | M | 1 | String | VNF packageId | ++-----------------------+------------+-------------+----------+------------------------------+ +| vnfDescriptorId | M | 1 | String | Information sufficient to | +| | | | | identify the VNF Descriptor | +| | | | | which defines the VNF to | +| | | | | be created. | ++-----------------------+------------+-------------+----------+------------------------------+ +| flavourId | M | 0..1 | String | Reserved | ++-----------------------+------------+-------------+----------+------------------------------+ +|vnfInstanceDescription | M | 0..1 | String | Human-readable | +| | | | | description of the VNF | +| | | | | instance to be created. | ++-----------------------+------------+-------------+----------+------------------------------+ +| extVirtualLink | M | 0..N | Ext | References to external | +| | | | Virtual | virtual links to connect the | +| | | | LinkData | VNF to. | ++-----------------------+------------+-------------+----------+------------------------------+ +| additionalParam | M | 0..N | Object |Additional parameters | +| | | | |passed by the NFVO as | +| | | | |input to the instantiation | +| | | | |process, specific to the | +| | | | |VNF being instantiated. | ++-----------------------+------------+-------------+----------+------------------------------+ + +**ExtVirtualLinkData:** + ++--------------+------------+-------------+----------+----------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++==============+============+=============+==========+========================================+ +| vlInstanceId | M | 0..1 | String | Identifier of the VL instance | ++--------------+------------+-------------+----------+----------------------------------------+ +| vim | CM | 0..1 | VimInfo | Information about the VIM that | +| | | | | manages this resource. | +| | | | | This attribute shall be supported | +| | | | | and present if VNF-related resource | +| | | | | management in direct applicable. | ++--------------+------------+-------------+----------+----------------------------------------+ +| networkId | M | 1 | String | The network UUID of VIM | ++--------------+------------+-------------+----------+----------------------------------------+ +| cpdId | M | 0..1 | String | Identifier of the external CPD in VNFD | ++--------------+------------+-------------+----------+----------------------------------------+ + +**VimInfo:** + ++------------------+------------+-------------+--------------+------------------------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++==================+============+=============+==============+================================================+ +| vimInfoId | M | 1 | Identifier | The identifier of this VimInfo instance, | +| | | | | for the purpose of referencing it from | +| | | | | other information elements. | ++------------------+------------+-------------+--------------+------------------------------------------------+ +| vimId | M | 1 | Identifier | The identifier of the VIM. | ++------------------+------------+-------------+--------------+------------------------------------------------+ +| interfaceInfo | M | 0..N | KeyValuePair | Information about the interface to the | +| | | | | VIM, including VIM provider type, API | +| | | | | version, and protocol type. | ++------------------+------------+-------------+--------------+------------------------------------------------+ +| accessInfo | M | 0..N | KeyValuePair | Authentication credentials for accessing the | +| | | | | VIM. Examples may include those to support | +| | | | | different authentication schemes, e.g., OAuth, | +| | | | | Token, etc. | ++------------------+------------+-------------+--------------+------------------------------------------------+ +|interfaceEndpoint | M | 1 | String | Information about the interface endpoint. An | +| | | | | example is a URL. | ++------------------+------------+-------------+--------------+------------------------------------------------+ + + +**interfaceInfo:** + ++--------------+------------+-------------+----------+-------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++==============+============+=============+==========+===============================+ +| vimType | M | 1 | String | Type of the VIM | ++--------------+------------+-------------+----------+-------------------------------+ +| apiVersion | M | 1 | String | | ++--------------+------------+-------------+----------+-------------------------------+ +| protocolType | M | 1 | String | http, https | ++--------------+------------+-------------+----------+-------------------------------+ + + +**accessInfo:** + ++--------------+------------+-------------+----------+-------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++==============+============+=============+==========+===============================+ +| tenant | M | 1 | String | Tenant Name of tenant | ++--------------+------------+-------------+----------+-------------------------------+ +| username | M | 1 | String | Username for login | ++--------------+------------+-------------+----------+-------------------------------+ +| password | M | 1 | String | Password of login user | ++--------------+------------+-------------+----------+-------------------------------+ + +.. code-block:: none + + { + "vnfInstanceName":"vFW", + "vnfPackageId":"1", + "vnfDescriptorId":"1", + "vnfInstanceDescription":"vFW_1", + "extVirtualLinkLink":[ + { + "vlInstanceId":"1", + "resourceId":"1246" , + " cpdId":"11111", + "vim": + { + "vimInfoId":"1", + "vimid":"1", + "interfaceInfo":{ + "vimType":"openstack", + "apiVersion":"v2", + "protocolType":"http" + } + "accessInfo":{ + "tenant":"tenant_vCPE", + "username":"vCPE", + "password":"vCPE_321" + } + "interfaceEndpoint":"http://10.43.21.105:80/" + } + } + ] + "additionalParam":{ + + …… + } + + } + + +**3.1.2 Response** + ++-------------------+------------+-------------+-----------+-------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++===================+============+=============+===========+===============================+ +| jobId | M | 1 | Identifier| Tenant Name of tenant | +| | | | | operation occurrence. | +| | | | | | +| | | | | [lifecycleOperationOccurren | +| | | | | ceId] | ++-------------------+------------+-------------+-----------+-------------------------------+ +| vnfInstanceId | M | 1 | String | VNF instance identifier. | ++-------------------+------------+-------------+-----------+-------------------------------+ + +.. code-block:: json + + { + "jobId":"1", + "vnfInstanceId":"1" + } + +**3.2 Terminate VNF** +---------------------- + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ | +| | {vnfInstanceId}/terminate | ++---------------+------------------------------------------------------------------+ +| Operation | POST | ++---------------+------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++---------------+------------------------------------------------------------------+ + +**3.2.1 Request** + ++-----------------+------------+-------------+-----------+----------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++=================+============+=============+===========+==================================+ +| terminationType | M | 1 | Enum | Signals whether forceful or | +| | | | | graceful termination is | +| | | | | requested. | +| | | | | In case of forceful termination, | +| | | | | the VNF is shut down | +| | | | | immediately, and resources are | +| | | | | released. Note that if the VNF | +| | | | | is still in service, this may | +| | | | | adversely impact network | +| | | | | service, and therefore, operator | +| | | | | policies apply to determine if | +| | | | | forceful termination is allowed | +| | | | | in the particular situation. | +| | | | | | +| | | | | In case of graceful termination, | +| | | | | the VNFM first arranges to take | +| | | | | the VNF out of service (by | +| | | | | means out of scope of the | +| | | | | present specification, e.g. | +| | | | | involving interaction with EM, | +| | | | | if required). Once this was | +| | | | | successful, or after a timeout, | +| | | | | the VNFM shuts down the VNF | +| | | | | and releases the resources. | ++-----------------+------------+-------------+-----------+----------------------------------+ +| graceful | M | 0..1 | Time | The time interval (second) to | +| Termination | | | Duration | wait for the VNF to be taken out | +| Timeout | | | | of service during graceful | +| | | | | termination, before shutting | +| | | | | down the VNF and releasing the | +| | | | | resources. | +| | | | | If not given, it is expected | +| | | | | that the VNFM waits for the | +| | | | | successful taking out of service | +| | | | | of the VNF, no matter how long | +| | | | | it takes, before shutting down | +| | | | | the VNF and releasing the | +| | | | | resources (see note). | +| | | | | | +| | | | | Minimum timeout or timeout | +| | | | | range are specified by the VNF | +| | | | | Provider (e.g. defined in the | +| | | | | VNFD or communicated by | +| | | | | other means). | +| | | | | | +| | | | | Not relevant in case of forceful | +| | | | | termination. | ++-----------------+------------+-------------+-----------+----------------------------------+ + +.. code-block:: json + + { + "vnfInstanceId":"1", + "terminationType":"graceful", + "gracefulTerminationTimeout":"60" + } + +**3.2.2 Response** + ++--------------+------------+-------------+-----------+--------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++==============+============+=============+===========+================================+ +| jobId | M | 1 | Identifier| Identifier of the VNF lifecycle| +| | | | | operation occurrence. | +| | | | | | +| | | | | [lifecycleOperationOccurren | +| | | | | ceId] | ++--------------+------------+-------------+-----------+--------------------------------+ + +.. code-block:: json + + { + "jobId":"1" + } + + +**3.3 Query VNF** +------------------ + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ | +| | {vnfInstanceId} | ++---------------+------------------------------------------------------------------+ +| Operation | GET | ++---------------+------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++---------------+------------------------------------------------------------------+ + +**3.3.1 Request** + +VNF filter: vnfInstanceId via url [R1] + +**3.3.2 Response** + ++--------------+------------+-------------+-----------+---------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++==============+============+=============+===========+=================================+ +| vnfInfo | M | o..N | vnfInfo | The information items about the | +| | | | | selected VNF instance(s) that | +| | | | | are returned. | +| | | | | | +| | | | | If attributeSelector is present,| +| | | | | only the attributes listed in | +| | | | | attributeSelector will be | +| | | | | returned for the selected | +| | | | | VNF instance(s). | ++--------------+------------+-------------+-----------+---------------------------------+ + +**VnfInfo Table** + ++-----------------+------------+-------------+----------+---------------------------------+ +| Attribute | Qualifier | Cardinality | Content | Description | ++=================+============+=============+==========+=================================+ +| vnfInstanceId | M | 1 | String | VNF instance identifier. | ++-----------------+------------+-------------+----------+---------------------------------+ +| vnfInstanceName | M | o..1 | String | VNF instance name. | ++-----------------+------------+-------------+----------+---------------------------------+ +| vnfInstance | M | o..1 | String | Human-readable description of | +| Description | | | | the VNF instance. | ++-----------------+------------+-------------+----------+---------------------------------+ +| vnfdId | M | 1 | String | Identifier of the VNFD on which | +| | | | | the VNF instance is based. | ++-----------------+------------+-------------+----------+---------------------------------+ +| vnfPackageId | M | o..1 | String | Identifier of the VNF Package | +| | | | | used to manage the lifecycle of | +| | | | | the VNF instance. See note. | +| | | | | Shall be present for an | +| | | | | instantiated VNF instance. | ++-----------------+------------+-------------+----------+---------------------------------+ +| version | M | 1 | String | Version of the VNF. | ++-----------------+------------+-------------+----------+---------------------------------+ +| vnfProvider | M | 1 | String | Name of the person or company | +| | | | | providing the VNF. | ++-----------------+------------+-------------+----------+---------------------------------+ +| vnfType | M | 1 | String | VNF Application Type | ++-----------------+------------+-------------+----------+---------------------------------+ +| vnfStatus | M | 1 | Enum | The instantiation state of the | +| | | | | VNF. Possible values: | +| | | | | INACTIVE (Vnf is terminated or | +| | | | | not instantiated ), | +| | | | | ACTIVE (Vnf is instantiated). | +| | | | | [instantiationState] | ++-----------------+------------+-------------+----------+---------------------------------+ + +.. code-block:: json + + { + "vnfInfo": + { + "nfInstanceId":"1", + "vnfInstanceName":"vFW", + "vnfInstanceDescription":"vFW in Nanjing TIC Edge", + "vnfdId":"1", + "vnfPackageId":"1", + "version":"V1.1", + "vnfProvider":"ZTE", + "vnfType":"vFW", + "vnfStatus":" ACTIVE", + } + } + +**3.4 Get operation status** +----------------------------- + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/{vnfmtype} | +| | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId } | ++---------------+------------------------------------------------------------------+ +| Operation | GET | ++---------------+------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++---------------+------------------------------------------------------------------+ + +**3.4.1 Request** + + None + +**3.4.2 Response** + ++--------------------+------------+-------------+-------------+---------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++====================+============+=============+=============+=================================+ +| jobId | M | 1 | String | Job ID | ++--------------------+------------+-------------+-------------+---------------------------------+ +| responseDescriptor | M | 1 | - | Including: | +| | | | | vnfStatus, statusDescription, | +| | | | | errorCode,progress, | +| | | | | responseHistoryList, responseId | ++--------------------+------------+-------------+-------------+---------------------------------+ +| status | M | 1 | String | JOB status | +| | | | | started | +| | | | | processing | +| | | | | finished | +| | | | | error | ++--------------------+------------+-------------+-------------+---------------------------------+ +| progress | M | 1 | Integer | progress (1-100) | ++--------------------+------------+-------------+-------------+---------------------------------+ +| statusDescription | M | 1 | String | Progress Description | ++--------------------+------------+-------------+-------------+---------------------------------+ +| errorCode | M | 1 | Integer | Errorcode | ++--------------------+------------+-------------+-------------+---------------------------------+ +| responseId | M | 1 | Integer | Response Identifier | ++--------------------+------------+-------------+-------------+---------------------------------+ +| response | M | o..N | ArrayList<> | History Response Messages | +| HistoryList | | | | from the requested | +| | | | | responseId to lastest one. | +| | | | | Including fields: | +| | | | | vnfStatus, | +| | | | | statusDescription, | +| | | | | errorCode, | +| | | | | progress, | +| | | | | responseId | ++--------------------+------------+-------------+-------------+---------------------------------+ + +.. code-block:: json + + { + "jobId" : "1234566", + "responseDescriptor" : { + "progress" : "40", + "status" : "proccessing", + "statusDescription" : "OMC VMs are decommissioned in VIM", + "errorCode" : null, + "responseId" : "42", + "responseHistoryList" : [{ + "progress" : "40", + "status" : "proccessing", + "statusDescription" : "OMC VMs are decommissioned in VIM", + "errorCode" : null, + "responseId" : "1" + }, { + "progress" : "41", + "status" : "proccessing", + "statusDescription" : "OMC VMs are decommissioned in VIM", + "errorCode" : null, + "responseId" : "2" + } + ] + } + } + +**3.5 Scale VNF** +------------------ + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/ | +| | {vnfInstanceId}/scale | ++---------------+------------------------------------------------------------------+ +| Operation | POST | ++---------------+------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++---------------+------------------------------------------------------------------+ + +**3.5.1 Request** + + ++---------------+------------+-------------+-------------+---------------------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++===============+============+=============+=============+=============================================+ +| type | M | 1 | Enum | Defines the type of the scale operation | +| | | | | requested (scale out, scale in). The set of | +| | | | | types actually supported depends on the | +| | | | | capabilities of the VNF being managed, as | +| | | | | declared in the VNFD. See note 1. | ++---------------+------------+-------------+-------------+---------------------------------------------+ +| aspectId | M | 1 | Identifier | Identifies the aspect of the VNF that is | +| | | | | requested to be scaled | ++---------------+------------+-------------+-------------+---------------------------------------------+ +| numberOfSteps | M | 1 | Integer | Number of scaling steps to be executed as | +| | | | | part of this ScaleVnf operation. It shall | +| | | | | be a positive number. | +| | | | | Defaults to 1. | +| | | | | The VNF Provider defines in the VNFD | +| | | | | whether or not a particular VNF supports | +| | | | | performing more than one step at a time. | +| | | | | Such a property in the VNFD applies for all | ++---------------+------------+-------------+-------------+---------------------------------------------+ +| additional | M | 1 |KeyValuePair | Additional parameters passed by the NFVO | +| Param | | | | as input to the scaling proccess, specific | +| | | | | to the VNF being scaled. | +| | | | | Reserved | ++---------------+------------+-------------+-------------+---------------------------------------------+ +| NOTE 1: ETSI GS NFV-IFA 010 [2] specifies that the lifecycle management operations that expand | +| or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical | +| scaling (scale up, scale down) is not supported in the present document. | +| SCALE_IN designates scaling in. | +| SCALE_OUT 1 designates scaling out. | +| NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling | +| aspect. | ++------------------------------------------------------------------------------------------------------+ + +.. code-block:: none + + { + "vnfInstanceId":"5", + "type":" SCALE_OUT", + "aspectId":"101", + "numberOfSteps":"1", + "additionalParam":{ + + …… + + } + } + +**3.5.2 Response** + ++--------------------+------------+-------------+-------------+---------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++====================+============+=============+=============+=================================+ +| jobId | M | 1 | String | The identifier of the VNF | +| | | | | lifecycle operation occurrence. | ++--------------------+------------+-------------+-------------+---------------------------------+ + +.. code-block:: json + + { + "jobId":"1" + } + +**3.6 Heal VNF** +----------------- + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs | +| | {vnfInstanceId}/heal | ++---------------+------------------------------------------------------------------+ +| Operation | POST | ++---------------+------------------------------------------------------------------+ +| Direction | NSLCM->VNFMDriver | ++---------------+------------------------------------------------------------------+ + +**3.6.1 Request** + ++--------------------+------------+-------------+-------------+---------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++====================+============+=============+=============+=================================+ +| action | M | 1 | String | Indicates the action to be done | +| | | | | upon the given virtual machine. | +| | | | | Only "vmReset" is supported | +| | | | | currently. | ++--------------------+------------+-------------+-------------+---------------------------------+ +| affectedvm | M | 1 | AffectedVm | Defines the information of | +| | | | | virtual machines. | ++--------------------+------------+-------------+-------------+---------------------------------+ + +**AffectedVm** + ++--------------------+------------+-------------+-------------+---------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++====================+============+=============+=============+=================================+ +| vimid | M | 1 | String | Defines the UUID of virtual | +| | | | | machine. | ++--------------------+------------+-------------+-------------+---------------------------------+ +| vduid | M | 1 | String | Defines the id of vdu. | ++--------------------+------------+-------------+-------------+---------------------------------+ +| vmname | M | 1 | | Defines the name of virtual | +| | | | | machines. | ++--------------------+------------+-------------+-------------+---------------------------------+ + +.. code-block:: json + + { + "action": "vmReset", + "affectedvm": + { + "vmid": "804cca71-9ae9-4511-8e30-d1387718caff", + "vduid": "vdu_100", + "vmname": "ZTE_SSS_111_PP_2_L" + } + } + +**3.6.2 Response** + ++--------------------+------------+-------------+-------------+---------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++====================+============+=============+=============+=================================+ +| jobId | M | 1 | Identifier | The identifier of the VNF | +| | | | | healing operation occurrence. | ++--------------------+------------+-------------+-------------+---------------------------------+ + +.. code-block:: json + + { + "jobId":"1" + } + + +**4. Interfaces provided by VFC to integrate with VNFM driver** +================================================================ + + +**4.1 VNF Lifecycle Operation Granting Interface** +--------------------------------------------------- + + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/nslcm/v1/ns/grantvnf | ++---------------+------------------------------------------------------------------+ +| Operation | POST | ++---------------+------------------------------------------------------------------+ +| Direction | VNFMDriver -> NSLCM | ++---------------+------------------------------------------------------------------+ + +**4.1.1 Request** + + +.. code-block:: json + + { + "vnfInstanceId": "string", + "vnfDescriptorId": "string", + "lifecycleOperation": "Terminal", + "jobId": "string", + "addResource": [ + { + "type": "string", + "resourceDefinitionId": "string", + "vdu": "string" + } + ], + "removeResource": [ + { + "type": "string", + "resourceDefinitionId": "string", + "vdu": "string" + } + ], + "additionalParam": {} + } + +**4.1.2 Response** + +.. code-block:: json + + { + "vim": { + "vimInfoId": "string", + "vimId": "string", + "interfaceInfo": { + "vimType": "string", + "apiVersion": "string", + "protocolType": "string" + }, + "accessInfo": { + "tenant": "string", + "username": "string", + "password": "string" + }, + "interfaceEndpoint": "string" + } + } + +**4.2 VNF LCM Notification Interface** +--------------------------------------- + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/nslcm/v1/ns/{vnfmid}/vnfs/ | +| | {vnfInstanceId}/Notify | ++---------------+------------------------------------------------------------------+ +| Operation | POST | ++---------------+------------------------------------------------------------------+ +| Direction | VNFMDriver -> NSLCM | ++---------------+------------------------------------------------------------------+ + +**4.2.1 Request** + +.. code-block:: json + + { + "status": "result", + "vnfInstanceId": "string", + "operation": "Terminal", + "jobId": "string", + "affectedVnfc": [ + { + "vnfcInstanceId": "string", + "vduId": "string", + "changeType": "added", + "vimid": "string", + "vmid": "string", + "vmname": "string" + } + ], + "affectedCp": [ + { + "virtualLinkInstanceId": "string", + "cpinstanceid": "string", + "cpdid": "string", + "ownerType": "string", + "ownerId": "string", + "changeType": "added", + "portResource": { + "vimid": "string", + "resourceid": "string", + "resourceName": "string", + "tenant": "string", + "ipAddress": "string", + "macAddress": "string", + "instId": "string" + } + } + ], + "affectedVl": [ + { + "vlInstanceId": "string", + "vldid": "string", + "changeType": "added", + "networkResource": { + "resourceType": "network", + "resourceId": "string" + } + } + ], + "affectedVirtualStorage": [ + {} + ] + } + +**4.2.2 Response** + +N/A + + +**4.3 Query VNFM Register Info Interface** +------------------------------------------- + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/nslcm/v1/vnfms/{vnfmid} | ++---------------+------------------------------------------------------------------+ +| Operation | GET | ++---------------+------------------------------------------------------------------+ +| Direction | VNFMDriver -> NSLCM | ++---------------+------------------------------------------------------------------+ + +**4.3.1 Request** +N/A + +**4.3.2 Response** + +.. code-block:: json + + { + "vnfmId": "string", + "name": "string", + "type": "string", + "url": "string", + "userName": "string", + "password": "string", + "vimId": "string", + "vendor": "string", + "version": "string", + "description": "string", + "certificateUrl": "string", + "createTime": "string" + } + + +**4.4 Query VIM Register Info Interface** +------------------------------------------ + ++---------------+------------------------------------------------------------------+ +| IF Definition | Description | ++===============+==================================================================+ +| URI | http(s)://[hostname][:port]/api/nslcm/v1/vims/{vimid} | ++---------------+------------------------------------------------------------------+ +| Operation | GET | ++---------------+------------------------------------------------------------------+ +| Direction | VNFMDriver -> NSLCM | ++---------------+------------------------------------------------------------------+ + +**4.4.1 Request** +N/A + +**4.4.2 Response** + ++--------------------+------------+-------------+-------------+---------------------------------+ +| Parameter | Qualifier | Cardinality | Content | Description | ++====================+============+=============+=============+=================================+ +| vimId | M | 1 | string | The identifier of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| name | M | 1 | string | The name of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| type | M | 1 | string | The type of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| url | M | 1 | string | The access URL of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| userName | M | 1 | string | The user name of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| password | M | 1 | string | The password of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| vendor | M | 1 | string | The vendor of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| version | M | 1 | version | The version of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| description | O | 1 | description | The description of the VIM | ++--------------------+------------+-------------+-------------+---------------------------------+ +| sslCacert | O | 1 | Identifier | The collection of trusted | +| | | | | certificates towards the VIM. | ++--------------------+------------+-------------+-------------+---------------------------------+ +| sslInsecure | O | 1 | Identifier | Whether to verify VIM's | +| | | | | certificate. | ++--------------------+------------+-------------+-------------+---------------------------------+ +| status | O | 1 | Identifier | The status of external system | ++--------------------+------------+-------------+-------------+---------------------------------+ + + +.. code-block:: json + + { + "vimId": "string", + "name": "string", + "type": "string", + "url": "string", + "userName": "string", + "password": "string", + "vendor": "string", + "version": "string", + "description": "string", + "createTime": "string", + "sslCacert": "string", + "sslInsecure": "string", + "status": "string" + } + diff --git a/docs/platform/offeredapis.rst b/docs/platform/offeredapis.rst deleted file mode 100644 index 79af6645..00000000 --- a/docs/platform/offeredapis.rst +++ /dev/null @@ -1,43 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - - -VF-C Offered APIs -================= -List VF-C APIs offered. - - -NS LCM API ----------- - -Network services lifecycle management APIs - - -.. toctree:: - :maxdepth: 1 - - APIs/NSLCM_API/index - - -VNFM Driver API ---------------- - -VNFM Driver component northbound APIs - -.. toctree:: - :maxdepth: 1 - - APIs/VNFMDriver_API/index - - - -VNF LCM API ------------ - -VNF lifecycle management APIs - -.. toctree:: - :maxdepth: 1 - - APIs/VNFLCM_API/index - -- cgit 1.2.3-korg