summaryrefslogtreecommitdiffstats
path: root/nokiav2/generatedapis
diff options
context:
space:
mode:
authorDenes Nemeth <denes.nemeth@nokia.com>2018-06-27 16:08:38 +0200
committerDenes Nemeth <denes.nemeth@nokia.com>2018-07-02 21:33:52 +0200
commit3e8bea1fa3861581b3caa81628da52da538b05f3 (patch)
tree15eeb2bb71eb2c5717eeaf8f729d1e91f86bf85a /nokiav2/generatedapis
parent503e8f5d3df25f06f185e5cc98cbb6cd1b72d177 (diff)
Add SO APIs to Nokia VNFM adapter
Change-Id: I7dfc5677144be3df553edb4141e89e543e1b977d Signed-off-by: Denes Nemeth <denes.nemeth@nokia.com> Issue-ID: VFC-950
Diffstat (limited to 'nokiav2/generatedapis')
-rw-r--r--nokiav2/generatedapis/pom.xml26
-rw-r--r--nokiav2/generatedapis/src/main/resources/so.vnfm.json679
-rw-r--r--nokiav2/generatedapis/src/main/resources/so.vnfm.v2.json616
3 files changed, 640 insertions, 681 deletions
diff --git a/nokiav2/generatedapis/pom.xml b/nokiav2/generatedapis/pom.xml
index aa2df37d..9b953d1a 100644
--- a/nokiav2/generatedapis/pom.xml
+++ b/nokiav2/generatedapis/pom.xml
@@ -18,12 +18,12 @@
<parent>
<groupId>org.onap.vfc.nfvo.driver.vnfm.svnfm.nokiav2</groupId>
<artifactId>vfc-nfvo-driver-vnfm-svnfm-nokiav2</artifactId>
- <version>1.1.0-SNAPSHOT</version>
+ <version>1.1.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.vfc.nfvo.driver.vnfm.svnfm.nokiav2</groupId>
<artifactId>vfc-nfvo-driver-vnfm-svnfm-nokiav2-clients</artifactId>
- <version>1.1.0-SNAPSHOT</version>
+ <version>${driver.version}</version>
<packaging>jar</packaging>
<name>vfc/nfvo/driver/vnfm/svnfm/nokiav2/generatedapis</name>
<properties>
@@ -93,6 +93,27 @@ Release AAI
</configuration>
</execution>
<execution>
+ <id>sov2</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <inputSpec>${basedir}/src/main/resources/so.vnfm.v2.json</inputSpec>
+ <language>java</language>
+ <library>retrofit2</library>
+ <output>${project.build.directory}/generated-sources/sov2</output>
+ <apiPackage>org.onap.vnfmadapter.so.v2.api</apiPackage>
+ <modelPackage>org.onap.vnfmadapter.so.v2.model</modelPackage>
+ <configOptions>
+ <jackson>true</jackson>
+ <sourceFolder>src/gen/java/main</sourceFolder>
+ <withXml>true</withXml>
+ <useRxJava2>true</useRxJava2>
+ </configOptions>
+ </configuration>
+ </execution>
+<!--
+ <execution>
<id>so</id>
<goals>
<goal>generate</goal>
@@ -112,6 +133,7 @@ Release AAI
</configOptions>
</configuration>
</execution>
+-->
<execution>
<id>msb</id>
<goals>
diff --git a/nokiav2/generatedapis/src/main/resources/so.vnfm.json b/nokiav2/generatedapis/src/main/resources/so.vnfm.json
deleted file mode 100644
index c70a83bf..00000000
--- a/nokiav2/generatedapis/src/main/resources/so.vnfm.json
+++ /dev/null
@@ -1,679 +0,0 @@
-{
- "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 Adaptor"
- ],
- "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 Adaptor"
- ],
- "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 Adaptor"
- ],
- "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 Adaptor"
- ],
- "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"
- },
- "nsId": {
- "required": false,
- "description": "The identifier of the NS in AAI",
- "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
- }
- }
- }
- }
-}
diff --git a/nokiav2/generatedapis/src/main/resources/so.vnfm.v2.json b/nokiav2/generatedapis/src/main/resources/so.vnfm.v2.json
new file mode 100644
index 00000000..248eb92a
--- /dev/null
+++ b/nokiav2/generatedapis/src/main/resources/so.vnfm.v2.json
@@ -0,0 +1,616 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2.0.0",
+ "title": "ONAP SO VNFM Adapter API v2",
+ "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/v2/ping": {
+ "get": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "Test VNFM driver health",
+ "description": "Test VNFM driver health",
+ "responses": {
+ "204": {
+ "description": "VNFM adapter is healthy"
+ }
+ }
+ }
+ },
+ "/so/v2/vnfs/{vnfIdInAai}/rollback": {
+ "post": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "Rollback VNF update operation",
+ "description": "Rollback VNF update operation",
+ "operationId": "rollback",
+ "consumes": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VNF",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Rollback parameters",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2RollbackVnfUpdate"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Operation has been rolled back"
+ }
+ }
+ }
+ },
+ "/so/v2/vnfs/{vnfIdInAai}": {
+ "get": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VNF query",
+ "description": "VNF query",
+ "operationId": "vnf_query",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VNF in A&AI.",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF creation query parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfQueryRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfQueryResponse"
+ }
+ },
+ "404": {
+ "descriotion": "The VNF does not exist on the VNFM side"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VNF create",
+ "description": "VNF create",
+ "operationId": "vnf_create",
+ "consumes": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VNF",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF creation query parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The VNF was created on the VNFM side."
+ },
+ "400": {
+ "description": "The VNF could not be instantiated on the VNFM side. Failure has been treated according to deleteUponFailure parameter"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VNF update",
+ "description": "VNF update",
+ "operationId": "vnf_update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VNF",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF update parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfUpdateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The VNF update has finished. Success is indicated in the success field.",
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfUpdateResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VNF delete",
+ "description": "VNF delete",
+ "operationId": "vnf_delete",
+ "consumes": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VNF",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF delete parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfDeleteRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The VNF was successfully deleted."
+ }
+ }
+ }
+ },
+ "/so/v2/vfmodule/{vnfIdInAai}/{vfModuleId}": {
+ "post": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VF module create",
+ "description": "VF module create",
+ "operationId": "vf_module_create",
+ "consumes": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of VNF in A&AI.",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VF module in A&AI",
+ "name": "vfModuleId",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF creation query parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2VfModuleCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The VF module has been created"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VF module update",
+ "description": "VF module update",
+ "operationId": "vf_module_update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of VNF in A&AI.",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VF module in A&AI",
+ "name": "vfModuleId",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF creation query parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfUpdateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfUpdateResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VF module delete",
+ "description": "VF module delete",
+ "operationId": "vf_module_delete",
+ "consumes": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of VNF in A&AI.",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VF module in A&AI",
+ "name": "vfModuleId",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF delete parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2VnfDeleteRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The VNF was successfully deleted."
+ }
+ }
+ }
+ },
+ "/so/v2/vfmodule/{vnfIdInAai}/{vfModuleId}/rollback": {
+ "put": {
+ "tags": [
+ "SO VNFM Adaptor V2"
+ ],
+ "summary": "VF module update rollback",
+ "description": "VF module update rollback",
+ "operationId": "vf_module_update rollback",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of VNF in A&AI.",
+ "name": "vnfIdInAai",
+ "in": "path"
+ },
+ {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the VF module in A&AI",
+ "name": "vfModuleId",
+ "in": "path"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF update rollback parameter",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SoV2RollbackVnfUpdate"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Operation has been rolled back"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SoMsoRequest": {
+ "type": "object",
+ "properties": {
+ "requestId": {
+ "required": true,
+ "description": "The identifier of the request in SO. Used to track requests.",
+ "type": "string"
+ },
+ "serviceInstanceId": {
+ "required": true,
+ "description": "The identifier of the service instance in A&AI.",
+ "type": "string"
+ }
+ }
+ },
+ "SoV2VnfQueryRequest": {
+ "type": "object",
+ "properties": {
+ "msoRequest": {
+ "required": true,
+ "$ref": "#/definitions/SoMsoRequest"
+ }
+ }
+ },
+ "SoVnfStatus": {
+ "description": "The status of the VNF",
+ "type": "string",
+ "enum": [
+ "ACTIVE",
+ "FAILED",
+ "NOTFOUND",
+ "UNKNOWN"
+ ]
+ },
+ "SoOutput": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "SoInput": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "SoV2VnfQueryResponse": {
+ "type": "object",
+ "properties": {
+ "status": {
+ "required": true,
+ "description": "The status of the VNF",
+ "$ref": "#/definitions/SoVnfStatus"
+ }
+ }
+ },
+ "SoV2VnfCreateRequest": {
+ "type": "object",
+ "properties": {
+ "cloudOwner": {
+ "required": true,
+ "type": "string",
+ "description": "The owner of cloud in A&AI."
+ },
+ "regionName": {
+ "required": true,
+ "type": "string",
+ "description": "The regionName of cloud in A&AI."
+ },
+ "tenantId": {
+ "required": true,
+ "type": "string",
+ "description": "The identifier of the tenant."
+ },
+ "name": {
+ "required": true,
+ "type": "string",
+ "description": "The name of the VNF."
+ },
+ "inputs": {
+ "required": false,
+ "description": "The inputs of the VNF.",
+ "$ref": "#/definitions/SoInput"
+ },
+ "failIfExists": {
+ "required": false,
+ "description": "Should the VNF creation fail if the VNF already exists. (defaults to false)",
+ "type": "boolean"
+ },
+ "deleteUponFailure": {
+ "required": false,
+ "description": "Delete VNF in case of failure. (defaults to false)",
+ "type": "boolean"
+ },
+ "msoRequest": {
+ "required": false,
+ "$ref": "#/definitions/SoMsoRequest"
+ }
+ }
+ },
+ "SoMsoRollback": {
+ "type": "object",
+ "description": "Generic rollback parameters",
+ "properties": {
+ "deleteIfExists": {
+ "required": true,
+ "description": "Delete the VNF if exists",
+ "type": "boolean"
+ },
+ "vnfIdInAai": {
+ "required": true,
+ "description": "The identifier of the VNF in AAI",
+ "type": "string"
+ },
+ "msoRequest": {
+ "required": true,
+ "description": "The pointer to the original request that triggered the rollback",
+ "$ref": "#/definitions/SoMsoRequest"
+ }
+ }
+ },
+ "OriginalVnfProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "SoV2RollbackVnfUpdate": {
+ "type": "object",
+ "properties": {
+ "originalVnfProperties": {
+ "required": false,
+ "description": "The original VNF properties before the operation",
+ "$ref": "#/definitions/OriginalVnfProperties"
+ }
+ }
+ },
+ "SoV2VnfUpdateRequest": {
+ "type": "object",
+ "properties": {
+ "inputs": {
+ "required": false,
+ "description": "The inputs of the VNF.",
+ "$ref": "#/definitions/SoInput"
+ },
+ "msoRequest": {
+ "required": false,
+ "$ref": "#/definitions/SoMsoRequest"
+ }
+ }
+ },
+ "SoV2VnfUpdateResponse": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SoV2RollbackVnfUpdate"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "successful": {
+ "required": true,
+ "description": "Is the update successful. The operation can be rolled back regardless of this attribute",
+ "type": "boolean"
+ }
+ }
+ }
+ ]
+ },
+ "SoV2VnfDeleteRequest": {
+ "type": "object",
+ "properties": {
+ "msoRequest": {
+ "required": false,
+ "$ref": "#/definitions/SoMsoRequest"
+ }
+ }
+ },
+ "SoV2VfModuleCreateRequest": {
+ "type": "object",
+ "properties": {
+ "scalingAspectId": {
+ "required": true,
+ "description": "The identifier of the scaling aspect",
+ "type": "string"
+ },
+ "inputs": {
+ "required": false,
+ "description": "The inputs of the VNF.",
+ "$ref": "#/definitions/SoInput"
+ },
+ "failIfExists": {
+ "required": false,
+ "description": "Should the VNF creation fail if the VNF already exists. (defaults to false)",
+ "type": "boolean"
+ },
+ "deleteUponFailure": {
+ "required": false,
+ "description": "Delete VF module in case of failure. (defaults to false)",
+ "type": "boolean"
+ },
+ "msoRequest": {
+ "required": false,
+ "$ref": "#/definitions/SoMsoRequest"
+ }
+ }
+ }
+ }
+}