diff options
author | Denes Nemeth <denes.nemeth@nokia.com> | 2018-06-27 16:08:38 +0200 |
---|---|---|
committer | Denes Nemeth <denes.nemeth@nokia.com> | 2018-07-02 21:33:52 +0200 |
commit | 3e8bea1fa3861581b3caa81628da52da538b05f3 (patch) | |
tree | 15eeb2bb71eb2c5717eeaf8f729d1e91f86bf85a /nokiav2/generatedapis | |
parent | 503e8f5d3df25f06f185e5cc98cbb6cd1b72d177 (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.xml | 26 | ||||
-rw-r--r-- | nokiav2/generatedapis/src/main/resources/so.vnfm.json | 679 | ||||
-rw-r--r-- | nokiav2/generatedapis/src/main/resources/so.vnfm.v2.json | 616 |
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" + } + } + } + } +} |