diff options
author | Denes Nemeth <denes.nemeth@nokia.com> | 2018-04-03 17:32:13 +0200 |
---|---|---|
committer | Denes Nemeth <denes.nemeth@nokia.com> | 2018-04-04 14:08:23 +0200 |
commit | 2c1179b657efe2a291012d2b8f2eee2179402d27 (patch) | |
tree | 12343f52bda03c49e576ff72debe831c57c8cc5e /nokiav2/generatedapis/src/main/resources/so.vnfm.json | |
parent | 0278d01123ce3de23d842a94a5ab99dba8853867 (diff) |
Fixes in LCM
Change-Id: I9dfdacf32970c86b595939f6cd92b6eb276ebf90
Issue-ID: VFC-728
Signed-off-by: Denes Nemeth <denes.nemeth@nokia.com>
Diffstat (limited to 'nokiav2/generatedapis/src/main/resources/so.vnfm.json')
-rw-r--r-- | nokiav2/generatedapis/src/main/resources/so.vnfm.json | 674 |
1 files changed, 674 insertions, 0 deletions
diff --git a/nokiav2/generatedapis/src/main/resources/so.vnfm.json b/nokiav2/generatedapis/src/main/resources/so.vnfm.json new file mode 100644 index 00000000..78b8dffd --- /dev/null +++ b/nokiav2/generatedapis/src/main/resources/so.vnfm.json @@ -0,0 +1,674 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "ONAP SO VNFM Adapter API", + "description": "Describes the API between SO and the adapter for VNFM", + "contact": { + "name": "ONAP SO VNFM", + "email": "onap-discuss@lists.onap.org", + "url": "https://gerrit.onap.org/r/#/admin/projects/vfc/nfvo/lcm" + } + }, + "basePath": "/api/v1", + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/so/{vnfmId}/vnfs": { + "post": { + "tags": [ + "SO VNFM Adaptor" + ], + "summary": "VNF create", + "description": "VNF create", + "operationId": "vnf_create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "in": "body", + "name": "body", + "description": "VNF creation request parameter", + "required": true, + "schema": { + "$ref": "#/definitions/SoVnfCreationRequest" + } + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SoVnfCreationResponse" + } + } + } + } + }, + "/so/{vnfmId}/vnfs/{vnfId}": { + "post": { + "tags": [ + "SO VNFM Adaptor" + ], + "summary": "VNF activation", + "description": "VNF activation", + "operationId": "vnf_activate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "The identifier of the VNF in A&AI", + "name": "vnfId", + "in": "path" + }, + { + "in": "body", + "name": "body", + "description": "instantiate request param", + "required": true, + "schema": { + "$ref": "#/definitions/SoVnfActivationRequest" + } + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SoJobHandler" + } + } + } + }, + "delete": { + "tags": [ + "SO VNFM driver" + ], + "summary": "Deletes VNF", + "description": "Deletes the VNF. If the VNF was instantiated VNF termination must be called before VNF deletion", + "operationId": "delete_vnf", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "The identifier of the VNF in A&AI", + "name": "vnfId", + "in": "path" + } + ], + "responses": { + "204": { + "description": "The VNF was deleted successfully" + } + } + } + }, + "/so/{vnfmId}/vnfs/{vnfId}/scale": { + "post": { + "tags": [ + "SO VNFM Adaptor" + ], + "summary": "VNF scale", + "description": "VNF scale request", + "operationId": "vnf_scale", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "The identifier of the VNF in A&AI", + "name": "vnfId", + "in": "path" + }, + { + "in": "body", + "name": "body", + "description": "VNF scale request parameters", + "required": true, + "schema": { + "$ref": "#/definitions/SoVnfScaleRequest" + } + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SoJobHandler" + } + } + } + } + }, + "/so/{vnfmId}/vnfs/{vnfId}/customOperation": { + "post": { + "tags": [ + "SO VNFM Adaptor" + ], + "summary": "VNF scale", + "description": "VNF scale request", + "operationId": "vnf_scale", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "The identifier of the VNF in A&AI", + "name": "vnfId", + "in": "path" + }, + { + "in": "body", + "name": "body", + "description": "VNF scale request parameters", + "required": true, + "schema": { + "$ref": "#/definitions/SoVnfCustomOperation" + } + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SoJobHandler" + } + } + } + } + }, + "/so/{vnfmId}/vnfs/{vnfId}/heal": { + "post": { + "tags": [ + "SO VNFM driver" + ], + "summary": "VNF heal", + "description": "VNF heal", + "operationId": "vnf_heal", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "The identifier of the VNF in A&AI", + "name": "vnfId", + "in": "path" + }, + { + "in": "body", + "name": "body", + "description": "VNF heal request parameters", + "required": true, + "schema": { + "$ref": "#/definitions/SoVnfHealRequest" + } + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SoJobHandler" + } + } + } + } + }, + "/so/{vnfmId}/vnfs/{vnfId}/terminate": { + "post": { + "tags": [ + "SO VNFM driver" + ], + "summary": "VNF terminate", + "description": "VNF terminate", + "operationId": "vnf_terminate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "The identifier of the VNF in A&AI", + "name": "vnfId", + "in": "path" + }, + { + "in": "body", + "name": "body", + "description": "VNF termination request parameters", + "required": true, + "schema": { + "$ref": "#/definitions/SoVnfTerminationRequest" + } + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SoJobHandler" + } + } + } + } + }, + "/so/{vnfmId}/jobs/{jobId}": { + "get": { + "tags": [ + "SO VNFM driver" + ], + "summary": "Query job status", + "description": "Query the job status", + "operationId": "get_jobstatus", + "parameters": [ + { + "required": true, + "type": "string", + "description": "The identifier of the VNFM in A&AI", + "name": "vnfmId", + "in": "path" + }, + { + "required": true, + "type": "string", + "description": "The identifier of the job", + "name": "jobId", + "in": "path" + } + ], + "responses": { + "202": { + "description": "The details of a job", + "schema": { + "$ref": "#/definitions/SoJobDetail" + } + }, + "404": { + "description": "The job is unknown to the VNFM. The VNFM does not keep finished jobs for forever.", + "schema": { + "$ref": "#/definitions/SoJobDetail" + } + } + } + } + } + }, + "definitions": { + "SoJobHandler": { + "type": "object", + "properties": { + "jobId": { + "required": true, + "description": "The identifier of the job", + "type": "string" + } + } + }, + "SoJobStatus": { + "description": "The status of the job", + "type": "string", + "enum": [ + "started", + "finished", + "failed" + ] + }, + "SoJobDetail": { + "allOf": [ + { + "$ref": "#/definitions/SoJobHandler" + }, + { + "type": "object", + "properties": { + "status": { + "required": true, + "description": "The status of the job", + "$ref": "#/definitions/SoJobStatus" + }, + "description": { + "required": true, + "description": "The description of the current state of the job", + "type": "string" + } + } + } + ] + }, + "SoVnfCreationRequest": { + "type": "object", + "properties": { + "name": { + "required": true, + "description": "The name of the VNF", + "type": "string" + }, + "csarId": { + "required": true, + "description": "The identifier of the VNF package in SDC", + "type": "string" + }, + "description": { + "required": false, + "description": "The description of the VNF", + "type": "string" + }, + "additionalParams": { + "description": "Additional VNFM specific parameters", + "type": "object", + "additionalProperties": true + } + } + }, + "SoVnfCreationResponse": { + "type": "object", + "properties": { + "vnfId": { + "required": true, + "description": "The identifier of the created VNF", + "type": "string" + } + } + }, + "SoVduMapping": { + "type": "object", + "properties": { + "vduId": { + "required": true, + "description": "The identifier of the VDU within the VNF package", + "type": "string" + }, + "imageId": { + "required": true, + "description": "The provider id of the image to be used for the VDU", + "type": "string" + }, + "flavourId": { + "required": true, + "description": "The provider id of the flavour to be used for the VDU", + "type": "string" + } + } + }, + "SoServerMapping": { + "type": "object", + "description": "Maps a server instance to a VDU and availability zone", + "properties": { + "vduId": { + "required": true, + "description": "The identifier of the VDU", + "type": "string" + }, + "availabilityZoneId": { + "required": false, + "description": "The provider id of the availability zone to be used for the server instance", + "type": "string" + } + } + }, + "SoAssignedAddresses": { + "type": "object", + "properties": { + "cpdId" : { + "required": true, + "description": "The identifier of the connection point descriptor", + "type" : "string" + }, + "ipAddress": { + "required": true, + "description": "The IP address to be used", + "type": "string" + } + } + }, + "SoNetworkMapping": { + "type": "object", + "properties": { + "vldId": { + "required": true, + "description": "The identifier of the network in the VNF package", + "type": "string" + }, + "networkProviderId": { + "required": true, + "description": "The provider id of the network be used for the given purpose", + "type": "string" + }, + "assignedAddresses": { + "required": true, + "description": "The assigned network addresses", + "type" : "array", + "items": { + "$ref": "#/definitions/SoAssignedAddresses" + } + } + } + }, + "SoVnfActivationRequest": { + "type": "object", + "properties": { + "vimId" : { + "required" : true, + "type" : "string", + "description" : "The identifier of the VIM on which the VNF is to be instantiated" + }, + "serverMappings": { + "required": true, + "description": "The server mappings", + "type" : "array", + "items": { + "$ref": "#/definitions/SoServerMapping" + } + }, + "vduMappings": { + "required": true, + "description": "The VDU mappings", + "type" : "array", + "items": { + "$ref": "#/definitions/SoVduMapping" + } + }, + "networkMappings": { + "required": true, + "description": "The network mappings", + "type" : "array", + "items": { + "$ref": "#/definitions/SoNetworkMapping" + } + }, + "additionalParams": { + "description": "Additional VNFM specific parameters", + "type": "object", + "additionalProperties": true + } + } + }, + "SoScaleDirection": { + "description": "The direction of the scale", + "type": "string", + "enum": [ + "in", + "out" + ] + }, + "SoVnfScaleRequest": { + "type": "object", + "properties": { + "aspectId": { + "type": "string", + "description": "The identifier of the scaling aspect in the VNF package" + }, + "steps": { + "type": "integer", + "description": "The expected absolute scale level" + }, + "direction": { + "required": true, + "description": "The direction of the scale", + "$ref": "#/definitions/SoScaleDirection" + }, + "serverMappings": { + "required": true, + "description": "The server mappings", + "items": { + "$ref": "#/definitions/SoServerMapping" + } + }, + "additionalParams": { + "description": "Additional VNFM specific parameters", + "type": "object", + "additionalProperties": true + } + } + }, + "SoVnfCustomOperation": { + "type": "object", + "properties": { + "operationId": { + "required" : true, + "type": "string", + "description": "The identifier of the custom operation" + }, + "additionalParams": { + "description": "Additional VNFM specific parameters", + "type": "object", + "additionalProperties": true + } + } + }, + "SoVnfHealRequest": { + "type": "object", + "properties": { + "vnfcId": { + "type": "string", + "description": "The identifier of the VNFC to be healed" + }, + "additionalParams": { + "description": "Additional VNFM specific parameters", + "type": "object", + "additionalProperties": true + } + } + }, + "SoTerminationMode": { + "description": "The way in which the VNF is terminated", + "type": "string", + "enum": [ + "forceful", + "graceful" + ] + }, + "SoVnfTerminationRequest": { + "type": "object", + "properties": { + "mode" : { + "required" : true, + "description" : "The VNF termination mode", + "$ref": "#/definitions/SoTerminationMode" + }, + "gracefulTerminationTimeoutInMs": { + "required" : false, + "type": "integer", + "description": "The timeout for graceful termination. After the timeout has expired forceful termination is attempted." + }, + "additionalParams": { + "description": "Additional VNFM specific parameters", + "type": "object", + "additionalProperties": true + } + } + } + } +} |