diff options
Diffstat (limited to 'docs/NSLCM_API_Specification_v0.1.rst')
-rw-r--r-- | docs/NSLCM_API_Specification_v0.1.rst | 544 |
1 files changed, 544 insertions, 0 deletions
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 |